1 package org.robolectric.shadows; 2 3 import android.net.wifi.WifiConfiguration; 4 import android.os.Build; 5 import java.util.BitSet; 6 import org.robolectric.annotation.Implementation; 7 import org.robolectric.annotation.Implements; 8 import org.robolectric.annotation.RealObject; 9 10 @Implements(WifiConfiguration.class) 11 public class ShadowWifiConfiguration { 12 @RealObject private WifiConfiguration realObject; 13 14 @Implementation 15 public void __constructor__() { 16 realObject.networkId = -1; 17 realObject.SSID = null; 18 realObject.BSSID = null; 19 realObject.priority = 0; 20 realObject.hiddenSSID = false; 21 realObject.allowedKeyManagement = new BitSet(); 22 realObject.allowedProtocols = new BitSet(); 23 realObject.allowedAuthAlgorithms = new BitSet(); 24 realObject.allowedPairwiseCiphers = new BitSet(); 25 realObject.allowedGroupCiphers = new BitSet(); 26 realObject.wepKeys = new String[4]; 27 for (int i = 0; i < realObject.wepKeys.length; i++) 28 realObject.wepKeys[i] = null; 29 // for (EnterpriseField field : realObject.enterpriseFields) { 30 // field.setValue(null); 31 // } 32 } 33 34 public WifiConfiguration copy() { 35 WifiConfiguration config = new WifiConfiguration(); 36 config.networkId = realObject.networkId; 37 config.SSID = realObject.SSID; 38 config.BSSID = realObject.BSSID; 39 config.preSharedKey = realObject.preSharedKey; 40 config.wepTxKeyIndex = realObject.wepTxKeyIndex; 41 config.status = realObject.status; 42 config.priority = realObject.priority; 43 config.hiddenSSID = realObject.hiddenSSID; 44 config.allowedKeyManagement = (BitSet) realObject.allowedKeyManagement.clone(); 45 config.allowedProtocols = (BitSet) realObject.allowedProtocols.clone(); 46 config.allowedAuthAlgorithms = (BitSet) realObject.allowedAuthAlgorithms.clone(); 47 config.allowedPairwiseCiphers = (BitSet) realObject.allowedPairwiseCiphers.clone(); 48 config.allowedGroupCiphers = (BitSet) realObject.allowedGroupCiphers.clone(); 49 config.wepKeys = new String[4]; 50 System.arraycopy(realObject.wepKeys, 0, config.wepKeys, 0, config.wepKeys.length); 51 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 52 config.creatorName = realObject.creatorName; 53 } 54 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 55 config.creatorUid = realObject.creatorUid; 56 } 57 return config; 58 } 59 60 // WifiConfiguration's toString() method crashes. 61 @Override @Implementation 62 public String toString() { 63 return String.format("WifiConfiguration{ssid=%s}", realObject.SSID); 64 } 65 } 66