InetAddressTest.java revision 5d3f5562c167120b5ec00e509af0f0ab9308bff5
1f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes/*
2f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * Copyright (C) 2011 The Android Open Source Project
3f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes *
4f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * Licensed under the Apache License, Version 2.0 (the "License");
5f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * you may not use this file except in compliance with the License.
6f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * You may obtain a copy of the License at
7f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes *
8f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes *      http://www.apache.org/licenses/LICENSE-2.0
9f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes *
10f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * Unless required by applicable law or agreed to in writing, software
11f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
12f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * See the License for the specific language governing permissions and
14f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes * limitations under the License.
15f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes */
16f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes
17f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughespackage libcore.java.net;
18f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes
19f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughesimport java.net.InetAddress;
20f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes
21f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughespublic class InetAddressTest extends junit.framework.TestCase {
22f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes    public void test_parseNumericAddress() throws Exception {
23ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        // Regular IPv4.
24ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        assertEquals("/1.2.3.4", InetAddress.parseNumericAddress("1.2.3.4").toString());
25ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        // Regular IPv6.
26ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        assertEquals("/2001:4860:800d::68", InetAddress.parseNumericAddress("2001:4860:800d::68").toString());
27ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        // Weird IPv4 special cases.
28ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        assertEquals("/1.2.0.3", InetAddress.parseNumericAddress("1.2.3").toString());
29ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        assertEquals("/1.0.0.2", InetAddress.parseNumericAddress("1.2").toString());
30ede17863e71079d082ff8fb9d1d6f8299bea04b6Elliott Hughes        assertEquals("/0.0.0.1", InetAddress.parseNumericAddress("1").toString());
31f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes        try {
32f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes            // Almost numeric but invalid...
33f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes            InetAddress.parseNumericAddress("1.");
34f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes            fail();
35f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes        } catch (IllegalArgumentException expected) {
36f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes        }
37f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes        try {
38f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes            // Not even close to numeric...
39f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes            InetAddress.parseNumericAddress("www.google.com");
40f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes            fail();
41f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes        } catch (IllegalArgumentException expected) {
42f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes        }
4346bed6a47a20d8105f0e099d162d547a7964b4feElliott Hughes        // Strange special cases, for compatibility with InetAddress.getByName.
4446bed6a47a20d8105f0e099d162d547a7964b4feElliott Hughes        assertTrue(InetAddress.parseNumericAddress(null).isLoopbackAddress());
4546bed6a47a20d8105f0e099d162d547a7964b4feElliott Hughes        assertTrue(InetAddress.parseNumericAddress("").isLoopbackAddress());
46f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes    }
475d3f5562c167120b5ec00e509af0f0ab9308bff5Elliott Hughes
485d3f5562c167120b5ec00e509af0f0ab9308bff5Elliott Hughes    public void test_getLoopbackAddress() throws Exception {
495d3f5562c167120b5ec00e509af0f0ab9308bff5Elliott Hughes        assertTrue(InetAddress.getLoopbackAddress().isLoopbackAddress());
505d3f5562c167120b5ec00e509af0f0ab9308bff5Elliott Hughes    }
51f39b892d87e85835f021e8ad77ffdd215735604bElliott Hughes}
52