aboutsummaryrefslogtreecommitdiffstats
path: root/guava-tests/test/com/google/common/net/HostAndPortTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/net/HostAndPortTest.java')
-rw-r--r--guava-tests/test/com/google/common/net/HostAndPortTest.java232
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));
- }
-}