diff options
Diffstat (limited to 'guava-tests/test/com/google/common/net/MediaTypeTest.java')
-rw-r--r-- | guava-tests/test/com/google/common/net/MediaTypeTest.java | 432 |
1 files changed, 0 insertions, 432 deletions
diff --git a/guava-tests/test/com/google/common/net/MediaTypeTest.java b/guava-tests/test/com/google/common/net/MediaTypeTest.java deleted file mode 100644 index 12efed6..0000000 --- a/guava-tests/test/com/google/common/net/MediaTypeTest.java +++ /dev/null @@ -1,432 +0,0 @@ -/* - * Copyright (C) 2011 The Guava Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.common.net; - -import static com.google.common.base.Charsets.UTF_16; -import static com.google.common.base.Charsets.UTF_8; -import static com.google.common.net.MediaType.ANY_APPLICATION_TYPE; -import static com.google.common.net.MediaType.ANY_AUDIO_TYPE; -import static com.google.common.net.MediaType.ANY_IMAGE_TYPE; -import static com.google.common.net.MediaType.ANY_TEXT_TYPE; -import static com.google.common.net.MediaType.ANY_TYPE; -import static com.google.common.net.MediaType.ANY_VIDEO_TYPE; -import static com.google.common.net.MediaType.HTML_UTF_8; -import static com.google.common.net.MediaType.JPEG; -import static com.google.common.net.MediaType.PLAIN_TEXT_UTF_8; -import static java.lang.reflect.Modifier.isFinal; -import static java.lang.reflect.Modifier.isPublic; -import static java.lang.reflect.Modifier.isStatic; -import static java.util.Arrays.asList; - -import com.google.common.annotations.Beta; -import com.google.common.annotations.GwtCompatible; -import com.google.common.annotations.GwtIncompatible; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.base.Throwables; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.ImmutableListMultimap; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.testing.EqualsTester; -import com.google.common.testing.NullPointerTester; - -import junit.framework.TestCase; - -import java.lang.reflect.Field; -import java.nio.charset.Charset; -import java.nio.charset.IllegalCharsetNameException; -import java.nio.charset.UnsupportedCharsetException; - -/** - * Tests for {@link MediaType}. - * - * @author Gregory Kick - */ -@Beta -@GwtCompatible(emulated = true) -public class MediaTypeTest extends TestCase { - @GwtIncompatible("reflection") public void testParse_useConstants() throws Exception { - for (MediaType constant : getConstants()) { - assertSame(constant, MediaType.parse(constant.toString())); - } - } - - @GwtIncompatible("reflection") public void testCreate_useConstants() throws Exception { - for (MediaType constant : getConstants()) { - assertSame(constant, MediaType.create(constant.type(), constant.subtype()) - .withParameters(constant.parameters())); - } - } - - @GwtIncompatible("reflection") public void testConstants_charset() throws Exception { - for (Field field : getConstantFields()) { - Optional<Charset> charset = ((MediaType) field.get(null)).charset(); - if (field.getName().endsWith("_UTF_8")) { - assertEquals(Optional.of(UTF_8), charset); - } else { - assertEquals(Optional.absent(), charset); - } - } - } - - @GwtIncompatible("reflection") private static FluentIterable<Field> getConstantFields() { - return FluentIterable.from(asList(MediaType.class.getDeclaredFields())) - .filter(new Predicate<Field>() { - @Override public boolean apply(Field input) { - int modifiers = input.getModifiers(); - return isPublic(modifiers) && isStatic(modifiers) && isFinal(modifiers) - && MediaType.class.equals(input.getType()); - } - }); - } - - @GwtIncompatible("reflection") private static FluentIterable<MediaType> getConstants() { - return getConstantFields() - .transform(new Function<Field, MediaType>() { - @Override public MediaType apply(Field input) { - try { - return (MediaType) input.get(null); - } catch (Exception e) { - throw Throwables.propagate(e); - } - } - }); - } - - public void testCreate_invalidType() { - try { - MediaType.create("te><t", "plaintext"); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testCreate_invalidSubtype() { - try { - MediaType.create("text", "pl@intext"); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testCreate_wildcardTypeDeclaredSubtype() { - try { - MediaType.create("*", "text"); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testCreateApplicationType() { - MediaType newType = MediaType.createApplicationType("yams"); - assertEquals("application", newType.type()); - assertEquals("yams", newType.subtype()); - } - - public void testCreateAudioType() { - MediaType newType = MediaType.createAudioType("yams"); - assertEquals("audio", newType.type()); - assertEquals("yams", newType.subtype()); - } - - public void testCreateImageType() { - MediaType newType = MediaType.createImageType("yams"); - assertEquals("image", newType.type()); - assertEquals("yams", newType.subtype()); - } - - public void testCreateTextType() { - MediaType newType = MediaType.createTextType("yams"); - assertEquals("text", newType.type()); - assertEquals("yams", newType.subtype()); - } - - public void testCreateVideoType() { - MediaType newType = MediaType.createVideoType("yams"); - assertEquals("video", newType.type()); - assertEquals("yams", newType.subtype()); - } - - public void testGetType() { - assertEquals("text", MediaType.parse("text/plain").type()); - assertEquals("application", - MediaType.parse("application/atom+xml; charset=utf-8").type()); - } - - public void testGetSubtype() { - assertEquals("plain", MediaType.parse("text/plain").subtype()); - assertEquals("atom+xml", - MediaType.parse("application/atom+xml; charset=utf-8").subtype()); - } - - private static final ImmutableListMultimap<String, String> PARAMETERS = - ImmutableListMultimap.of("a", "1", "a", "2", "b", "3"); - - public void testGetParameters() { - assertEquals(ImmutableListMultimap.of(), MediaType.parse("text/plain").parameters()); - assertEquals(ImmutableListMultimap.of("charset", "utf-8"), - MediaType.parse("application/atom+xml; charset=utf-8").parameters()); - assertEquals(PARAMETERS, - MediaType.parse("application/atom+xml; a=1; a=2; b=3").parameters()); - } - - public void testWithoutParameters() { - assertSame(MediaType.parse("image/gif"), - MediaType.parse("image/gif").withoutParameters()); - assertEquals(MediaType.parse("image/gif"), - MediaType.parse("image/gif; foo=bar").withoutParameters()); - } - - public void testWithParameters() { - assertEquals(MediaType.parse("text/plain; a=1; a=2; b=3"), - MediaType.parse("text/plain").withParameters(PARAMETERS)); - assertEquals(MediaType.parse("text/plain; a=1; a=2; b=3"), - MediaType.parse("text/plain; a=1; a=2; b=3").withParameters(PARAMETERS)); - } - - public void testWithParameters_invalidAttribute() { - MediaType mediaType = MediaType.parse("text/plain"); - ImmutableListMultimap<String, String> parameters = - ImmutableListMultimap.of("a", "1", "@", "2", "b", "3"); - try { - mediaType.withParameters(parameters); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testWithParameter() { - assertEquals(MediaType.parse("text/plain; a=1"), - MediaType.parse("text/plain").withParameter("a", "1")); - assertEquals(MediaType.parse("text/plain; a=1"), - MediaType.parse("text/plain; a=1; a=2").withParameter("a", "1")); - assertEquals(MediaType.parse("text/plain; a=3"), - MediaType.parse("text/plain; a=1; a=2").withParameter("a", "3")); - assertEquals(MediaType.parse("text/plain; a=1; a=2; b=3"), - MediaType.parse("text/plain; a=1; a=2").withParameter("b", "3")); - } - - public void testWithParameter_invalidAttribute() { - MediaType mediaType = MediaType.parse("text/plain"); - try { - mediaType.withParameter("@", "2"); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testWithCharset() { - assertEquals(MediaType.parse("text/plain; charset=utf-8"), - MediaType.parse("text/plain").withCharset(UTF_8)); - assertEquals(MediaType.parse("text/plain; charset=utf-8"), - MediaType.parse("text/plain; charset=utf-16").withCharset(UTF_8)); - } - - public void testHasWildcard() { - assertFalse(PLAIN_TEXT_UTF_8.hasWildcard()); - assertFalse(JPEG.hasWildcard()); - assertTrue(ANY_TYPE.hasWildcard()); - assertTrue(ANY_APPLICATION_TYPE.hasWildcard()); - assertTrue(ANY_AUDIO_TYPE.hasWildcard()); - assertTrue(ANY_IMAGE_TYPE.hasWildcard()); - assertTrue(ANY_TEXT_TYPE.hasWildcard()); - assertTrue(ANY_VIDEO_TYPE.hasWildcard()); - } - - public void testIs() { - assertTrue(PLAIN_TEXT_UTF_8.is(ANY_TYPE)); - assertTrue(JPEG.is(ANY_TYPE)); - assertTrue(ANY_TEXT_TYPE.is(ANY_TYPE)); - assertTrue(PLAIN_TEXT_UTF_8.is(ANY_TEXT_TYPE)); - assertTrue(PLAIN_TEXT_UTF_8.withoutParameters().is(ANY_TEXT_TYPE)); - assertFalse(JPEG.is(ANY_TEXT_TYPE)); - assertTrue(PLAIN_TEXT_UTF_8.is(PLAIN_TEXT_UTF_8)); - assertTrue(PLAIN_TEXT_UTF_8.is(PLAIN_TEXT_UTF_8.withoutParameters())); - assertFalse(PLAIN_TEXT_UTF_8.withoutParameters().is(PLAIN_TEXT_UTF_8)); - assertFalse(PLAIN_TEXT_UTF_8.is(HTML_UTF_8)); - assertFalse(PLAIN_TEXT_UTF_8.withParameter("charset", "UTF-16").is(PLAIN_TEXT_UTF_8)); - assertFalse(PLAIN_TEXT_UTF_8.is(PLAIN_TEXT_UTF_8.withParameter("charset", "UTF-16"))); - } - - public void testParse_empty() { - try { - MediaType.parse(""); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testParse_badInput() { - try { - MediaType.parse("/"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("te<t/plain"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/pl@in"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain;"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; "); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a="); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=@"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=\"@"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=1;"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=1; "); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=1; b"); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=1; b="); - fail(); - } catch (IllegalArgumentException expected) {} - try { - MediaType.parse("text/plain; a=\u2025"); - fail(); - } catch (IllegalArgumentException expected) {} - } - - public void testGetCharset() { - assertEquals(Optional.absent(), MediaType.parse("text/plain").charset()); - assertEquals(Optional.of(UTF_8), - MediaType.parse("text/plain; charset=utf-8").charset()); - } - - @GwtIncompatible("Non-UTF-8 Charset") public void testGetCharset_utf16() { - assertEquals(Optional.of(UTF_16), - MediaType.parse("text/plain; charset=utf-16").charset()); - } - - public void testGetCharset_tooMany() { - MediaType mediaType = MediaType.parse("text/plain; charset=utf-8; charset=utf-16"); - try { - mediaType.charset(); - fail(); - } catch (IllegalStateException expected) {} - } - - public void testGetCharset_illegalCharset() { - MediaType mediaType = MediaType.parse( - "text/plain; charset=\"!@#$%^&*()\""); - try { - mediaType.charset(); - fail(); - } catch (IllegalCharsetNameException expected) {} - } - - public void testGetCharset_unsupportedCharset() { - MediaType mediaType = MediaType.parse( - "text/plain; charset=utf-wtf"); - try { - mediaType.charset(); - fail(); - } catch (UnsupportedCharsetException expected) {} - } - - public void testEquals() { - new EqualsTester() - .addEqualityGroup(MediaType.create("text", "plain"), - MediaType.create("TEXT", "PLAIN"), - MediaType.parse("text/plain"), - MediaType.parse("TEXT/PLAIN"), - MediaType.create("text", "plain").withParameter("a", "1").withoutParameters()) - .addEqualityGroup( - MediaType.create("text", "plain").withCharset(UTF_8), - MediaType.create("text", "plain").withParameter("CHARSET", "UTF-8"), - MediaType.create("text", "plain").withParameters( - ImmutableMultimap.of("charset", "utf-8")), - MediaType.parse("text/plain;charset=utf-8"), - MediaType.parse("text/plain; charset=utf-8"), - MediaType.parse("text/plain; charset=utf-8"), - MediaType.parse("text/plain; \tcharset=utf-8"), - MediaType.parse("text/plain; \r\n\tcharset=utf-8"), - MediaType.parse("text/plain; CHARSET=utf-8"), - MediaType.parse("text/plain; charset=\"utf-8\""), - MediaType.parse("text/plain; charset=\"\\u\\tf-\\8\""), - MediaType.parse("text/plain; charset=UTF-8")) - .addEqualityGroup(MediaType.parse("text/plain; charset=utf-8; charset=utf-8")) - .addEqualityGroup(MediaType.create("text", "plain").withParameter("a", "value"), - MediaType.create("text", "plain").withParameter("A", "value")) - .addEqualityGroup(MediaType.create("text", "plain").withParameter("a", "VALUE"), - MediaType.create("text", "plain").withParameter("A", "VALUE")) - .addEqualityGroup( - MediaType.create("text", "plain") - .withParameters(ImmutableListMultimap.of("a", "1", "a", "2")), - MediaType.create("text", "plain") - .withParameters(ImmutableListMultimap.of("a", "2", "a", "1"))) - .addEqualityGroup(MediaType.create("text", "csv")) - .addEqualityGroup(MediaType.create("application", "atom+xml")) - .testEquals(); - } - - @GwtIncompatible("Non-UTF-8 Charset") public void testEquals_nonUtf8Charsets() { - new EqualsTester() - .addEqualityGroup(MediaType.create("text", "plain")) - .addEqualityGroup(MediaType.create("text", "plain").withCharset(UTF_8)) - .addEqualityGroup(MediaType.create("text", "plain").withCharset(UTF_16)) - .testEquals(); - } - - @GwtIncompatible("com.google.common.testing.NullPointerTester") - public void testNullPointer() { - NullPointerTester tester = new NullPointerTester(); - tester.testAllPublicConstructors(MediaType.class); - tester.testAllPublicStaticMethods(MediaType.class); - tester.testAllPublicInstanceMethods(MediaType.parse("text/plain")); - } - - public void testToString() { - assertEquals("text/plain", MediaType.create("text", "plain").toString()); - assertEquals("text/plain; something=\"cr@zy\"; something-else=\"crazy with spaces\"", - MediaType.create("text", "plain") - .withParameter("something", "cr@zy") - .withParameter("something-else", "crazy with spaces") - .toString()); - } -} |