/* * 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.addthis.basis.net; import java.net.InetAddress; import org.junit.Ignore; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class NetUtilTest { @Ignore @Test public void testResolve() throws Exception { System.out.println(NetUtil.resolveDottedIP("addthis.com")); System.out.println(NetUtil.resolveDottedIP("209.61.188.91")); } @Test public void testBase() throws Exception { System.out.println("-----------"); testDomain("widgets.clearspring.com", "clearspring.com"); testDomain("foo.com", "foo.com"); testDomain("abc.foo.com", "foo.com"); testDomain("www.foo.com", "foo.com"); testDomain("foo.com.au", "foo.com.au"); testDomain("abc.foo.com.au", "foo.com.au"); testDomain("foo.co.uk", "foo.co.uk"); testDomain("abc.foo.co.uk", "foo.co.uk"); testDomain("abc.foo.com", "foo.com"); testDomain("www.foo.com", "foo.com"); testDomain("www.abc.foo.com", "abc.foo.com"); testDomain("12.34.56.78", "12.34.56.78"); System.out.println("-----------"); testDomain("widgets.clearspring.com.", "clearspring.com"); testDomain("foo.com.", "foo.com"); testDomain("abc.foo.com.", "foo.com"); testDomain("www.foo.com.", "foo.com"); testDomain("foo.com.au.", "foo.com.au"); testDomain("abc.foo.com.au.", "foo.com.au"); testDomain("foo.co.uk.", "foo.co.uk"); testDomain("abc.foo.co.uk.", "foo.co.uk"); testDomain("abc.foo.com.", "foo.com"); testDomain("www.foo.com.", "foo.com"); testDomain("www.abc.foo.com.", "abc.foo.com"); testDomain("12.34.56.78.", "12.34.56.78"); System.out.println("***********"); } @Ignore @Test public void testHex() throws Exception { testHexIP("addthis.com"); testHexIP("google.com"); } private static void testDomain(String host, String domain) { String res = NetUtil.getBaseDomain(host); boolean ok = res.equals(domain); assertTrue(ok); System.out.println((ok ? "OK" : "FAIL") + " >> " + host + " -> " + res); } private static void testHexIP(String host) throws Exception { byte hex[] = NetUtil.getInetAddressAsHex(InetAddress.getByName(host)); String hs = new String(hex, "UTF-8"); System.out.println(host + " -> " + hs); InetAddress ia = NetUtil.getInetAddressFromHex(hs); System.out.println(hs + " -> " + ia); } @Test public void testParseHost() { // host:port NetUtil.Host host = NetUtil.parseHost("host:80"); assertEquals("host", host.name); assertEquals(80, host.port); // host host = NetUtil.parseHost("host"); assertEquals("host", host.name); assertEquals(0, host.port); // host, default port host = NetUtil.parseHost("host", 80); assertEquals("host", host.name); assertEquals(80, host.port); // host:port, default port host = NetUtil.parseHost("host:80", 8000); assertEquals("host", host.name); assertEquals(80, host.port); // host: host = NetUtil.parseHost("host:"); assertEquals("host", host.name); assertEquals(0, host.port); // :port host = NetUtil.parseHost(":80"); assertEquals("80", host.name); assertEquals(0, host.port); } @Test(expected = NumberFormatException.class) public void testParseHostInvalidPort() { NetUtil.parseHost("host:port"); } @Test public void ipToLongTest() { String ip = "207.97.226.235"; assertEquals(NetUtil.ipToLong(ip), 3479298795L); } }