|
54 | 54 | * @author Grant Harris |
55 | 55 | */ |
56 | 56 | public class FileUtilsTest { |
| 57 | + private final static boolean isWindows = |
| 58 | + System.getProperty("os.name").startsWith("Win"); |
57 | 59 |
|
58 | 60 | @Test |
59 | 61 | public void testGetPath() { |
@@ -81,34 +83,40 @@ public void testGetExtension() { |
81 | 83 | @Test |
82 | 84 | public void testURLToFile() throws MalformedURLException { |
83 | 85 | // verify that 'file:' URL works |
84 | | - final String filePath = "/Users/jqpublic/imagej/ImageJ.class"; |
85 | | - final String fileURL = "file:" + filePath; |
| 86 | + final String jqpublic; |
| 87 | + if (isWindows) { |
| 88 | + jqpublic = "C:/Users/jqpublic/"; |
| 89 | + } else { |
| 90 | + jqpublic = "/Users/jqpublic/"; |
| 91 | + } |
| 92 | + final String filePath = jqpublic + "imagej/ImageJ.class"; |
| 93 | + final String fileURL = new File(filePath).toURI().toURL().toString(); |
86 | 94 | final File fileFile = FileUtils.urlToFile(fileURL); |
87 | | - assertEquals(filePath, fileFile.getPath()); |
| 95 | + assertEqualsPath(filePath, fileFile.getPath()); |
88 | 96 |
|
89 | 97 | // verify that file path with spaces works |
90 | 98 | final File spaceFileOriginal = |
91 | | - new File("/Users/Spaceman Spiff/stun/Blaster.class"); |
| 99 | + new File(jqpublic.replace("jqpublic", "Spaceman Spiff") + "stun/Blaster.class"); |
92 | 100 | final URL spaceURL = spaceFileOriginal.toURI().toURL(); |
93 | 101 | final File spaceFileResult = FileUtils.urlToFile(spaceURL); |
94 | | - assertEquals(spaceFileOriginal.getPath(), spaceFileResult.getPath()); |
| 102 | + assertEqualsPath(spaceFileOriginal.getPath(), spaceFileResult.getPath()); |
95 | 103 |
|
96 | 104 | // verify that file path with various characters works |
97 | 105 | final String alphaLo = "abcdefghijklmnopqrstuvwxyz"; |
98 | 106 | final String alphaHi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
99 | 107 | final String numbers = "1234567890"; |
100 | 108 | final String special = "_~!@#$%^&*()+`-="; |
101 | | - final File specialFileOriginal = new File("/Users/" + alphaLo + "/" + |
| 109 | + final File specialFileOriginal = new File(jqpublic.replace("jqpublic", alphaLo) + |
102 | 110 | alphaHi + "/" + numbers + "/" + special + "/foo/Bar.class"); |
103 | 111 | final URL specialURL = specialFileOriginal.toURI().toURL(); |
104 | 112 | final File specialFileResult = FileUtils.urlToFile(specialURL); |
105 | | - assertEquals(specialFileOriginal.getPath(), specialFileResult.getPath()); |
| 113 | + assertEqualsPath(specialFileOriginal.getPath(), specialFileResult.getPath()); |
106 | 114 |
|
107 | 115 | // verify that 'jar:' URL works |
108 | 116 | final String jarPath = "/Users/jqpublic/imagej/ij-core.jar"; |
109 | 117 | final String jarURL = "jar:file:" + jarPath + "!/imagej/ImageJ.class"; |
110 | 118 | final File jarFile = FileUtils.urlToFile(jarURL); |
111 | | - assertEquals(jarPath, jarFile.getPath()); |
| 119 | + assertEqualsPath(jarPath, jarFile.getPath()); |
112 | 120 |
|
113 | 121 | // verify that OSGi 'bundleresource:' URL fails |
114 | 122 | final String bundleURL = |
@@ -185,4 +193,12 @@ public void testListContents() { |
185 | 193 | } |
186 | 194 | } |
187 | 195 |
|
| 196 | + private static void assertEqualsPath(final String a, final String b) { |
| 197 | + if (isWindows) { |
| 198 | + assertEquals(a.replace('\\', '/'), b.replace('\\', '/')); |
| 199 | + } else { |
| 200 | + assertEquals(a, b); |
| 201 | + } |
| 202 | + } |
| 203 | + |
188 | 204 | } |
0 commit comments