1package android.net; 2 3import static org.junit.Assert.assertEquals; 4import static org.junit.Assert.assertNull; 5import static org.mockito.Mockito.when; 6 7import android.net.wifi.ScanResult; 8import android.net.wifi.WifiInfo; 9import android.net.wifi.WifiSsid; 10import android.support.test.runner.AndroidJUnit4; 11 12import org.junit.Before; 13import org.junit.Test; 14import org.junit.runner.RunWith; 15import org.mockito.Mock; 16import org.mockito.MockitoAnnotations; 17 18@RunWith(AndroidJUnit4.class) 19public class NetworkKeyTest { 20 private static final String VALID_SSID = "\"ssid1\""; 21 private static final String VALID_UNQUOTED_SSID = "ssid1"; 22 private static final String VALID_BSSID = "00:00:00:00:00:00"; 23 private static final String INVALID_BSSID = "invalid_bssid"; 24 @Mock private WifiInfo mWifiInfo; 25 26 @Before 27 public void setUp() throws Exception { 28 MockitoAnnotations.initMocks(this); 29 } 30 31 @Test 32 public void createFromWifi_nullInput() throws Exception { 33 assertNull(NetworkKey.createFromWifiInfo(null)); 34 } 35 36 @Test 37 public void createFromWifi_nullSsid() throws Exception { 38 when(mWifiInfo.getBSSID()).thenReturn(VALID_BSSID); 39 assertNull(NetworkKey.createFromWifiInfo(mWifiInfo)); 40 } 41 42 @Test 43 public void createFromWifi_emptySsid() throws Exception { 44 when(mWifiInfo.getSSID()).thenReturn(""); 45 when(mWifiInfo.getBSSID()).thenReturn(VALID_BSSID); 46 assertNull(NetworkKey.createFromWifiInfo(mWifiInfo)); 47 } 48 49 @Test 50 public void createFromWifi_noneSsid() throws Exception { 51 when(mWifiInfo.getSSID()).thenReturn(WifiSsid.NONE); 52 when(mWifiInfo.getBSSID()).thenReturn(VALID_BSSID); 53 assertNull(NetworkKey.createFromWifiInfo(mWifiInfo)); 54 } 55 56 @Test 57 public void createFromWifi_nullBssid() throws Exception { 58 when(mWifiInfo.getSSID()).thenReturn(VALID_SSID); 59 assertNull(NetworkKey.createFromWifiInfo(mWifiInfo)); 60 } 61 62 @Test 63 public void createFromWifi_emptyBssid() throws Exception { 64 when(mWifiInfo.getSSID()).thenReturn(VALID_SSID); 65 when(mWifiInfo.getBSSID()).thenReturn(""); 66 assertNull(NetworkKey.createFromWifiInfo(mWifiInfo)); 67 } 68 69 @Test 70 public void createFromWifi_invalidBssid() throws Exception { 71 when(mWifiInfo.getSSID()).thenReturn(VALID_SSID); 72 when(mWifiInfo.getBSSID()).thenReturn(INVALID_BSSID); 73 assertNull(NetworkKey.createFromWifiInfo(mWifiInfo)); 74 } 75 76 @Test 77 public void createFromWifi_validWifiInfo() throws Exception { 78 when(mWifiInfo.getSSID()).thenReturn(VALID_SSID); 79 when(mWifiInfo.getBSSID()).thenReturn(VALID_BSSID); 80 81 NetworkKey expected = new NetworkKey(new WifiKey(VALID_SSID, VALID_BSSID)); 82 final NetworkKey actual = NetworkKey.createFromWifiInfo(mWifiInfo); 83 assertEquals(expected, actual); 84 } 85 86 @Test 87 public void createFromScanResult_nullInput() { 88 assertNull(NetworkKey.createFromScanResult(null)); 89 } 90 91 @Test 92 public void createFromScanResult_nullWifiSsid() { 93 ScanResult scanResult = new ScanResult(); 94 scanResult.BSSID = VALID_BSSID; 95 96 assertNull(NetworkKey.createFromScanResult(scanResult)); 97 } 98 99 @Test 100 public void createFromScanResult_emptyWifiSsid() { 101 ScanResult scanResult = new ScanResult(); 102 scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(""); 103 scanResult.BSSID = VALID_BSSID; 104 105 assertNull(NetworkKey.createFromScanResult(scanResult)); 106 } 107 108 @Test 109 public void createFromScanResult_noneWifiSsid() { 110 ScanResult scanResult = new ScanResult(); 111 scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(WifiSsid.NONE); 112 scanResult.BSSID = VALID_BSSID; 113 114 assertNull(NetworkKey.createFromScanResult(scanResult)); 115 } 116 117 @Test 118 public void createFromScanResult_nullBssid() { 119 ScanResult scanResult = new ScanResult(); 120 scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID); 121 122 assertNull(NetworkKey.createFromScanResult(scanResult)); 123 } 124 125 @Test 126 public void createFromScanResult_emptyBssid() { 127 ScanResult scanResult = new ScanResult(); 128 scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID); 129 scanResult.BSSID = ""; 130 131 assertNull(NetworkKey.createFromScanResult(scanResult)); 132 } 133 134 @Test 135 public void createFromScanResult_invalidBssid() { 136 ScanResult scanResult = new ScanResult(); 137 scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID); 138 scanResult.BSSID = INVALID_BSSID; 139 140 assertNull(NetworkKey.createFromScanResult(scanResult)); 141 } 142 143 @Test 144 public void createFromScanResult_validWifiSsid() { 145 ScanResult scanResult = new ScanResult(); 146 scanResult.wifiSsid = WifiSsid.createFromAsciiEncoded(VALID_UNQUOTED_SSID); 147 scanResult.BSSID = VALID_BSSID; 148 149 NetworkKey expected = new NetworkKey(new WifiKey(VALID_SSID, VALID_BSSID)); 150 NetworkKey actual = NetworkKey.createFromScanResult(scanResult); 151 assertEquals(expected, actual); 152 } 153} 154