Skip to content

Commit 2072d54

Browse files
committed
added test with Unicode supplementary characters
1 parent 4d26454 commit 2072d54

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

libs/entitlement/src/test/java/org/elasticsearch/entitlement/runtime/policy/FileUtilsTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.entitlement.runtime.policy;
1111

12+
import org.elasticsearch.core.PathUtils;
1213
import org.elasticsearch.test.ESTestCase;
1314

1415
import static org.elasticsearch.entitlement.runtime.policy.FileUtils.PATH_ORDER;
@@ -78,4 +79,14 @@ public void testPathOrderWindows() {
7879
assertThat(PATH_ORDER.compare("C:\\a\\b", "C:\\a\\b\\foo.txt"), lessThan(0));
7980
assertThat(PATH_ORDER.compare("C:\\a\\c", "C:\\a\\b.txt"), greaterThan(0));
8081
}
82+
83+
public void testPathOrderingSpecialCharacters() {
84+
assertThat(PATH_ORDER.compare("aa\uD801\uDC28", "aa\uD801\uDC28"), is(0));
85+
assertThat(PATH_ORDER.compare("aa\uD801\uDC28", "aa\uD801\uDC28a"), lessThan(0));
86+
87+
var s = PathUtils.getDefaultFileSystem().getSeparator();
88+
// Similarly to the other tests, we assert that Directories come BEFORE files, even when names are special characters
89+
assertThat(PATH_ORDER.compare(s + "\uD801\uDC28" + s + "b", s + "\uD801\uDC28.xml"), lessThan(0));
90+
assertThat(PATH_ORDER.compare(s + "\uD801\uDC28" + s + "b", s + "b.xml"), greaterThan(0));
91+
}
8192
}

0 commit comments

Comments
 (0)