001    /*
002     * Copyright 2002-2004 the original author or authors.
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005     * use this file except in compliance with the License. You may obtain a copy of
006     * the License at
007     * 
008     * http://www.apache.org/licenses/LICENSE-2.0
009     * 
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012     * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013     * License for the specific language governing permissions and limitations under
014     * the License.
015     */
016    package org.springframework.richclient.filechooser;
017    
018    import java.io.File;
019    import java.io.IOException;
020    import java.util.Arrays;
021    
022    import junit.framework.TestCase;
023    
024    /**
025     * Tests for DefaultFileFilter
026     * 
027     * @author Peter De Bruycker
028     */
029    public class DefaultFileFilterTests extends TestCase {
030        public void testSetExtensionListInDescription() {
031            DefaultFileFilter filter = new DefaultFileFilter();
032            filter.addExtension("jpg");
033            filter.addExtension("gif");
034            filter.addExtension("bmp");
035    
036            filter.setDescription("Image files");
037            assertEquals("Image files (*.jpg, *.gif, *.bmp)", filter.getDescription());
038    
039            filter.setExtensionListInDescription(false);
040            assertEquals("Image files", filter.getDescription());
041        }
042    
043        public void testGetDescription() {
044            DefaultFileFilter filter = new DefaultFileFilter();
045            filter.addExtension("jpg");
046            filter.addExtension("gif");
047            filter.addExtension("bmp");
048    
049            assertEquals("(*.jpg, *.gif, *.bmp)", filter.getDescription());
050    
051            // no extensions
052            filter = new DefaultFileFilter();
053            filter.setDescription("test");
054            assertEquals("test", filter.getDescription());
055        }
056    
057        public void testExtensionsAreAddedLowerCase() {
058            DefaultFileFilter filter = new DefaultFileFilter();
059            filter.addExtension("BMP");
060            filter.addExtension("Txt");
061    
062            assertEquals(Arrays.asList(new String[] { "bmp", "txt" }), filter.getExtensions());
063        }
064    
065        public void testAcceptIsDoneLowerCase() {
066            DefaultFileFilter filter = new DefaultFileFilter();
067            filter.addExtension("BMP");
068    
069            File bmpFile = new File("test.bmp");
070            assertTrue(filter.accept(bmpFile));
071        }
072    
073        public void testAddExtension() {
074            DefaultFileFilter filter = new DefaultFileFilter();
075    
076            filter.addExtension("jpg");
077            assertTrue(filter.getExtensions().contains("jpg"));
078    
079            filter.addExtension("jpg");
080            assertEquals(1, filter.getExtensions().size());
081    
082            filter.addExtension("*.gif");
083            assertTrue(filter.getExtensions().contains("gif"));
084            assertFalse(filter.getExtensions().contains("*.gif"));
085    
086            filter.addExtension(".bmp");
087            assertTrue(filter.getExtensions().contains("bmp"));
088            assertFalse(filter.getExtensions().contains(".bmp"));
089        }
090    
091        public void testAccept() {
092            DefaultFileFilter filter = new DefaultFileFilter();
093            filter.addExtension("jpg");
094            filter.addExtension("gif");
095            filter.addExtension("bmp");
096    
097            assertTrue(filter.accept(new File("test.jpg")));
098            assertTrue(filter.accept(new File("test.gif")));
099            assertTrue(filter.accept(new File("test.bmp")));
100            assertFalse(filter.accept(new File("test.txt")));
101        }
102    
103        public void testAcceptDirectory() throws IOException {
104            DefaultFileFilter filter = new DefaultFileFilter();
105    
106            assertTrue("directories are always accepted", filter
107                    .accept(File.createTempFile("test", "test").getParentFile()));
108        }
109    }