15ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski/*
25ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * Copyright (C) 2013 The Android Open Source Project
35ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski *
45ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * Licensed under the Apache License, Version 2.0 (the "License");
55ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * you may not use this file except in compliance with the License.
65ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * You may obtain a copy of the License at
75ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski *
85ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski *      http://www.apache.org/licenses/LICENSE-2.0
95ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski *
105ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * Unless required by applicable law or agreed to in writing, software
115ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * distributed under the License is distributed on an "AS IS" BASIS,
125ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * See the License for the specific language governing permissions and
145ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * limitations under the License.
155ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski */
165ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
175ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskipackage android.support.v4.content;
185ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
195ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport static org.junit.Assert.assertEquals;
205ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport static org.junit.Assert.assertFalse;
215ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport static org.junit.Assert.assertNull;
225ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport static org.junit.Assert.assertTrue;
235ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
245ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport android.support.test.filters.SmallTest;
255ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport android.support.test.runner.AndroidJUnit4;
265ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport android.test.MoreAsserts;
275ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
2829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewskiimport junit.framework.Assert;
2929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
305ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport org.junit.Test;
315ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskiimport org.junit.runner.RunWith;
325ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
335ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski/**
345ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski * Tests for {@link MimeTypeFilter}
355ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski */
365ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski@SmallTest
375ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski@RunWith(AndroidJUnit4.class)
385ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewskipublic class MimeTypeFilterTest {
395ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    @Test
405ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    public void matchesBasic() throws Exception {
415ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertTrue(MimeTypeFilter.matches("image/jpeg", "*/*"));
425ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertTrue(MimeTypeFilter.matches("image/jpeg", "image/*"));
435ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertTrue(MimeTypeFilter.matches("image/jpeg", "image/jpeg"));
445ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertTrue(MimeTypeFilter.matches("image/jpeg", "*/jpeg"));
455ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
465ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        // These matchers are case *sensitive*.
475ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("ImAgE/JpEg", "iMaGe/*"));
485ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("IMAGE/JPEG", "image/jpeg"));
495ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("image/jpeg", "IMAGE/JPEG"));
505ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
515ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("image/jpeg", "image/png"));
525ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("image/jpeg", "video/jpeg"));
535ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
545ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches((String) null, "*/*"));
555ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches((String) null, "image/"));
565ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches((String) null, "image/jpeg"));
575ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
5829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        // Null and invalid MIME types.
5929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches((String) null, "*/*"));
605ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("", "*/*"));
615ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("image/", "*/*"));
6229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        assertFalse(MimeTypeFilter.matches("*/", "*/*"));
635ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    }
645ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
655ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    @Test
665ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    public void matchesManyFilters() throws Exception {
675ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("*/*", MimeTypeFilter.matches("image/jpeg", new String[] {"*/*"}));
685ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("image/*", MimeTypeFilter.matches("image/jpeg", new String[] {"image/*"}));
695ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("image/jpeg", MimeTypeFilter.matches(
705ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                "image/jpeg", new String[] {"image/jpeg"}));
715ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
725ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("*/*", MimeTypeFilter.matches(
735ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                "image/jpeg", new String[] {"not/matching", "*/*"}));
745ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("image/*", MimeTypeFilter.matches(
755ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                "image/jpeg", new String[] {"image/*", "image/jpeg"}));
765ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("image/jpeg", MimeTypeFilter.matches(
775ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                "image/jpeg", new String[] {"image/jpeg", "image/png"}));
785ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
795ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches(
805ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                "ImAgE/JpEg", new String[] {"iMaGe/*", "image/*"}));
815ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertEquals("*/jpeg", MimeTypeFilter.matches(
825ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                "image/jpeg", new String[] {"*/png", "*/jpeg"}));
835ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
845ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches("image/jpeg", new String[] {}));
855ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
865ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches("image/jpeg", new String[] {"image/png", "video/jpeg"}));
875ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches("image/jpeg", new String[] {"video/jpeg", "image/png"}));
885ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
895ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches(null, new String[] {"*/*"}));
905ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches(null, new String[] {"image/"}));
915ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        assertNull(MimeTypeFilter.matches(null, new String[] {"image/jpeg"}));
925ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
9329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        // Null and invalid MIME types.
9429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        assertNull(MimeTypeFilter.matches((String) null, new String[] { "*/*" }));
9529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        assertNull(MimeTypeFilter.matches("", new String[] { "*/*" }));
9629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        assertNull(MimeTypeFilter.matches("image/", new String[] { "*/*" }));
9729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        assertNull(MimeTypeFilter.matches("*/", new String[] { "*/*" }));
985ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    }
995ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
1005ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    @Test
1015ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    public void matchesManyMimeTypes() throws Exception {
1025ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        MoreAsserts.assertEquals(new String[] {"image/jpeg", "image/png"},
1035ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                MimeTypeFilter.matchesMany(new String[] {"image/jpeg", "image/png"}, "image/*"));
1045ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        MoreAsserts.assertEquals(new String[] {"image/png"},
1055ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                MimeTypeFilter.matchesMany(new String[] {"image/jpeg", "image/png"}, "image/png"));
1065ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        MoreAsserts.assertEquals(new String[] {},
1075ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                MimeTypeFilter.matchesMany(new String[] {"image/jpeg", "image/png"}, "*/JpEg"));
1085ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski
1095ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        MoreAsserts.assertEquals(new String[] {},
11029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski                MimeTypeFilter.matchesMany(new String[] {"*/", "image/"}, "*/*"));
1115ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski        MoreAsserts.assertEquals(new String[] {},
1125ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski                MimeTypeFilter.matchesMany(new String[] {}, "*/*"));
1135ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski    }
11429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
11529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski    @Test
11629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski    public void illegalFilters() throws Exception {
11729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
11829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", "");
11929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
12029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
12129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
12229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
12329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
12429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
12529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", "*");
12629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
12729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
12829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
12929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
13029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
13129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
13229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", "*/");
13329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
13429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
13529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
13629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
13729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
13829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
13929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", "/*");
14029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
14129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
14229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
14329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
14429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
14529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
14629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", "*/*/*");
14729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
14829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
14929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
15029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
15129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
15229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
15329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches(new String[] { "image/jpeg" }, "");
15429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
15529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
15629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
15729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
15829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
15929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
16029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches(new String[] { "image/jpeg" }, "*");
16129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
16229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
16329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
16429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
16529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
16629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
16729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches(new String[] { "image/jpeg" }, "*/");
16829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
16929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
17029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
17129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
17229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
17329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
17429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches(new String[] { "image/jpeg" }, "/*");
17529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
17629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
17729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
17829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
17929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
18029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
18129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches(new String[] { "image/jpeg" }, "*/*/*");
18229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
18329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
18429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
18529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
18629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
18729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
18829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", new String[] { "" });
18929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
19029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
19129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
19229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
19329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
19429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
19529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", new String[] { "*" });
19629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
19729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
19829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
19929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
20029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
20129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
20229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", new String[] { "*/" });
20329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
20429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
20529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
20629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
20729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
20829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
20929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", new String[] { "/*" });
21029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
21129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
21229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
21329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
21429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
21529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
21629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matches("image/jpeg", new String[] { "*/*/*" });
21729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
21829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
21929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
22029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
22129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
22229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
22329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matchesMany(new String[] { "image/jpeg" }, "");
22429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
22529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
22629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
22729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
22829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
22929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
23029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matchesMany(new String[] { "image/jpeg" }, "*");
23129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
23229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
23329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
23429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
23529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
23629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
23729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matchesMany(new String[] { "image/jpeg" }, "*/");
23829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
23929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
24029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
24129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
24229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
24329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
24429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matchesMany(new String[] { "image/jpeg" }, "/*");
24529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
24629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
24729395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
24829395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
24929395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski
25029395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        try {
25129395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            MimeTypeFilter.matchesMany(new String[] { "image/jpeg" }, "*/*/*");
25229395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            Assert.fail("Illegal filter, should throw.");
25329395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        } catch (IllegalArgumentException e) {
25429395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski            // Expected.
25529395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski        }
25629395192292de3a4aa2609b8bc6c5ad59f5369bfTomasz Mikolajewski    }
2575ea23bf26200bc88e7876008ffcb6a7a96f7bbdeTomasz Mikolajewski}
258