1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @author Boris V. Kuznetsov 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project* @version $Revision$ 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage tests.api.javax.net; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.InetAddress; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.ServerSocket; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.Socket; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.SocketException; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.net.UnknownHostException; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport javax.net.SocketFactory; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class SocketFactoryTest extends TestCase { 37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 38514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes public void test_Constructor() throws Exception { 39514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes new MySocketFactory(); 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 41f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 42514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes public final void test_createSocket() throws Exception { 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SocketFactory sf = SocketFactory.getDefault(); 44f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 45514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes Socket s = sf.createSocket(); 46514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertNotNull(s); 47514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertEquals(-1, s.getLocalPort()); 48514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertEquals(0, s.getPort()); 49f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MySocketFactory msf = new MySocketFactory(); 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project msf.createSocket(); 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("No expected SocketException"); 54514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (SocketException expected) { 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 57f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 58514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes public final void test_createSocket_StringI() throws Exception { 591cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob SocketFactory sf = SocketFactory.getDefault(); 60514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes int sport = new ServerSocket(0).getLocalPort(); 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int[] invalidPorts = {Integer.MIN_VALUE, -1, 65536, Integer.MAX_VALUE}; 62f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 63514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes Socket s = sf.createSocket(InetAddress.getLocalHost().getHostName(), sport); 64514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertNotNull(s); 65514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertTrue("Failed to create socket", s.getPort() == sport); 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 68514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket("bla-bla", sport); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnknownHostException wasn't thrown"); 70514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (UnknownHostException expected) { 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidPorts.length; i++) { 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 75514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost().getHostName(), invalidPorts[i]); 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown for " + invalidPorts[i]); 77514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IllegalArgumentException expected) { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 82514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost().getHostName(), s.getLocalPort()); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown"); 84514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 86f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SocketFactory f = SocketFactory.getDefault(); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 89514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes f.createSocket(InetAddress.getLocalHost().getHostName(), 8082); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown ..."); 91514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 95514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes public final void test_createSocket_InetAddressI() throws Exception { 961cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob SocketFactory sf = SocketFactory.getDefault(); 97514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes int sport = new ServerSocket(0).getLocalPort(); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int[] invalidPorts = {Integer.MIN_VALUE, -1, 65536, Integer.MAX_VALUE}; 99f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 100514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes Socket s = sf.createSocket(InetAddress.getLocalHost(), sport); 101514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertNotNull(s); 102514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertTrue("Failed to create socket", s.getPort() == sport); 103f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidPorts.length; i++) { 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 106514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost(), invalidPorts[i]); 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown for " + invalidPorts[i]); 108514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IllegalArgumentException expected) { 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 113514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost(), s.getLocalPort()); 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown"); 115514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 117f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SocketFactory f = SocketFactory.getDefault(); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 120514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes f.createSocket(InetAddress.getLocalHost(), 8081); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown ..."); 122514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 123f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 126514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes public final void test_createSocket_InetAddressIInetAddressI() throws Exception { 1271cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob SocketFactory sf = SocketFactory.getDefault(); 128514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes int sport = new ServerSocket(0).getLocalPort(); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int[] invalidPorts = {Integer.MIN_VALUE, -1, 65536, Integer.MAX_VALUE}; 130f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 131514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes Socket s = sf.createSocket(InetAddress.getLocalHost(), sport, 132514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), 0); 133514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertNotNull(s); 134514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertTrue("1: Failed to create socket", s.getPort() == sport); 135514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes int portNumber = s.getLocalPort(); 136f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidPorts.length; i++) { 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 139514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost(), invalidPorts[i], 140514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), portNumber); 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown for " + invalidPorts[i]); 142514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IllegalArgumentException expected) { 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 144f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 146514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost(), sport, 147514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), invalidPorts[i]); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown for " + invalidPorts[i]); 149514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IllegalArgumentException expected) { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 154514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost(), sport, 155514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), portNumber); 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown"); 157514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SocketFactory f = SocketFactory.getDefault(); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 162514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes f.createSocket(InetAddress.getLocalHost(), 8081, InetAddress.getLocalHost(), 8082); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown ..."); 164514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 165f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 167f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 169229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.SocketFactory#createSocket(String host, int port, 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * InetAddress localHost, int localPort) 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 172514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes public final void test_createSocket_05() throws Exception { 1731cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob SocketFactory sf = SocketFactory.getDefault(); 174514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes int sport = new ServerSocket(0).getLocalPort(); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int[] invalidPorts = {Integer.MIN_VALUE, -1, 65536, Integer.MAX_VALUE}; 176f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 177514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes Socket s = sf.createSocket(InetAddress.getLocalHost().getHostName(), sport, 178514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), 0); 179514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertNotNull(s); 180514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes assertTrue("1: Failed to create socket", s.getPort() == sport); 181f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 183514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket("bla-bla", sport, InetAddress.getLocalHost(), 0); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnknownHostException wasn't thrown"); 185514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (UnknownHostException expected) { 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 187f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < invalidPorts.length; i++) { 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 190514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost().getHostName(), invalidPorts[i], 191514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), 0); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown for " + invalidPorts[i]); 193514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IllegalArgumentException expected) { 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 196514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost().getHostName(), sport, 197514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes InetAddress.getLocalHost(), invalidPorts[i]); 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException wasn't thrown for " + invalidPorts[i]); 199514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IllegalArgumentException expected) { 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 204514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes sf.createSocket(InetAddress.getLocalHost().getHostName(), 8081, InetAddress.getLocalHost(), 8082); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IOException wasn't thrown ..."); 206514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes } catch (IOException expected) { 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 209f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 211229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * javax.net.SocketFactory#getDefault() 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public final void test_getDefault() { 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project SocketFactory sf = SocketFactory.getDefault(); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Socket s; 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 217514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes s = sf.createSocket(InetAddress.getLocalHost().getHostName(), 8082); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.close(); 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 222514d3165e7a487224c1a20f1a55e8011eaf3e037Elliott Hughes s = sf.createSocket(InetAddress.getLocalHost().getHostName(), 8081, InetAddress.getLocalHost(), 8082); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.close(); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s = sf.createSocket(InetAddress.getLocalHost(), 8081); 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.close(); 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 230f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s = sf.createSocket(InetAddress.getLocalHost(), 8081, InetAddress.getLocalHost(), 8082); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project s.close(); 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 235f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectclass MySocketFactory extends SocketFactory { 240f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public MySocketFactory() { 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 244f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2451cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob @Override 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Socket createSocket(String host, int port) throws IOException, UnknownHostException { 2471cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob return null; 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 249f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2501cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob @Override 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Socket createSocket(String host, int port, InetAddress localHost, int localPort) 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws IOException, UnknownHostException { 2531cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob return null; 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 255f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2561cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob @Override 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Socket createSocket(InetAddress host, int port) throws IOException { 2581cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob return null; 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 260f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 2611cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob @Override 262f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public Socket createSocket(InetAddress address, int port, 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project InetAddress localAddress, int localPort) throws IOException { 2641cd5a5cfeccb2745d54a1c49fc39e4e3537a9adeUrs Grob return null; 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 268