114 lines
2.1 KiB
Go
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)
|
|
}
|
|
})
|
|
}
|
|
}
|