Skip to content

Commit 8e569af

Browse files
author
markcheng
committed
Wrote tests for escapeFileName and unescapeFileName in StringOps.
git-svn-id: file:///tmp/test-svn/trunk@4728 fe72c1cf-3628-48e9-8b72-1c46755d3cff
1 parent 491e716 commit 8e569af

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

drjava/src/edu/rice/cs/util/StringOpsTest.java

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,73 @@ public void testReplace() {
5454
assertEquals("testReplace:", "cabc", StringOps.replace(test, "cabc", "c"));
5555
}
5656

57+
public void testEscapeUnEscapeFileName() {
58+
assertEquals("", StringOps.escapeFileName(""));
59+
assertEquals("abc123", StringOps.escapeFileName("abc123"));
60+
assertEquals("abc123", StringOps.unescapeFileName("abc123"));
61+
62+
assertEquals("\u001b\u001b", StringOps.escapeFileName("\u001b"));
63+
assertEquals("\u001b", StringOps.unescapeFileName("\u001b\u001b"));
64+
65+
assertEquals("\u001b ", StringOps.escapeFileName(" "));
66+
assertEquals(" ", StringOps.unescapeFileName("\u001b "));
67+
68+
assertEquals("\u001b" + String.valueOf(java.io.File.pathSeparatorChar), StringOps.escapeFileName(String.valueOf(java.io.File.pathSeparatorChar)));
69+
assertEquals(String.valueOf(java.io.File.pathSeparatorChar), StringOps.unescapeFileName("\u001b" + String.valueOf(java.io.File.pathSeparatorChar)));
70+
71+
assertEquals("\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR), StringOps.escapeFileName(String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR)));
72+
assertEquals(String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR), StringOps.unescapeFileName("\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR)));
73+
74+
assertEquals("\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR), StringOps.escapeFileName(String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR)));
75+
assertEquals(String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR), StringOps.unescapeFileName("\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR)));
76+
77+
assertEquals("\u001b:", StringOps.escapeFileName(":"));
78+
assertEquals(":", StringOps.unescapeFileName("\u001b:"));
79+
80+
assertEquals("\u001b\u001b\u001b\u001b", StringOps.escapeFileName("\u001b\u001b"));
81+
assertEquals("\u001b\u001b", StringOps.unescapeFileName("\u001b\u001b\u001b\u001b"));
82+
83+
assertEquals("\u001b \u001b ", StringOps.escapeFileName(" "));
84+
assertEquals(" ", StringOps.unescapeFileName("\u001b \u001b "));
85+
86+
assertEquals("\u001b" + String.valueOf(java.io.File.pathSeparatorChar) + "\u001b" + String.valueOf(java.io.File.pathSeparatorChar), StringOps.escapeFileName(String.valueOf(java.io.File.pathSeparatorChar) + String.valueOf(java.io.File.pathSeparatorChar)));
87+
assertEquals(String.valueOf(java.io.File.pathSeparatorChar) + String.valueOf(java.io.File.pathSeparatorChar), StringOps.unescapeFileName("\u001b" + String.valueOf(java.io.File.pathSeparatorChar) + "\u001b" + String.valueOf(java.io.File.pathSeparatorChar)));
88+
89+
assertEquals("\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR), StringOps.escapeFileName(String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR)));
90+
assertEquals(String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR), StringOps.unescapeFileName("\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR)));
91+
92+
assertEquals("\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + "\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR), StringOps.escapeFileName(String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR)));
93+
assertEquals(String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR), StringOps.unescapeFileName("\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + "\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR)));
94+
95+
assertEquals("\u001b:\u001b:", StringOps.escapeFileName("::"));
96+
assertEquals("::", StringOps.unescapeFileName("\u001b:\u001b:"));
97+
98+
assertEquals("abc\u001b\u001b123", StringOps.escapeFileName("abc\u001b123"));
99+
assertEquals("abc\u001b123", StringOps.unescapeFileName("abc\u001b\u001b123"));
100+
101+
102+
assertEquals("abc\u001b 123", StringOps.escapeFileName("abc 123"));
103+
assertEquals("abc 123", StringOps.unescapeFileName("abc\u001b 123"));
104+
105+
assertEquals("abc\u001b" + String.valueOf(java.io.File.pathSeparatorChar) + "123", StringOps.escapeFileName("abc" + String.valueOf(java.io.File.pathSeparatorChar) + "123"));
106+
assertEquals("abc" + String.valueOf(java.io.File.pathSeparatorChar) + "123", StringOps.unescapeFileName("abc\u001b" + String.valueOf(java.io.File.pathSeparatorChar) + "123"));
107+
108+
assertEquals("abc\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "123", StringOps.escapeFileName("abc" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "123"));
109+
assertEquals("abc" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "123", StringOps.unescapeFileName("abc\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "123"));
110+
111+
assertEquals("abc\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + "123", StringOps.escapeFileName("abc" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + "123"));
112+
assertEquals("abc" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + "123", StringOps.unescapeFileName("abc\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR) + "123"));
113+
114+
assertEquals("abc\u001b:123", StringOps.escapeFileName("abc:123"));
115+
assertEquals("abc:123", StringOps.unescapeFileName("abc\u001b:123"));
116+
117+
assertEquals("\u001b\u001bb", StringOps.escapeFileName("\u001bb"));
118+
assertEquals("\u001bb", StringOps.unescapeFileName("\u001b\u001bb"));
119+
120+
assertEquals("abc123\u001b \u001b\u001b\u001b:\u001b" + String.valueOf(java.io.File.pathSeparatorChar) + "\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR), StringOps.escapeFileName("abc123 \u001b:" + String.valueOf(java.io.File.pathSeparatorChar) + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR)));
121+
assertEquals("abc123 \u001b:" + String.valueOf(java.io.File.pathSeparatorChar) + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR), StringOps.unescapeFileName("abc123\u001b \u001b\u001b\u001b:\u001b" + String.valueOf(java.io.File.pathSeparatorChar) + "\u001b" + String.valueOf(ProcessChain.PROCESS_SEPARATOR_CHAR) + "\u001b" + String.valueOf(ProcessChain.PIPE_SEPARATOR_CHAR)));
122+
}
123+
57124
public void testEncodeHTML() {
58125
assertEquals("", StringOps.encodeHTML(""));
59126
assertEquals("abc", StringOps.encodeHTML("abc"));

0 commit comments

Comments
 (0)