94
141
assertFiltering(filter, new File("imaginary"), false);
95
142
assertFiltering(filter, new File("imaginary/"), false);
97
assertFiltering(filter, new File("STATUS.html"), false);
144
assertFiltering(filter, new File("LICENSE.txt"), false);
146
assertSame(DirectoryFileFilter.DIRECTORY, DirectoryFileFilter.INSTANCE);
149
public void testFiles() throws Exception {
150
// XXX: This test presumes the current working dir is the base dir of the source checkout.
151
IOFileFilter filter = FileFileFilter.FILE;
153
assertFiltering(filter, new File("src/"), false);
154
assertFiltering(filter, new File("src/java/"), false);
156
assertFiltering(filter, new File("project.xml"), true);
158
assertFiltering(filter, new File("imaginary"), false);
159
assertFiltering(filter, new File("imaginary/"), false);
161
assertFiltering(filter, new File("LICENSE.txt"), true);
100
164
public void testPrefix() throws Exception {
101
165
IOFileFilter filter = new PrefixFileFilter(new String[] { "foo", "bar" });
166
File testFile = new File( "test" );
167
File fredFile = new File( "fred" );
102
169
assertFiltering(filter, new File("foo.test"), true);
103
170
assertFiltering(filter, new File("FOO.test"), false); //case-sensitive
104
171
assertFiltering(filter, new File("foo"), true);
105
172
assertFiltering(filter, new File("bar"), true);
106
173
assertFiltering(filter, new File("food/"), true);
175
filter = FileFilterUtils.prefixFileFilter( "bar" );
107
176
assertFiltering(filter, new File("barred\\"), true);
108
177
assertFiltering(filter, new File("test"), false);
109
178
assertFiltering(filter, new File("fo_o.test"), false);
110
179
assertFiltering(filter, new File("abar.exe"), false);
112
181
filter = new PrefixFileFilter("tes");
113
182
assertFiltering(filter, new File("test"), true);
114
183
assertFiltering(filter, new File("fred"), false);
185
assertTrue( filter.accept( testFile.getParentFile(), testFile.getName() ) );
186
assertTrue( !filter.accept( fredFile.getParentFile(), fredFile.getName() ) );
188
List prefixes = Arrays.asList( new String[] { "foo", "fre" } );
189
IOFileFilter listFilter = new PrefixFileFilter( prefixes );
191
assertTrue( !listFilter.accept( testFile.getParentFile(), testFile.getName() ) );
192
assertTrue( listFilter.accept( fredFile.getParentFile(), fredFile.getName() ) );
117
196
new PrefixFileFilter((String) null);
119
198
} catch (IllegalArgumentException ex) {
202
new PrefixFileFilter((String[]) null);
204
} catch (IllegalArgumentException ex) {
208
new PrefixFileFilter((List) null);
210
} catch (IllegalArgumentException ex) {
123
214
public void testNameFilter() throws Exception {
124
215
IOFileFilter filter = new NameFileFilter(new String[] { "foo", "bar" });
125
216
assertFiltering(filter, new File("foo"), true);
126
217
assertFiltering(filter, new File("bar"), true);
127
218
assertFiltering(filter, new File("fred"), false);
220
filter = new NameFileFilter(new String[] { "foo", "bar" }, IOCase.SENSITIVE);
221
assertFiltering(filter, new File("foo"), true);
222
assertFiltering(filter, new File("bar"), true);
223
assertFiltering(filter, new File("FOO"), false);
224
assertFiltering(filter, new File("BAR"), false);
226
filter = new NameFileFilter(new String[] { "foo", "bar" }, IOCase.INSENSITIVE);
227
assertFiltering(filter, new File("foo"), true);
228
assertFiltering(filter, new File("bar"), true);
229
assertFiltering(filter, new File("FOO"), true);
230
assertFiltering(filter, new File("BAR"), true);
232
filter = new NameFileFilter(new String[] { "foo", "bar" }, IOCase.SYSTEM);
233
assertFiltering(filter, new File("foo"), true);
234
assertFiltering(filter, new File("bar"), true);
235
assertFiltering(filter, new File("FOO"), WINDOWS);
236
assertFiltering(filter, new File("BAR"), WINDOWS);
238
filter = new NameFileFilter(new String[] { "foo", "bar" }, (IOCase) null);
239
assertFiltering(filter, new File("foo"), true);
240
assertFiltering(filter, new File("bar"), true);
241
assertFiltering(filter, new File("FOO"), false);
242
assertFiltering(filter, new File("BAR"), false);
129
244
// repeat for a List
130
245
java.util.ArrayList list = new java.util.ArrayList();
176
320
assertFiltering(new AndFileFilter(trueFilter, falseFilter), new File("foo.test"), false);
177
321
assertFiltering(new AndFileFilter(falseFilter, trueFilter), new File("foo.test"), false);
178
322
assertFiltering(new AndFileFilter(falseFilter, falseFilter), new File("foo.test"), false);
324
List filters = new ArrayList();
325
assertFiltering( new AndFileFilter( filters ), new File( "test" ), false );
326
assertFiltering( new AndFileFilter(), new File( "test" ), false );
180
329
new AndFileFilter(falseFilter, null);
182
331
} catch (IllegalArgumentException ex) {
334
AndFileFilter f = new AndFileFilter((List) null);
335
assertEquals(true, f.getFileFilters().isEmpty());
186
338
public void testOr() throws Exception {
187
339
IOFileFilter trueFilter = TrueFileFilter.INSTANCE;
188
340
IOFileFilter falseFilter = FalseFileFilter.INSTANCE;
189
assertFiltering(new OrFileFilter(trueFilter, trueFilter), new File("foo.test"), true);
190
assertFiltering(new OrFileFilter(trueFilter, falseFilter), new File("foo.test"), true);
191
assertFiltering(new OrFileFilter(falseFilter, trueFilter), new File("foo.test"), true);
192
assertFiltering(new OrFileFilter(falseFilter, falseFilter), new File("foo.test"), false);
341
File testFile = new File( "foo.test" );
342
assertFiltering(new OrFileFilter(trueFilter, trueFilter), testFile, true);
343
assertFiltering(new OrFileFilter(trueFilter, falseFilter), testFile, true);
344
assertFiltering(new OrFileFilter(falseFilter, trueFilter), testFile, true);
345
assertFiltering(new OrFileFilter(falseFilter, falseFilter), testFile, false);
346
assertFiltering(new OrFileFilter(), testFile, false);
348
List filters = new ArrayList();
349
filters.add( trueFilter );
350
filters.add( falseFilter );
352
OrFileFilter orFilter = new OrFileFilter( filters );
354
assertFiltering(orFilter, testFile, true);
355
assertEquals( orFilter.getFileFilters(), filters );
356
orFilter.removeFileFilter( trueFilter );
357
assertFiltering(orFilter, testFile, false);
358
orFilter.setFileFilters( filters );
359
assertFiltering(orFilter, testFile, true);
361
assertTrue( orFilter.accept( testFile.getParentFile(), testFile.getName() ) );
362
orFilter.removeFileFilter( trueFilter );
363
assertTrue( !orFilter.accept( testFile.getParentFile(), testFile.getName() ) );
194
366
new OrFileFilter(falseFilter, null);
196
368
} catch (IllegalArgumentException ex) {
371
OrFileFilter f = new OrFileFilter((List) null);
372
assertEquals(true, f.getFileFilters().isEmpty());
375
public void testDeprecatedWildcard() throws Exception {
376
IOFileFilter filter = new WildcardFilter("*.txt");
377
List patternList = Arrays.asList( new String[] { "*.txt", "*.xml", "*.gif" } );
378
IOFileFilter listFilter = new WildcardFilter( patternList );
379
File txtFile = new File( "test.txt" );
380
File bmpFile = new File( "test.bmp" );
381
File dir = new File( "src/java" );
383
assertFiltering(filter, new File("log.txt"), true);
384
// assertFiltering(filter, new File("log.txt.bak"), false);
386
filter = new WildcardFilter("log?.txt");
387
assertFiltering(filter, new File("log1.txt"), true);
388
assertFiltering(filter, new File("log12.txt"), false);
390
filter = new WildcardFilter("open??.????04");
391
assertFiltering(filter, new File("openAB.102504"), true);
392
assertFiltering(filter, new File("openA.102504"), false);
393
assertFiltering(filter, new File("openXY.123103"), false);
394
// assertFiltering(filter, new File("openAB.102504.old"), false);
396
filter = new WildcardFilter(new String[] {"*.java", "*.class"});
397
assertFiltering(filter, new File("Test.java"), true);
398
assertFiltering(filter, new File("Test.class"), true);
399
assertFiltering(filter, new File("Test.jsp"), false);
401
assertFiltering(listFilter, new File("Test.txt"), true);
402
assertFiltering(listFilter, new File("Test.xml"), true);
403
assertFiltering(listFilter, new File("Test.gif"), true);
404
assertFiltering(listFilter, new File("Test.bmp"), false);
406
assertTrue( listFilter.accept( txtFile ) );
407
assertTrue( !listFilter.accept( bmpFile ) );
408
assertTrue( !listFilter.accept( dir ) );
410
assertTrue( listFilter.accept( txtFile.getParentFile(), txtFile.getName() ) );
411
assertTrue( !listFilter.accept( bmpFile.getParentFile(), bmpFile.getName() ) );
412
assertTrue( !listFilter.accept( dir.getParentFile(), dir.getName() ) );
415
new WildcardFilter((String) null);
417
} catch (IllegalArgumentException ex) {
422
new WildcardFilter((String[]) null);
424
} catch (IllegalArgumentException ex) {
429
new WildcardFilter((List) null);
431
} catch (IllegalArgumentException ex) {
436
public void testWildcard() throws Exception {
437
IOFileFilter filter = new WildcardFileFilter("*.txt");
438
assertFiltering(filter, new File("log.txt"), true);
439
assertFiltering(filter, new File("log.TXT"), false);
441
filter = new WildcardFileFilter("*.txt", IOCase.SENSITIVE);
442
assertFiltering(filter, new File("log.txt"), true);
443
assertFiltering(filter, new File("log.TXT"), false);
445
filter = new WildcardFileFilter("*.txt", IOCase.INSENSITIVE);
446
assertFiltering(filter, new File("log.txt"), true);
447
assertFiltering(filter, new File("log.TXT"), true);
449
filter = new WildcardFileFilter("*.txt", IOCase.SYSTEM);
450
assertFiltering(filter, new File("log.txt"), true);
451
assertFiltering(filter, new File("log.TXT"), WINDOWS);
453
filter = new WildcardFileFilter("*.txt", (IOCase) null);
454
assertFiltering(filter, new File("log.txt"), true);
455
assertFiltering(filter, new File("log.TXT"), false);
457
filter = new WildcardFileFilter(new String[] {"*.java", "*.class"});
458
assertFiltering(filter, new File("Test.java"), true);
459
assertFiltering(filter, new File("Test.class"), true);
460
assertFiltering(filter, new File("Test.jsp"), false);
462
filter = new WildcardFileFilter(new String[] {"*.java", "*.class"}, IOCase.SENSITIVE);
463
assertFiltering(filter, new File("Test.java"), true);
464
assertFiltering(filter, new File("Test.JAVA"), false);
466
filter = new WildcardFileFilter(new String[] {"*.java", "*.class"}, IOCase.INSENSITIVE);
467
assertFiltering(filter, new File("Test.java"), true);
468
assertFiltering(filter, new File("Test.JAVA"), true);
470
filter = new WildcardFileFilter(new String[] {"*.java", "*.class"}, IOCase.SYSTEM);
471
assertFiltering(filter, new File("Test.java"), true);
472
assertFiltering(filter, new File("Test.JAVA"), WINDOWS);
474
filter = new WildcardFileFilter(new String[] {"*.java", "*.class"}, (IOCase) null);
475
assertFiltering(filter, new File("Test.java"), true);
476
assertFiltering(filter, new File("Test.JAVA"), false);
478
List patternList = Arrays.asList( new String[] { "*.txt", "*.xml", "*.gif" } );
479
IOFileFilter listFilter = new WildcardFileFilter( patternList );
480
assertFiltering(listFilter, new File("Test.txt"), true);
481
assertFiltering(listFilter, new File("Test.xml"), true);
482
assertFiltering(listFilter, new File("Test.gif"), true);
483
assertFiltering(listFilter, new File("Test.bmp"), false);
485
File txtFile = new File( "test.txt" );
486
File bmpFile = new File( "test.bmp" );
487
File dir = new File( "src/java" );
488
assertTrue( listFilter.accept( txtFile ) );
489
assertTrue( !listFilter.accept( bmpFile ) );
490
assertTrue( !listFilter.accept( dir ) );
492
assertTrue( listFilter.accept( txtFile.getParentFile(), txtFile.getName() ) );
493
assertTrue( !listFilter.accept( bmpFile.getParentFile(), bmpFile.getName() ) );
494
assertTrue( !listFilter.accept( dir.getParentFile(), dir.getName() ) );
497
new WildcardFileFilter((String) null);
499
} catch (IllegalArgumentException ex) {}
501
new WildcardFileFilter((String[]) null);
503
} catch (IllegalArgumentException ex) {}
505
new WildcardFileFilter((List) null);
507
} catch (IllegalArgumentException ex) {}
510
public void testDelegateFileFilter() throws Exception {
511
OrFileFilter orFilter = new OrFileFilter();
512
File testFile = new File( "test.txt" );
514
IOFileFilter filter = new DelegateFileFilter((FileFilter) orFilter);
515
assertFiltering( filter, testFile, false );
517
filter = new DelegateFileFilter((FilenameFilter) orFilter);
518
assertFiltering( filter, testFile, false );
521
new DelegateFileFilter((FileFilter) null);
523
} catch( IllegalArgumentException iae ) {
527
new DelegateFileFilter((FilenameFilter) null);
529
} catch( IllegalArgumentException iae ) {
534
public void testMakeCVSAware() throws Exception {
535
IOFileFilter filter1 = FileFilterUtils.makeCVSAware(null);
536
IOFileFilter filter2 = FileFilterUtils.makeCVSAware(FileFilterUtils
537
.nameFileFilter("test-file1.txt"));
539
File file = new File(getTestDirectory(), "CVS");
541
assertFiltering(filter1, file, false);
542
assertFiltering(filter2, file, false);
543
FileUtils.deleteDirectory(file);
545
file = new File(getTestDirectory(), "test-file1.txt");
547
assertFiltering(filter1, file, true);
548
assertFiltering(filter2, file, true);
550
file = new File(getTestDirectory(), "test-file2.log");
552
assertFiltering(filter1, file, true);
553
assertFiltering(filter2, file, false);
555
file = new File(getTestDirectory(), "CVS");
557
assertFiltering(filter1, file, true);
558
assertFiltering(filter2, file, false);
561
public void testMakeSVNAware() throws Exception {
562
IOFileFilter filter1 = FileFilterUtils.makeSVNAware(null);
563
IOFileFilter filter2 = FileFilterUtils.makeSVNAware(FileFilterUtils
564
.nameFileFilter("test-file1.txt"));
566
File file = new File(getTestDirectory(), SVN_DIR_NAME);
568
assertFiltering(filter1, file, false);
569
assertFiltering(filter2, file, false);
570
FileUtils.deleteDirectory(file);
572
file = new File(getTestDirectory(), "test-file1.txt");
574
assertFiltering(filter1, file, true);
575
assertFiltering(filter2, file, true);
577
file = new File(getTestDirectory(), "test-file2.log");
579
assertFiltering(filter1, file, true);
580
assertFiltering(filter2, file, false);
582
file = new File(getTestDirectory(), SVN_DIR_NAME);
584
assertFiltering(filter1, file, true);
585
assertFiltering(filter2, file, false);
588
public void testAgeFilter() throws Exception {
589
File oldFile = new File(getTestDirectory(), "old.txt");
590
File reference = new File(getTestDirectory(), "reference.txt");
591
File newFile = new File(getTestDirectory(), "new.txt");
593
createFile(oldFile, 0);
598
} catch(InterruptedException ie) {
601
createFile(reference, 0);
602
} while( oldFile.lastModified() == reference.lastModified() );
604
Date date = new Date();
605
long now = date.getTime();
610
} catch(InterruptedException ie) {
613
createFile(newFile, 0);
614
} while( reference.lastModified() == newFile.lastModified() );
616
IOFileFilter filter1 = FileFilterUtils.ageFileFilter(now);
617
IOFileFilter filter2 = FileFilterUtils.ageFileFilter(now, true);
618
IOFileFilter filter3 = FileFilterUtils.ageFileFilter(now, false);
619
IOFileFilter filter4 = FileFilterUtils.ageFileFilter(date);
620
IOFileFilter filter5 = FileFilterUtils.ageFileFilter(date, true);
621
IOFileFilter filter6 = FileFilterUtils.ageFileFilter(date, false);
622
IOFileFilter filter7 = FileFilterUtils.ageFileFilter(reference);
623
IOFileFilter filter8 = FileFilterUtils.ageFileFilter(reference, true);
624
IOFileFilter filter9 = FileFilterUtils.ageFileFilter(reference, false);
626
assertFiltering(filter1, oldFile, true);
627
assertFiltering(filter2, oldFile, true);
628
assertFiltering(filter3, oldFile, false);
629
assertFiltering(filter4, oldFile, true);
630
assertFiltering(filter5, oldFile, true);
631
assertFiltering(filter6, oldFile, false);
632
assertFiltering(filter7, oldFile, true);
633
assertFiltering(filter8, oldFile, true);
634
assertFiltering(filter9, oldFile, false);
635
assertFiltering(filter1, newFile, false);
636
assertFiltering(filter2, newFile, false);
637
assertFiltering(filter3, newFile, true);
638
assertFiltering(filter4, newFile, false);
639
assertFiltering(filter5, newFile, false);
640
assertFiltering(filter6, newFile, true);
641
assertFiltering(filter7, newFile, false);
642
assertFiltering(filter8, newFile, false);
643
assertFiltering(filter9, newFile, true);
646
public void testSizeFilter() throws Exception {
647
File smallFile = new File(getTestDirectory(), "small.txt");
648
createFile(smallFile, 32);
649
File largeFile = new File(getTestDirectory(), "large.txt");
650
createFile(largeFile, 128);
651
IOFileFilter filter1 = FileFilterUtils.sizeFileFilter(64);
652
IOFileFilter filter2 = FileFilterUtils.sizeFileFilter(64, true);
653
IOFileFilter filter3 = FileFilterUtils.sizeFileFilter(64, false);
655
assertFiltering(filter1, smallFile, false);
656
assertFiltering(filter2, smallFile, false);
657
assertFiltering(filter3, smallFile, true);
658
assertFiltering(filter1, largeFile, true);
659
assertFiltering(filter2, largeFile, true);
660
assertFiltering(filter3, largeFile, false);
663
IOFileFilter filter4 = FileFilterUtils.sizeRangeFileFilter(33, 127);
664
IOFileFilter filter5 = FileFilterUtils.sizeRangeFileFilter(32, 127);
665
IOFileFilter filter6 = FileFilterUtils.sizeRangeFileFilter(33, 128);
666
IOFileFilter filter7 = FileFilterUtils.sizeRangeFileFilter(31, 129);
667
IOFileFilter filter8 = FileFilterUtils.sizeRangeFileFilter(128, 128);
669
assertFiltering(filter4, smallFile, false);
670
assertFiltering(filter4, largeFile, false);
671
assertFiltering(filter5, smallFile, true);
672
assertFiltering(filter5, largeFile, false);
673
assertFiltering(filter6, smallFile, false);
674
assertFiltering(filter6, largeFile, true);
675
assertFiltering(filter7, smallFile, true);
676
assertFiltering(filter7, largeFile, true);
677
assertFiltering(filter8, largeFile, true);
680
FileFilterUtils.sizeFileFilter(-1);
682
} catch (IllegalArgumentException ex) {
687
public void testHidden() throws Exception {
688
File hiddenDir = new File(SVN_DIR_NAME);
689
if (hiddenDir.exists()) {
690
assertFiltering(HiddenFileFilter.HIDDEN, hiddenDir, hiddenDir.isHidden());
691
assertFiltering(HiddenFileFilter.VISIBLE, hiddenDir, !hiddenDir.isHidden());
693
assertFiltering(HiddenFileFilter.HIDDEN, getTestDirectory(), false);
694
assertFiltering(HiddenFileFilter.VISIBLE, getTestDirectory(), true);
697
public void testCanRead() throws Exception {
698
File readOnlyFile = new File(getTestDirectory(), "read-only-file1.txt");
699
createFile(readOnlyFile, 32);
700
readOnlyFile.setReadOnly();
701
assertFiltering(CanReadFileFilter.CAN_READ, readOnlyFile, true);
702
assertFiltering(CanReadFileFilter.CANNOT_READ, readOnlyFile, false);
703
assertFiltering(CanReadFileFilter.READ_ONLY, readOnlyFile, true);
704
readOnlyFile.delete();
707
public void testCanWrite() throws Exception {
708
File readOnlyFile = new File(getTestDirectory(), "read-only-file2.txt");
709
createFile(readOnlyFile, 32);
710
readOnlyFile.setReadOnly();
711
assertFiltering(CanWriteFileFilter.CAN_WRITE, getTestDirectory(), true);
712
assertFiltering(CanWriteFileFilter.CANNOT_WRITE, getTestDirectory(), false);
713
assertFiltering(CanWriteFileFilter.CAN_WRITE, readOnlyFile, false);
714
assertFiltering(CanWriteFileFilter.CANNOT_WRITE, readOnlyFile, true);
715
readOnlyFile.delete();
718
public void testEmpty() throws Exception {
721
File emptyDir = new File(getTestDirectory(), "empty-dir");
723
assertFiltering(EmptyFileFilter.EMPTY, emptyDir, true);
724
assertFiltering(EmptyFileFilter.NOT_EMPTY, emptyDir, false);
727
File emptyFile = new File(emptyDir, "empty-file.txt");
728
createFile(emptyFile, 0);
729
assertFiltering(EmptyFileFilter.EMPTY, emptyFile, true);
730
assertFiltering(EmptyFileFilter.NOT_EMPTY, emptyFile, false);
733
assertFiltering(EmptyFileFilter.EMPTY, emptyDir, false);
734
assertFiltering(EmptyFileFilter.NOT_EMPTY, emptyDir, true);
737
File notEmptyFile = new File(emptyDir, "not-empty-file.txt");
738
createFile(notEmptyFile, 32);
739
assertFiltering(EmptyFileFilter.EMPTY, notEmptyFile, false);
740
assertFiltering(EmptyFileFilter.NOT_EMPTY, notEmptyFile, true);
741
FileUtils.forceDelete(emptyDir);
744
//-----------------------------------------------------------------------
745
public void testMakeDirectoryOnly() throws Exception {
746
assertSame(DirectoryFileFilter.DIRECTORY, FileFilterUtils.makeDirectoryOnly(null));
748
IOFileFilter filter = FileFilterUtils.makeDirectoryOnly(
749
FileFilterUtils.nameFileFilter("B"));
751
File fileA = new File(getTestDirectory(), "A");
752
File fileB = new File(getTestDirectory(), "B");
757
assertFiltering(filter, fileA, false);
758
assertFiltering(filter, fileB, true);
760
FileUtils.deleteDirectory(fileA);
761
FileUtils.deleteDirectory(fileB);
763
createFile(fileA, 32);
764
createFile(fileB, 32);
766
assertFiltering(filter, fileA, false);
767
assertFiltering(filter, fileB, false);
773
//-----------------------------------------------------------------------
774
public void testMakeFileOnly() throws Exception {
775
assertSame(FileFileFilter.FILE, FileFilterUtils.makeFileOnly(null));
777
IOFileFilter filter = FileFilterUtils.makeFileOnly(
778
FileFilterUtils.nameFileFilter("B"));
780
File fileA = new File(getTestDirectory(), "A");
781
File fileB = new File(getTestDirectory(), "B");
786
assertFiltering(filter, fileA, false);
787
assertFiltering(filter, fileB, false);
789
FileUtils.deleteDirectory(fileA);
790
FileUtils.deleteDirectory(fileB);
792
createFile(fileA, 32);
793
createFile(fileB, 32);
795
assertFiltering(filter, fileA, false);
796
assertFiltering(filter, fileB, true);