diff options
Diffstat (limited to 'guava-tests/test/com/google/common/net/HostAndPortTest.java')
-rw-r--r-- | guava-tests/test/com/google/common/net/HostAndPortTest.java | 232 |
1 files changed, 0 insertions, 232 deletions
diff --git a/guava-tests/test/com/google/common/net/HostAndPortTest.java b/guava-tests/test/com/google/common/net/HostAndPortTest.java deleted file mode 100644 index 476a63b..0000000 --- a/guava-tests/test/com/google/common/net/HostAndPortTest.java +++ /dev/null @@ -1,232 +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 com.google.common.testing.SerializableTester; - -import junit.framework.TestCase; - -/** - * Tests for {@link HostAndPort} - * - * @author Paul Marks - */ -public class HostAndPortTest extends TestCase { - - public void testFromStringWellFormed() { - // Well-formed inputs. - checkFromStringCase("google.com", 80, "google.com", 80, false); - checkFromStringCase("google.com", 80, "google.com", 80, false); - checkFromStringCase("192.0.2.1", 82, "192.0.2.1", 82, false); - checkFromStringCase("[2001::1]", 84, "2001::1", 84, false); - checkFromStringCase("2001::3", 86, "2001::3", 86, false); - checkFromStringCase("host:", 80, "host", 80, false); - } - - public void testFromStringBadDefaultPort() { - // Well-formed strings with bad default ports. - checkFromStringCase("gmail.com:81", -1, "gmail.com", 81, true); - checkFromStringCase("192.0.2.2:83", -1, "192.0.2.2", 83, true); - checkFromStringCase("[2001::2]:85", -1, "2001::2", 85, true); - checkFromStringCase("goo.gl:65535", 65536, "goo.gl", 65535, true); - // No port, bad default. - checkFromStringCase("google.com", -1, "google.com", -1, false); - checkFromStringCase("192.0.2.1", 65536, "192.0.2.1", -1, false); - checkFromStringCase("[2001::1]", -1, "2001::1", -1, false); - checkFromStringCase("2001::3", 65536, "2001::3", -1, false); - } - - public void testFromStringUnusedDefaultPort() { - // Default port, but unused. - checkFromStringCase("gmail.com:81", 77, "gmail.com", 81, true); - checkFromStringCase("192.0.2.2:83", 77, "192.0.2.2", 83, true); - checkFromStringCase("[2001::2]:85", 77, "2001::2", 85, true); - } - - public void testFromStringBadPort() { - // Out-of-range ports. - checkFromStringCase("google.com:65536", 1, null, 99, false); - checkFromStringCase("google.com:9999999999", 1, null, 99, false); - // Invalid port parts. - checkFromStringCase("google.com:port", 1, null, 99, false); - checkFromStringCase("google.com:-25", 1, null, 99, false); - checkFromStringCase("google.com:+25", 1, null, 99, false); - checkFromStringCase("google.com:25 ", 1, null, 99, false); - checkFromStringCase("google.com:25\t", 1, null, 99, false); - checkFromStringCase("google.com:0x25 ", 1, null, 99, false); - } - - public void testFromStringUnparseableNonsense() { - // Some nonsense that causes parse failures. - checkFromStringCase("[goo.gl]", 1, null, 99, false); - checkFromStringCase("[goo.gl]:80", 1, null, 99, false); - checkFromStringCase("[", 1, null, 99, false); - checkFromStringCase("[]:", 1, null, 99, false); - checkFromStringCase("[]:80", 1, null, 99, false); - checkFromStringCase("[]bad", 1, null, 99, false); - } - - public void testFromStringParseableNonsense() { - // Examples of nonsense that gets through. - checkFromStringCase("[[:]]", 86, "[:]", 86, false); - checkFromStringCase("x:y:z", 87, "x:y:z", 87, false); - checkFromStringCase("", 88, "", 88, false); - checkFromStringCase(":", 99, "", 99, false); - checkFromStringCase(":123", -1, "", 123, true); - checkFromStringCase("\nOMG\t", 89, "\nOMG\t", 89, false); - } - - private static void checkFromStringCase( - String hpString, - int defaultPort, - String expectHost, - int expectPort, - boolean expectHasExplicitPort) { - HostAndPort hp; - try { - hp = HostAndPort.fromString(hpString); - } catch (IllegalArgumentException e) { - // Make sure we expected this. - assertNull(expectHost); - return; - } - assertNotNull(expectHost); - - // Apply withDefaultPort(), yielding hp2. - final boolean badDefaultPort = (defaultPort < 0 || defaultPort > 65535); - HostAndPort hp2 = null; - try { - hp2 = hp.withDefaultPort(defaultPort); - assertFalse(badDefaultPort); - } catch (IllegalArgumentException e) { - assertTrue(badDefaultPort); - } - - // Check the pre-withDefaultPort() instance. - if (expectHasExplicitPort) { - assertTrue(hp.hasPort()); - assertEquals(expectPort, hp.getPort()); - } else { - assertFalse(hp.hasPort()); - try { - hp.getPort(); - fail("Expected IllegalStateException"); - } catch (IllegalStateException expected) { - } - } - assertEquals(expectHost, hp.getHostText()); - - // Check the post-withDefaultPort() instance (if any). - if (!badDefaultPort) { - try { - int port = hp2.getPort(); - assertTrue(expectPort != -1); - assertEquals(expectPort, port); - } catch (IllegalStateException e) { - // Make sure we expected this to fail. - assertEquals(-1, expectPort); - } - assertEquals(expectHost, hp2.getHostText()); - } - } - - public void testFromParts() { - HostAndPort hp = HostAndPort.fromParts("gmail.com", 81); - assertEquals("gmail.com", hp.getHostText()); - assertTrue(hp.hasPort()); - assertEquals(81, hp.getPort()); - - try { - HostAndPort.fromParts("gmail.com:80", 81); - fail("Expected IllegalArgumentException"); - } catch (IllegalArgumentException expected) { - } - - try { - HostAndPort.fromParts("gmail.com", -1); - fail("Expected IllegalArgumentException"); - } catch (IllegalArgumentException expected) { - } - } - - public void testGetPortOrDefault() { - assertEquals(80, HostAndPort.fromString("host:80").getPortOrDefault(123)); - assertEquals(123, HostAndPort.fromString("host").getPortOrDefault(123)); - } - - public void testHashCodeAndEquals() { - HostAndPort hp1 = HostAndPort.fromString("foo::123"); - HostAndPort hp2 = HostAndPort.fromString("foo::123"); - HostAndPort hp3 = HostAndPort.fromString("[foo::123]"); - HostAndPort hp4 = HostAndPort.fromParts("[foo::123]", 80); - HostAndPort hp5 = HostAndPort.fromString("[foo::123]:80"); - assertEquals(hp1.hashCode(), hp1.hashCode()); - assertEquals(hp1.hashCode(), hp2.hashCode()); - assertFalse(hp1.hashCode() == hp3.hashCode()); - assertFalse(hp3.hashCode() == hp4.hashCode()); - assertEquals(hp4.hashCode(), hp5.hashCode()); - - assertTrue(hp1.equals(hp1)); - assertTrue(hp1.equals(hp2)); - assertFalse(hp1.equals(hp3)); - assertFalse(hp3.equals(hp4)); - assertTrue(hp4.equals(hp5)); - assertFalse(hp1.equals(null)); - } - - public void testRequireBracketsForIPv6() { - // Bracketed IPv6 works fine. - assertEquals("::1", HostAndPort.fromString("[::1]").requireBracketsForIPv6().getHostText()); - assertEquals("::1", HostAndPort.fromString("[::1]:80").requireBracketsForIPv6().getHostText()); - // Non-bracketed non-IPv6 works fine. - assertEquals("x", HostAndPort.fromString("x").requireBracketsForIPv6().getHostText()); - assertEquals("x", HostAndPort.fromString("x:80").requireBracketsForIPv6().getHostText()); - - // Non-bracketed IPv6 fails. - try { - HostAndPort.fromString("::1").requireBracketsForIPv6(); - fail("Expected IllegalArgumentException"); - } catch (IllegalArgumentException expected) { - } - } - - public void testToString() { - // With ports. - assertEquals("foo:101", "" + HostAndPort.fromString("foo:101")); - assertEquals(":102", HostAndPort.fromString(":102").toString()); - assertEquals("[1::2]:103", HostAndPort.fromParts("1::2", 103).toString()); - assertEquals("[::1]:104", HostAndPort.fromString("[::1]:104").toString()); - - // Without ports. - assertEquals("foo", "" + HostAndPort.fromString("foo")); - assertEquals("", HostAndPort.fromString("").toString()); - assertEquals("[1::2]", HostAndPort.fromString("1::2").toString()); - assertEquals("[::1]", HostAndPort.fromString("[::1]").toString()); - - // Garbage in, garbage out. - assertEquals("[::]]:107", HostAndPort.fromParts("::]", 107).toString()); - assertEquals("[[:]]:108", HostAndPort.fromString("[[:]]:108").toString()); - } - - public void testSerialization() { - SerializableTester.reserializeAndAssert(HostAndPort.fromParts("host", 80)); - SerializableTester.reserializeAndAssert(HostAndPort.fromString("host")); - SerializableTester.reserializeAndAssert(HostAndPort.fromString("host:80")); - SerializableTester.reserializeAndAssert(HostAndPort.fromString("[::1]:104")); - SerializableTester.reserializeAndAssert(HostAndPort.fromParts("1::2", 103)); - } -} |