1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* Licensed to the Apache Software Foundation (ASF) under one or more
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership.
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License.  You may obtain a copy of the License at
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage org.apache.harmony.luni.tests.java.net;
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Projectimport dalvik.annotation.KnownFailure;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.Serializable;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.InetAddress;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.InetSocketAddress;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.SocketAddress;
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.net.UnknownHostException;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.security.Permission;
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport junit.framework.TestCase;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.apache.harmony.testframework.serialization.SerializationTest;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.apache.harmony.testframework.serialization.SerializationTest.SerializableAssert;
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(InetSocketAddress.class)
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class InetSocketAddressTest extends TestCase {
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.net.InetSocketAddress#InetSocketAddress(String, int)
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets({
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "InetSocketAddress",
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {java.lang.String.class, int.class}
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            clazz = SocketAddress.class,
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "SocketAddress",
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_lang_StringI() throws Exception {
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // regression test for Harmony-1042
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress address = new InetSocketAddress("127.0.0.1", 0);
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(address.getHostName());
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new InetSocketAddress("127.0.0.1", -1);
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalArgumentException was not thrown.");
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalArgumentException iae) {
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new InetSocketAddress("127.0.0.1", 65536);
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalArgumentException was not thrown.");
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalArgumentException iae) {
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        class MockSecurityManager extends SecurityManager {
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            public void checkPermission(Permission permission) {
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            public void checkConnect(String host, int port) {
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                if(host.equals("google.com")) {
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    throw new SecurityException();
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                }
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        SecurityManager oldman = System.getSecurityManager();
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        System.setSecurityManager(new MockSecurityManager());
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            boolean exception = false;
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new InetSocketAddress("google.com", 80);
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("SecurityException was not thrown.");
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (SecurityException ex) {
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                //expected
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (Exception ex) {
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("getByName threw wrong exception : " + ex.getMessage());
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } finally {
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            System.setSecurityManager(oldman);
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets({
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "InetSocketAddress",
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {java.net.InetAddress.class, int.class}
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "getHostName",
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            level = TestLevel.COMPLETE,
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            notes = "",
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            method = "getPort",
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            args = {}
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                level = TestLevel.COMPLETE,
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                notes = "",
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                clazz = SocketAddress.class,
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                method = "SocketAddress",
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                args = {}
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLInetAddressI() {
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String validIPAddresses[] = { "::1.2.3.4", "::", "::", "1::0", "1::",
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "::1", "0",
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF",
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.255",
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "0:0:0:0:0:0:0:0", "0:0:0:0:0:0:0.0.0.0",
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "127.0.0.1", "localhost", "1.1", "42.42.42.42", "0.0.0.0"};
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String results [] = { "0:0:0:0:0:0:102:304", "0:0:0:0:0:0:0:0",
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "0:0:0:0:0:0:0:0", "1:0:0:0:0:0:0:0", "1:0:0:0:0:0:0:0",
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "0:0:0:0:0:0:0:1", "0.0.0.0",
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "0:0:0:0:0:0:0:0", "0:0:0:0:0:0:0:0",
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "localhost", "localhost", "1.0.0.1", "42.42.42.42", "0.0.0.0"};
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for(int i = 0; i < validIPAddresses.length; i++) {
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetAddress ia = InetAddress.getByName(validIPAddresses[i]);
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetSocketAddress isa = new InetSocketAddress(ia, 80);
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertEquals(80,isa.getPort());
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                //assertEquals(results[i], isa.getHostName());
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch(UnknownHostException uhe) {
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("UnknownHostException was thrown for: " +
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        validIPAddresses[i]);
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InetSocketAddress isa = new InetSocketAddress((InetAddress)null, 80);
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("0.0.0.0", isa.getHostName());
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(Exception e) {
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Unexpected exception was thrown.");
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InetAddress isa = InetAddress.getByName("localhost");
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new InetSocketAddress(isa, 65536);
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalArgumentException was not thrown.");
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalArgumentException iae) {
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnknownHostException e) {
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("UnknownHostException was thrown.");
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InetAddress isa = InetAddress.getByName("localhost");
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new InetSocketAddress(isa, -1);
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalArgumentException was not thrown.");
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalArgumentException iae) {
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnknownHostException e) {
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("UnknownHostException was thrown.");
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargets ({
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                level = TestLevel.COMPLETE,
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                notes = "",
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                method = "InetSocketAddress",
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                args = {int.class}
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ),
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @TestTargetNew(
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                level = TestLevel.COMPLETE,
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                notes = "",
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                clazz = SocketAddress.class,
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                method = "SocketAddress",
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                args = {}
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        )
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    })
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorI() {
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa = new  InetSocketAddress(65535);
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("0.0.0.0", isa.getHostName());
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(65535, isa.getPort());
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new  InetSocketAddress(-1);
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalArgumentException was not thrown.");
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalArgumentException  iae) {
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            new  InetSocketAddress(65536);
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalArgumentException was not thrown.");
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch(IllegalArgumentException  iae) {
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            //expected
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.net.InetSocketAddress#createUnresolved(String, int)
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "This is the complete subset of tests for createUnresolved method.",
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "createUnresolved",
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, int.class}
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_createUnresolvedLjava_lang_StringI() {
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        HostPortPair[] legalHostPortPairs = { new HostPortPair("127.0.0.1", 1234),
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new HostPortPair("192.168.0.1", 10000), new HostPortPair("127.0.0", 0),
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new HostPortPair("127.0.0", 65535),
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new HostPortPair("strange host", 65535) };
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < legalHostPortPairs.length; i++) {
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InetSocketAddress isa = InetSocketAddress.createUnresolved(
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                    legalHostPortPairs[i].host, legalHostPortPairs[i].port);
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertTrue(isa.isUnresolved());
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertNull(isa.getAddress());
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals(isa.getHostName(), legalHostPortPairs[i].host);
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals(isa.getPort(), legalHostPortPairs[i].port);
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.net.InetSocketAddress#createUnresolved(String, int)
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.PARTIAL_COMPLETE,
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "This is the complete subset of tests for createUnresolved method.",
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "createUnresolved",
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, int.class}
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_createUnresolvedLjava_lang_StringI_IllegalArgumentException() {
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        HostPortPair[] illegalHostPortPairs = { new HostPortPair(null, 1),
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new HostPortPair("host", -1), new HostPortPair("host", 65536) };
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for (int i = 0; i < illegalHostPortPairs.length; i++) {
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetSocketAddress.createUnresolved(
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        illegalHostPortPairs[i].host,
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        illegalHostPortPairs[i].port);
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("should throw IllegalArgumentException, host = "
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        + illegalHostPortPairs[i].host + ",port = "
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        + illegalHostPortPairs[i].port);
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch (IllegalArgumentException e) {
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                // expected
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /*
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * inner class for createUnresolved test convenience.
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    class HostPortPair {
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String host;
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int port;
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public HostPortPair(String host, int port) {
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            this.host = host;
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            this.port = port;
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    };
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    // comparator for InetSocketAddress objects
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private static final SerializableAssert COMPARATOR = new SerializableAssert() {
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public void assertDeserialized(Serializable initial,
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                Serializable deserialized) {
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InetSocketAddress init = (InetSocketAddress) initial;
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            InetSocketAddress desr = (InetSocketAddress) deserialized;
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("HostName", init.getHostName(), desr.getHostName());
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("Port", init.getPort(), desr.getPort());
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            assertEquals("Address", init.getAddress(), desr.getAddress());
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    };
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests serialization/deserialization compatibility.
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Checks serialization",
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "!SerializationSelf",
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void testSerializationSelf() throws Exception {
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Object[] testCases = {
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetSocketAddress.createUnresolved("badhost", 1000), // unresolved
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new InetSocketAddress("Localhost", 1000) };
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        SerializationTest.verifySelf(testCases, COMPARATOR);
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests serialization/deserialization compatibility with RI.
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Checks serialization",
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "!SerializationGolden",
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
327a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project    public void testSerializationCompatibility() throws Exception {
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        Object[] testCases = {
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetSocketAddress.createUnresolved("badhost", 1000), // unresolved
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new InetSocketAddress("Localhost", 1000) };
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        SerializationTest.verifyGolden(this, testCases, COMPARATOR);
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "equals",
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.Object.class}
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_equals() {
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa1 = new InetSocketAddress(1);
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa2 = new InetSocketAddress(2);
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse(isa1.equals(isa2));
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa3 = new InetSocketAddress(1);
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(isa1.equals(isa3));
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        isa1 = new InetSocketAddress("localhost", 80);
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        isa2 = new InetSocketAddress("127.0.0.1", 80);
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(isa1.equals(isa2));
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "getAddress",
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_getAddress() {
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String validIPAddresses[] = { "::1.2.3.4", "::", "::", "1::0", "1::",
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "::1", "0",
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF",
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.255",
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "0:0:0:0:0:0:0:0", "0:0:0:0:0:0:0.0.0.0",
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                "127.0.0.1", "localhost", "1.1", "42.42.42.42", "0.0.0.0"};
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        for(int i = 0; i < validIPAddresses.length; i++) {
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            try {
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetAddress ia = InetAddress.getByName(validIPAddresses[i]);
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                InetSocketAddress isa = new InetSocketAddress(ia, 0);
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                assertEquals(ia, isa.getAddress());
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            } catch(UnknownHostException uhe) {
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                fail("UnknownHostException was thrown for: " +
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                        validIPAddresses[i]);
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa = new InetSocketAddress((InetAddress) null, 0);
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(isa.getAddress());
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "hashCode",
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_hashCode() {
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa1 = new InetSocketAddress("localhost", 8080);
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa2 = new InetSocketAddress("127.0.0.1", 8080);
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(isa1.hashCode() == isa2.hashCode());
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa3 = new InetSocketAddress("0.0.0.0", 8080);
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse(isa1.hashCode() == isa3.hashCode());
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "isUnresolved",
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_isUnresolved() {
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa1 = new InetSocketAddress("localhost", 80);
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse(isa1.isUnresolved());
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress sockAddr = new InetSocketAddress("unknown.host", 1000);
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue(sockAddr.isUnresolved());
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "toString",
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_toString() {
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        InetSocketAddress isa = new InetSocketAddress("localhost", 80);
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(isa.toString());
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
423