filebrowser/backend/utils/main_test.go

60 lines
2.5 KiB
Go
Raw Permalink Normal View History

2024-11-26 17:21:41 +00:00
package utils
import (
"testing"
)
func TestGetParentDirectoryPath(t *testing.T) {
tests := []struct {
input string
expectedOutput string
}{
{input: "/", expectedOutput: ""}, // Root directory
{input: "/subfolder", expectedOutput: "/"}, // Single subfolder
{input: "/sub/sub/", expectedOutput: "/sub"}, // Nested subfolder with trailing slash
{input: "/subfolder/", expectedOutput: "/"}, // Relative path with trailing slash
{input: "", expectedOutput: ""}, // Empty string treated as root
{input: "/sub/subfolder", expectedOutput: "/sub"}, // Double slash in path
{input: "/sub/subfolder/deep/nested/", expectedOutput: "/sub/subfolder/deep"}, // Double slash in path
}
for _, test := range tests {
t.Run(test.input, func(t *testing.T) {
actualOutput := GetParentDirectoryPath(test.input)
if actualOutput != test.expectedOutput {
t.Errorf("\n\tinput %q\n\texpected %q\n\tgot %q",
test.input, test.expectedOutput, actualOutput)
}
})
}
}
func TestCapitalizeFirst(t *testing.T) {
tests := []struct {
input string
expectedOutput string
}{
{input: "", expectedOutput: ""}, // Empty string
{input: "a", expectedOutput: "A"}, // Single lowercase letter
{input: "A", expectedOutput: "A"}, // Single uppercase letter
{input: "hello", expectedOutput: "Hello"}, // All lowercase
{input: "Hello", expectedOutput: "Hello"}, // Already capitalized
{input: "123hello", expectedOutput: "123hello"}, // Non-alphabetic first character
{input: "hELLO", expectedOutput: "HELLO"}, // Mixed case
{input: " hello", expectedOutput: " hello"}, // Leading space, no capitalization
{input: "hello world", expectedOutput: "Hello world"}, // Phrase with spaces
{input: " hello world", expectedOutput: " hello world"}, // Phrase with leading space
{input: "123 hello world", expectedOutput: "123 hello world"}, // Numbers before text
}
for _, test := range tests {
t.Run(test.input, func(t *testing.T) {
actualOutput := CapitalizeFirst(test.input)
if actualOutput != test.expectedOutput {
t.Errorf("\n\tinput %q\n\texpected %q\n\tgot %q",
test.input, test.expectedOutput, actualOutput)
}
})
}
}