Files
ablage/filesystem/filesystem_test.go
2025-08-26 21:54:30 +02:00

114 lines
2.1 KiB
Go

package filesystem
import (
"math"
"testing"
)
func Test_sanitizeFilename(t *testing.T) {
tests := []struct {
name string
input string
want string
}{
{
name: "1",
input: "test.png",
want: "test.png",
},
{
name: "2",
input: "/tmp/test.png",
want: "test.png",
},
{
name: "3",
input: "../../etc/passwd",
want: "passwd",
},
{
name: "4",
input: "",
want: "upload.bin",
},
{
name: "5",
input: "übergrößé.png",
want: "uebergroess.png",
},
{
name: "6",
input: "my cool file!!.txt",
want: "my_cool_file.txt",
},
{
name: "7",
input: "so many spaces.txt",
want: "so_many_spaces.txt",
},
{
name: "8",
input: "/tmp/abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz.txt",
want: "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx.txt",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := SanitizeFilename(tt.input); got != tt.want {
t.Errorf("\nsanitizeFilename()\nname: %v\nwant: %v\ngot: %v", tt.name, tt.want, got)
}
})
}
}
func Test_getHumanReadableSize(t *testing.T) {
tests := []struct {
name string
input int64
want string
}{
{
name: "1",
input: 7,
want: "7 Bytes",
},
{
name: "2",
input: 7 * int64(math.Pow(10, 3)),
want: "6.8 KB",
},
{
name: "3",
input: 7 * int64(math.Pow(10, 6)),
want: "6.7 MB",
},
{
name: "4",
input: 7 * int64(math.Pow(10, 9)),
want: "6.5 GB",
},
{
name: "5",
input: 7 * int64(math.Pow(10, 12)),
want: "6.4 TB",
},
{
name: "6",
input: 7 * int64(math.Pow(10, 15)),
want: "6.2 PB",
},
{
name: "7",
input: 7 * int64(math.Pow(10, 18)),
want: "6.1 EB",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := GetHumanReadableSize(tt.input); got != tt.want {
t.Errorf("\ngetHumanReadableSize()\nname: %v\nwant: %v\ngot: %v", tt.name, tt.want, got)
}
})
}
}