50 lines
847 B
Go
50 lines
847 B
Go
// Copyright 2020 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package fs_test
|
|
|
|
import (
|
|
. "io/fs"
|
|
"testing"
|
|
)
|
|
|
|
var isValidPathTests = []struct {
|
|
name string
|
|
ok bool
|
|
}{
|
|
{".", true},
|
|
{"x", true},
|
|
{"x/y", true},
|
|
|
|
{"", false},
|
|
{"..", false},
|
|
{"/", false},
|
|
{"x/", false},
|
|
{"/x", false},
|
|
{"x/y/", false},
|
|
{"/x/y", false},
|
|
{"./", false},
|
|
{"./x", false},
|
|
{"x/.", false},
|
|
{"x/./y", false},
|
|
{"../", false},
|
|
{"../x", false},
|
|
{"x/..", false},
|
|
{"x/../y", false},
|
|
{"x//y", false},
|
|
{`x\`, true},
|
|
{`x\y`, true},
|
|
{`x:y`, true},
|
|
{`\x`, true},
|
|
}
|
|
|
|
func TestValidPath(t *testing.T) {
|
|
for _, tt := range isValidPathTests {
|
|
ok := ValidPath(tt.name)
|
|
if ok != tt.ok {
|
|
t.Errorf("ValidPath(%q) = %v, want %v", tt.name, ok, tt.ok)
|
|
}
|
|
}
|
|
}
|