1// Copyright 2020 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package fs_test
6
7import (
8	. "io/fs"
9	"testing"
10)
11
12var isValidPathTests = []struct {
13	name string
14	ok   bool
15}{
16	{".", true},
17	{"x", true},
18	{"x/y", true},
19
20	{"", false},
21	{"..", false},
22	{"/", false},
23	{"x/", false},
24	{"/x", false},
25	{"x/y/", false},
26	{"/x/y", false},
27	{"./", false},
28	{"./x", false},
29	{"x/.", false},
30	{"x/./y", false},
31	{"../", false},
32	{"../x", false},
33	{"x/..", false},
34	{"x/../y", false},
35	{"x//y", false},
36	{`x\`, true},
37	{`x\y`, true},
38	{`x:y`, true},
39	{`\x`, true},
40}
41
42func TestValidPath(t *testing.T) {
43	for _, tt := range isValidPathTests {
44		ok := ValidPath(tt.name)
45		if ok != tt.ok {
46			t.Errorf("ValidPath(%q) = %v, want %v", tt.name, ok, tt.ok)
47		}
48	}
49}
50