|
17 | 17 |
|
18 | 18 | import java.io.File; |
19 | 19 | import java.io.IOException; |
20 | | - |
21 | | -import org.apache.commons.io.testtools.FileBasedTestCase; |
| 20 | +import java.util.ArrayList; |
| 21 | +import java.util.Arrays; |
| 22 | +import java.util.Collection; |
22 | 23 |
|
23 | 24 | import junit.framework.Test; |
24 | 25 | import junit.framework.TestSuite; |
25 | 26 | import junit.textui.TestRunner; |
26 | 27 |
|
| 28 | +import org.apache.commons.io.testtools.FileBasedTestCase; |
| 29 | + |
27 | 30 | /** |
28 | 31 | * This is used to test FilenameUtils for correctness. |
29 | 32 | * |
30 | 33 | * @author Peter Donald |
31 | 34 | * @author Matthew Hawthorne |
32 | 35 | * @author Martin Cooper |
33 | | - * @version $Id: FilenameUtilsTestCase.java,v 1.17 2004/10/30 23:23:53 scolebourne Exp $ |
| 36 | + * @version $Id: FilenameUtilsTestCase.java,v 1.18 2004/10/30 23:59:17 scolebourne Exp $ |
34 | 37 | * @see FilenameUtils |
35 | 38 | */ |
36 | 39 | public class FilenameUtilsTestCase extends FileBasedTestCase { |
| 40 | + |
| 41 | + private static final boolean WINDOWS = (File.separatorChar == '\\'); |
37 | 42 |
|
38 | 43 | private File testFile1; |
39 | 44 | private File testFile2; |
@@ -191,20 +196,20 @@ public void testSeparatorsToWindows() { |
191 | 196 | } |
192 | 197 |
|
193 | 198 | public void testSeparatorsToSystem() { |
194 | | - if (File.separatorChar == '/') { |
195 | | - assertEquals(null, FilenameUtils.separatorsToSystem(null)); |
196 | | - assertEquals("/a/b/c", FilenameUtils.separatorsToSystem("/a/b/c")); |
197 | | - assertEquals("/a/b/c.txt", FilenameUtils.separatorsToSystem("/a/b/c.txt")); |
198 | | - assertEquals("/a/b/c", FilenameUtils.separatorsToSystem("/a/b\\c")); |
199 | | - assertEquals("/a/b/c", FilenameUtils.separatorsToSystem("\\a\\b\\c")); |
200 | | - assertEquals("D:/a/b/c", FilenameUtils.separatorsToSystem("D:\\a\\b\\c")); |
201 | | - } else { |
| 199 | + if (WINDOWS) { |
202 | 200 | assertEquals(null, FilenameUtils.separatorsToSystem(null)); |
203 | 201 | assertEquals("\\a\\b\\c", FilenameUtils.separatorsToSystem("\\a\\b\\c")); |
204 | 202 | assertEquals("\\a\\b\\c.txt", FilenameUtils.separatorsToSystem("\\a\\b\\c.txt")); |
205 | 203 | assertEquals("\\a\\b\\c", FilenameUtils.separatorsToSystem("\\a\\b/c")); |
206 | 204 | assertEquals("\\a\\b\\c", FilenameUtils.separatorsToSystem("/a/b/c")); |
207 | 205 | assertEquals("D:\\a\\b\\c", FilenameUtils.separatorsToSystem("D:/a/b/c")); |
| 206 | + } else { |
| 207 | + assertEquals(null, FilenameUtils.separatorsToSystem(null)); |
| 208 | + assertEquals("/a/b/c", FilenameUtils.separatorsToSystem("/a/b/c")); |
| 209 | + assertEquals("/a/b/c.txt", FilenameUtils.separatorsToSystem("/a/b/c.txt")); |
| 210 | + assertEquals("/a/b/c", FilenameUtils.separatorsToSystem("/a/b\\c")); |
| 211 | + assertEquals("/a/b/c", FilenameUtils.separatorsToSystem("\\a\\b\\c")); |
| 212 | + assertEquals("D:/a/b/c", FilenameUtils.separatorsToSystem("D:\\a\\b\\c")); |
208 | 213 | } |
209 | 214 | } |
210 | 215 |
|
@@ -278,4 +283,121 @@ public void testRemoveExtension() { |
278 | 283 | assertEquals("../filename", FilenameUtils.removeExtension("../filename.ext")); |
279 | 284 | } |
280 | 285 |
|
| 286 | + //----------------------------------------------------------------------- |
| 287 | + public void testIsExtension() { |
| 288 | + assertEquals(false, FilenameUtils.isExtension(null, (String) null)); |
| 289 | + assertEquals(false, FilenameUtils.isExtension("file.txt", (String) null)); |
| 290 | + assertEquals(false, FilenameUtils.isExtension("file.txt", "")); |
| 291 | + assertEquals(true, FilenameUtils.isExtension("file.txt", "txt")); |
| 292 | + assertEquals(false, FilenameUtils.isExtension("file.txt", "rtf")); |
| 293 | + |
| 294 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", (String) null)); |
| 295 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", "")); |
| 296 | + assertEquals(true, FilenameUtils.isExtension("a/b/file.txt", "txt")); |
| 297 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", "rtf")); |
| 298 | + |
| 299 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", (String) null)); |
| 300 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", "")); |
| 301 | + assertEquals(true, FilenameUtils.isExtension("a.b/file.txt", "txt")); |
| 302 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", "rtf")); |
| 303 | + |
| 304 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", (String) null)); |
| 305 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", "")); |
| 306 | + assertEquals(true, FilenameUtils.isExtension("a\\b\\file.txt", "txt")); |
| 307 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", "rtf")); |
| 308 | + |
| 309 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", (String) null)); |
| 310 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", "")); |
| 311 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", "txt")); |
| 312 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", "rtf")); |
| 313 | + |
| 314 | + if (WINDOWS) { |
| 315 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", "TXT")); |
| 316 | + } else { |
| 317 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", "TXT")); |
| 318 | + } |
| 319 | + } |
| 320 | + |
| 321 | + public void testIsExtensionArray() { |
| 322 | + assertEquals(false, FilenameUtils.isExtension(null, (String[]) null)); |
| 323 | + assertEquals(false, FilenameUtils.isExtension("file.txt", (String[]) null)); |
| 324 | + assertEquals(false, FilenameUtils.isExtension("file.txt", new String[0])); |
| 325 | + assertEquals(true, FilenameUtils.isExtension("file.txt", new String[] {"txt"})); |
| 326 | + assertEquals(false, FilenameUtils.isExtension("file.txt", new String[] {"rtf"})); |
| 327 | + assertEquals(true, FilenameUtils.isExtension("file.txt", new String[] {"rtf", "txt"})); |
| 328 | + |
| 329 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", (String[]) null)); |
| 330 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", new String[0])); |
| 331 | + assertEquals(true, FilenameUtils.isExtension("a/b/file.txt", new String[] {"txt"})); |
| 332 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", new String[] {"rtf"})); |
| 333 | + assertEquals(true, FilenameUtils.isExtension("a/b/file.txt", new String[] {"rtf", "txt"})); |
| 334 | + |
| 335 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", (String[]) null)); |
| 336 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", new String[0])); |
| 337 | + assertEquals(true, FilenameUtils.isExtension("a.b/file.txt", new String[] {"txt"})); |
| 338 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", new String[] {"rtf"})); |
| 339 | + assertEquals(true, FilenameUtils.isExtension("a.b/file.txt", new String[] {"rtf", "txt"})); |
| 340 | + |
| 341 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", (String[]) null)); |
| 342 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", new String[0])); |
| 343 | + assertEquals(true, FilenameUtils.isExtension("a\\b\\file.txt", new String[] {"txt"})); |
| 344 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", new String[] {"rtf"})); |
| 345 | + assertEquals(true, FilenameUtils.isExtension("a\\b\\file.txt", new String[] {"rtf", "txt"})); |
| 346 | + |
| 347 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", (String[]) null)); |
| 348 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new String[0])); |
| 349 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"txt"})); |
| 350 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"rtf"})); |
| 351 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"rtf", "txt"})); |
| 352 | + |
| 353 | + if (WINDOWS) { |
| 354 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"TXT"})); |
| 355 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"TXT", "RTF"})); |
| 356 | + } else { |
| 357 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"TXT"})); |
| 358 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new String[] {"TXT", "RTF"})); |
| 359 | + } |
| 360 | + } |
| 361 | + |
| 362 | + public void testIsExtensionCollection() { |
| 363 | + assertEquals(false, FilenameUtils.isExtension(null, (Collection) null)); |
| 364 | + assertEquals(false, FilenameUtils.isExtension("file.txt", (Collection) null)); |
| 365 | + assertEquals(false, FilenameUtils.isExtension("file.txt", new ArrayList())); |
| 366 | + assertEquals(true, FilenameUtils.isExtension("file.txt", new ArrayList(Arrays.asList(new String[] {"txt"})))); |
| 367 | + assertEquals(false, FilenameUtils.isExtension("file.txt", new ArrayList(Arrays.asList(new String[] {"rtf"})))); |
| 368 | + assertEquals(true, FilenameUtils.isExtension("file.txt", new ArrayList(Arrays.asList(new String[] {"rtf", "txt"})))); |
| 369 | + |
| 370 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", (Collection) null)); |
| 371 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", new ArrayList())); |
| 372 | + assertEquals(true, FilenameUtils.isExtension("a/b/file.txt", new ArrayList(Arrays.asList(new String[] {"txt"})))); |
| 373 | + assertEquals(false, FilenameUtils.isExtension("a/b/file.txt", new ArrayList(Arrays.asList(new String[] {"rtf"})))); |
| 374 | + assertEquals(true, FilenameUtils.isExtension("a/b/file.txt", new ArrayList(Arrays.asList(new String[] {"rtf", "txt"})))); |
| 375 | + |
| 376 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", (Collection) null)); |
| 377 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", new ArrayList())); |
| 378 | + assertEquals(true, FilenameUtils.isExtension("a.b/file.txt", new ArrayList(Arrays.asList(new String[] {"txt"})))); |
| 379 | + assertEquals(false, FilenameUtils.isExtension("a.b/file.txt", new ArrayList(Arrays.asList(new String[] {"rtf"})))); |
| 380 | + assertEquals(true, FilenameUtils.isExtension("a.b/file.txt", new ArrayList(Arrays.asList(new String[] {"rtf", "txt"})))); |
| 381 | + |
| 382 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", (Collection) null)); |
| 383 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", new ArrayList())); |
| 384 | + assertEquals(true, FilenameUtils.isExtension("a\\b\\file.txt", new ArrayList(Arrays.asList(new String[] {"txt"})))); |
| 385 | + assertEquals(false, FilenameUtils.isExtension("a\\b\\file.txt", new ArrayList(Arrays.asList(new String[] {"rtf"})))); |
| 386 | + assertEquals(true, FilenameUtils.isExtension("a\\b\\file.txt", new ArrayList(Arrays.asList(new String[] {"rtf", "txt"})))); |
| 387 | + |
| 388 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", (Collection) null)); |
| 389 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList())); |
| 390 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"txt"})))); |
| 391 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"rtf"})))); |
| 392 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"rtf", "txt"})))); |
| 393 | + |
| 394 | + if (WINDOWS) { |
| 395 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"TXT"})))); |
| 396 | + assertEquals(true, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"TXT", "RTF"})))); |
| 397 | + } else { |
| 398 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"TXT"})))); |
| 399 | + assertEquals(false, FilenameUtils.isExtension("a.b\\file.txt", new ArrayList(Arrays.asList(new String[] {"TXT", "RTF"})))); |
| 400 | + } |
| 401 | + } |
| 402 | + |
281 | 403 | } |
0 commit comments