1package chezmoi
2
3import (
4	"testing"
5
6	"github.com/stretchr/testify/assert"
7)
8
9func TestNormalizeLinkname(t *testing.T) {
10	for _, tc := range []struct {
11		linkname string
12		expected string
13	}{
14		{
15			linkname: "rel",
16			expected: "rel",
17		},
18		{
19			linkname: "rel/forward",
20			expected: "rel/forward",
21		},
22		{
23			linkname: "rel\\backward",
24			expected: "rel/backward",
25		},
26		{
27			linkname: "rel/forward\\backward",
28			expected: "rel/forward/backward",
29		},
30		{
31			linkname: "/abs/forward",
32			expected: "/abs/forward",
33		},
34		{
35			linkname: "\\abs\\backward",
36			expected: "/abs/backward",
37		},
38		{
39			linkname: "/abs/forward\\backward",
40			expected: "/abs/forward/backward",
41		},
42		{
43			linkname: "c:/abs/forward",
44			expected: "C:/abs/forward",
45		},
46		{
47			linkname: "c:\\abs\\backward",
48			expected: "C:/abs/backward",
49		},
50		{
51			linkname: "c:/abs/forward\\backward",
52			expected: "C:/abs/forward/backward",
53		},
54	} {
55		t.Run(tc.linkname, func(t *testing.T) {
56			assert.Equal(t, tc.expected, normalizeLinkname(tc.linkname))
57		})
58	}
59}
60