1 package org.robolectric.shadows; 2 3 import static com.google.common.truth.Truth.assertThat; 4 import static org.junit.Assert.assertNotNull; 5 import static org.robolectric.Shadows.shadowOf; 6 7 import android.net.wifi.WifiConfiguration; 8 import android.net.wifi.WifiEnterpriseConfig; 9 import android.os.Build; 10 import androidx.test.ext.junit.runners.AndroidJUnit4; 11 import org.junit.Test; 12 import org.junit.runner.RunWith; 13 import org.robolectric.annotation.Config; 14 15 @RunWith(AndroidJUnit4.class) 16 public class ShadowWifiConfigurationTest { 17 @Test shouldSetTheBitSetsAndWepKeyArrays()18 public void shouldSetTheBitSetsAndWepKeyArrays() { 19 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 20 assertNotNull(wifiConfiguration.allowedAuthAlgorithms); 21 } 22 23 @Test shouldCopy()24 public void shouldCopy() { 25 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 26 27 wifiConfiguration.networkId = 1; 28 wifiConfiguration.SSID = "SSID"; 29 wifiConfiguration.BSSID = "BSSID"; 30 wifiConfiguration.preSharedKey = "preSharedKey"; 31 wifiConfiguration.status = 666; 32 wifiConfiguration.wepTxKeyIndex = 777; 33 wifiConfiguration.priority = 2; 34 wifiConfiguration.hiddenSSID = true; 35 wifiConfiguration.allowedKeyManagement.set(1); 36 wifiConfiguration.allowedProtocols.set(2); 37 wifiConfiguration.allowedAuthAlgorithms.set(3); 38 wifiConfiguration.allowedPairwiseCiphers.set(4); 39 wifiConfiguration.allowedGroupCiphers.set(5); 40 wifiConfiguration.wepKeys[0] = "0"; 41 wifiConfiguration.wepKeys[1] = "1"; 42 wifiConfiguration.wepKeys[2] = "2"; 43 wifiConfiguration.wepKeys[3] = "3"; 44 45 WifiConfiguration copy = shadowOf(wifiConfiguration).copy(); 46 47 assertThat(copy.networkId).isEqualTo(1); 48 assertThat(copy.SSID).isEqualTo("SSID"); 49 assertThat(copy.BSSID).isEqualTo("BSSID"); 50 assertThat(copy.preSharedKey).isEqualTo("preSharedKey"); 51 assertThat(copy.status).isEqualTo(666); 52 assertThat(copy.wepTxKeyIndex).isEqualTo(777); 53 assertThat(copy.priority).isEqualTo(2); 54 assertThat(copy.hiddenSSID).isTrue(); 55 assertThat(copy.allowedKeyManagement.get(1)).isTrue(); 56 assertThat(copy.allowedProtocols.get(2)).isTrue(); 57 assertThat(copy.allowedAuthAlgorithms.get(3)).isTrue(); 58 assertThat(copy.allowedPairwiseCiphers.get(4)).isTrue(); 59 assertThat(copy.allowedGroupCiphers.get(5)).isTrue(); 60 assertThat(copy.wepKeys[0]).isEqualTo("0"); 61 assertThat(copy.wepKeys[1]).isEqualTo("1"); 62 assertThat(copy.wepKeys[2]).isEqualTo("2"); 63 assertThat(copy.wepKeys[3]).isEqualTo("3"); 64 } 65 66 @Test shouldCopy_sdk18()67 public void shouldCopy_sdk18() { 68 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 69 70 wifiConfiguration.networkId = 1; 71 wifiConfiguration.SSID = "SSID"; 72 73 WifiEnterpriseConfig enterpriseConfig = new WifiEnterpriseConfig(); 74 enterpriseConfig.setIdentity("fake identity"); 75 enterpriseConfig.setPassword("fake password"); 76 wifiConfiguration.enterpriseConfig = enterpriseConfig; 77 78 WifiConfiguration copy = shadowOf(wifiConfiguration).copy(); 79 assertThat(copy.networkId).isEqualTo(1); 80 assertThat(copy.SSID).isEqualTo("SSID"); 81 assertThat(copy.enterpriseConfig).isNotNull(); 82 assertThat(copy.enterpriseConfig.getIdentity()).isEqualTo("fake identity"); 83 assertThat(copy.enterpriseConfig.getPassword()).isEqualTo("fake password"); 84 } 85 86 @Config(sdk = Build.VERSION_CODES.LOLLIPOP) 87 @Test shouldCopy_sdk21()88 public void shouldCopy_sdk21() { 89 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 90 91 wifiConfiguration.networkId = 1; 92 wifiConfiguration.SSID = "SSID"; 93 wifiConfiguration.creatorUid = 888; 94 95 WifiConfiguration copy = shadowOf(wifiConfiguration).copy(); 96 97 assertThat(copy.networkId).isEqualTo(1); 98 assertThat(copy.SSID).isEqualTo("SSID"); 99 assertThat(copy.creatorUid).isEqualTo(888); 100 } 101 102 @Config(minSdk = Build.VERSION_CODES.M) 103 @Test shouldCopy_sdk23()104 public void shouldCopy_sdk23() { 105 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 106 107 wifiConfiguration.networkId = 1; 108 wifiConfiguration.SSID = "SSID"; 109 wifiConfiguration.creatorName = "creatorName"; 110 wifiConfiguration.creatorUid = 888; 111 112 WifiConfiguration copy = shadowOf(wifiConfiguration).copy(); 113 114 assertThat(copy.networkId).isEqualTo(1); 115 assertThat(copy.SSID).isEqualTo("SSID"); 116 assertThat(copy.creatorName).isEqualTo("creatorName"); 117 assertThat(copy.creatorUid).isEqualTo(888); 118 } 119 120 @SuppressWarnings("CheckReturnValue") 121 @Test toStringDoesntCrash()122 public void toStringDoesntCrash() { 123 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 124 wifiConfiguration.toString(); 125 126 wifiConfiguration.SSID = "SSID"; 127 wifiConfiguration.toString(); 128 } 129 130 @Config(minSdk = Build.VERSION_CODES.R) 131 @Test setSecurityParams_shouldWorkCorrectly()132 public void setSecurityParams_shouldWorkCorrectly() { 133 WifiConfiguration wifiConfiguration = new WifiConfiguration(); 134 wifiConfiguration.setSecurityParams(WifiConfiguration.SECURITY_TYPE_OPEN); 135 136 assertThat(shadowOf(wifiConfiguration).getSecurityTypes()) 137 .containsExactly(WifiConfiguration.SECURITY_TYPE_OPEN); 138 } 139 } 140