1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 package org.eclipse.jgit.util;
45
46 import static org.eclipse.jgit.util.Paths.compare;
47 import static org.eclipse.jgit.util.Paths.compareSameName;
48 import static org.junit.Assert.assertEquals;
49 import static org.junit.Assert.assertNull;
50
51 import org.eclipse.jgit.lib.Constants;
52 import org.eclipse.jgit.lib.FileMode;
53 import org.junit.Test;
54
55 public class PathsTest {
56 @Test
57 public void testStripTrailingSeparator() {
58 assertNull(Paths.stripTrailingSeparator(null));
59 assertEquals("", Paths.stripTrailingSeparator(""));
60 assertEquals("a", Paths.stripTrailingSeparator("a"));
61 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo"));
62 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo/"));
63 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo//"));
64 assertEquals("a/boo", Paths.stripTrailingSeparator("a/boo///"));
65 }
66
67 @Test
68 public void testPathCompare() {
69 byte[] a = Constants.encode("afoo/bar.c");
70 byte[] b = Constants.encode("bfoo/bar.c");
71
72 assertEquals(0, compare(a, 1, a.length, 0, b, 1, b.length, 0));
73 assertEquals(-1, compare(a, 0, a.length, 0, b, 0, b.length, 0));
74 assertEquals(1, compare(b, 0, b.length, 0, a, 0, a.length, 0));
75
76 a = Constants.encode("a");
77 b = Constants.encode("aa");
78 assertEquals(-97, compare(a, 0, a.length, 0, b, 0, b.length, 0));
79 assertEquals(0, compare(a, 0, a.length, 0, b, 0, 1, 0));
80 assertEquals(0, compare(a, 0, a.length, 0, b, 1, 2, 0));
81 assertEquals(0, compareSameName(a, 0, a.length, b, 1, b.length, 0));
82 assertEquals(0, compareSameName(a, 0, a.length, b, 0, 1, 0));
83 assertEquals(-50, compareSameName(a, 0, a.length, b, 0, b.length, 0));
84 assertEquals(97, compareSameName(b, 0, b.length, a, 0, a.length, 0));
85
86 a = Constants.encode("a");
87 b = Constants.encode("a");
88 assertEquals(0, compare(
89 a, 0, a.length, FileMode.TREE.getBits(),
90 b, 0, b.length, FileMode.TREE.getBits()));
91 assertEquals(0, compare(
92 a, 0, a.length, FileMode.TREE.getBits(),
93 b, 0, b.length, FileMode.GITLINK.getBits()));
94 assertEquals(0, compare(
95 a, 0, a.length, FileMode.GITLINK.getBits(),
96 b, 0, b.length, FileMode.GITLINK.getBits()));
97 assertEquals(0, compare(
98 a, 0, a.length, FileMode.GITLINK.getBits(),
99 b, 0, b.length, FileMode.TREE.getBits()));
100 assertEquals(0, compare(
101 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
102 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
103 assertEquals(-47, compare(
104 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
105 b, 0, b.length, FileMode.TREE.getBits()));
106 assertEquals(0, compare(
107 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
108 b, 0, b.length, FileMode.GITLINK.getBits()));
109 assertEquals(47, compare(
110 a, 0, a.length, FileMode.TREE.getBits(),
111 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
112 assertEquals(0, compare(
113 a, 0, a.length, FileMode.GITLINK.getBits(),
114 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
115
116 assertEquals(0, compareSameName(
117 a, 0, a.length,
118 b, 0, b.length, FileMode.TREE.getBits()));
119 assertEquals(0, compareSameName(
120 a, 0, a.length,
121 b, 0, b.length, FileMode.REGULAR_FILE.getBits()));
122 assertEquals(0, compareSameName(
123 a, 0, a.length,
124 b, 0, b.length, FileMode.GITLINK.getBits()));
125
126 a = Constants.encode("a.c");
127 b = Constants.encode("a");
128 byte[] c = Constants.encode("a0c");
129 assertEquals(-1, compare(
130 a, 0, a.length, FileMode.REGULAR_FILE.getBits(),
131 b, 0, b.length, FileMode.TREE.getBits()));
132 assertEquals(-1, compare(
133 b, 0, b.length, FileMode.TREE.getBits(),
134 c, 0, c.length, FileMode.REGULAR_FILE.getBits()));
135 }
136 }