diff options
author | Roshan Pius <rpius@google.com> | 2020-01-27 11:53:11 -0800 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2020-01-28 07:55:59 -0800 |
commit | 35c8911b2c3e54273482c637f1ab121fe62b4045 (patch) | |
tree | 49a97eb1ed1adbd69cac29bad477f696ab17d448 /tests | |
parent | 4d29fca592d2960ecd44f61d3e62c2d7c3611696 (diff) |
WifiConfigStore: Use the OEM migration hook
For OEM devices upgrading to wifi mainline module, we use the OEM
migration hook to allow the OEM's to parse their XML files and return
WifiConfiguration/SoftApConfiguration object representing the user's
data on disk.
Bug: 142394776
Test: atest com.android.server.wifi
Change-Id: I6f2f9275755d6ca25328328dba1f5fb94c1ca5f3
Diffstat (limited to 'tests')
3 files changed, 77 insertions, 16 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java index 3c5cd8a88..0aa19bc80 100644 --- a/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java +++ b/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java @@ -252,13 +252,16 @@ public class NetworkListStoreDataTest extends WifiBaseTest { private NetworkListSharedStoreData mNetworkListSharedStoreData; @Mock private Context mContext; @Mock private PackageManager mPackageManager; + @Mock WifiOemConfigStoreMigrationDataHolder mWifiOemConfigStoreMigrationDataHolder; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.getNameForUid(anyInt())).thenReturn(TEST_CREATOR_NAME); - mNetworkListSharedStoreData = new NetworkListSharedStoreData(mContext); + when(mWifiOemConfigStoreMigrationDataHolder.loadUserSavedNetworks()).thenReturn(null); + mNetworkListSharedStoreData = + new NetworkListSharedStoreData(mContext, mWifiOemConfigStoreMigrationDataHolder); } /** @@ -394,7 +397,8 @@ public class NetworkListStoreDataTest extends WifiBaseTest { assertEquals(WifiConfigStore.STORE_FILE_SHARED_GENERAL, mNetworkListSharedStoreData.getStoreFileId()); assertEquals(WifiConfigStore.STORE_FILE_USER_GENERAL, - new NetworkListUserStoreData(mContext).getStoreFileId()); + new NetworkListUserStoreData(mContext, mWifiOemConfigStoreMigrationDataHolder) + .getStoreFileId()); } /** @@ -682,4 +686,19 @@ public class NetworkListStoreDataTest extends WifiBaseTest { assertFalse(retrievedNetworkList.get(0).allowedAuthAlgorithms .get(WifiConfiguration.AuthAlgorithm.OPEN)); } + + /** + * Verify that the shared configurations deserialized correctly from OEM migration hook. + */ + @Test + public void deserializeSharedConfigurationsFromOemConfigStoreMigration() throws Exception { + List<WifiConfiguration> oemUserSavedNetworks = getTestNetworksConfig(true /* shared */); + when(mWifiOemConfigStoreMigrationDataHolder.loadUserSavedNetworks()) + .thenReturn(oemUserSavedNetworks); + + // File contents are ignored. + List<WifiConfiguration> parsedNetworks = deserializeData("".getBytes()); + WifiConfigurationTestUtil.assertConfigurationsEqualForConfigStore( + oemUserSavedNetworks, parsedNetworks); + } } diff --git a/tests/wifitests/src/com/android/server/wifi/SoftApStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/SoftApStoreDataTest.java index df89eacdb..76331c76b 100644 --- a/tests/wifitests/src/com/android/server/wifi/SoftApStoreDataTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SoftApStoreDataTest.java @@ -107,12 +107,13 @@ public class SoftApStoreDataTest extends WifiBaseTest { + "</AllowedClientList>\n"; @Mock SoftApStoreData.DataSource mDataSource; + @Mock WifiOemConfigStoreMigrationDataHolder mWifiOemConfigStoreMigrationDataHolder; SoftApStoreData mSoftApStoreData; @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); - mSoftApStoreData = new SoftApStoreData(mDataSource); + mSoftApStoreData = new SoftApStoreData(mDataSource, mWifiOemConfigStoreMigrationDataHolder); TEST_BLOCKEDLIST.add(MacAddress.fromString(TEST_BLOCKED_CLIENT)); TEST_ALLOWEDLIST.add(MacAddress.fromString(TEST_ALLOWED_CLIENT)); } @@ -141,6 +142,20 @@ public class SoftApStoreDataTest extends WifiBaseTest { return outputStream.toByteArray(); } + private SoftApConfiguration createDefaultTestSoftApConfiguration() { + SoftApConfiguration.Builder softApConfigBuilder = new SoftApConfiguration.Builder(); + softApConfigBuilder.setSsid(TEST_SSID); + softApConfigBuilder.setPassphrase(TEST_PASSPHRASE, + SoftApConfiguration.SECURITY_TYPE_WPA2_PSK); + softApConfigBuilder.setBand(TEST_BAND); + softApConfigBuilder.enableClientControlByUser(TEST_CLIENT_CONTROL_BY_USER); + softApConfigBuilder.setMaxNumberOfClients(TEST_MAX_NUMBER_OF_CLIENTS); + softApConfigBuilder.setShutdownTimeoutMillis(TEST_SHUTDOWN_TIMEOUT_MILLIS); + softApConfigBuilder.setClientList(TEST_BLOCKEDLIST, TEST_ALLOWEDLIST); + return softApConfigBuilder.build(); + } + + /** * Helper function for parsing configuration data from a XML block. * @@ -187,17 +202,8 @@ public class SoftApStoreDataTest extends WifiBaseTest { */ @Test public void serializeSoftAp() throws Exception { - SoftApConfiguration.Builder softApConfigBuilder = new SoftApConfiguration.Builder(); - softApConfigBuilder.setSsid(TEST_SSID); - softApConfigBuilder.setPassphrase(TEST_PASSPHRASE, - SoftApConfiguration.SECURITY_TYPE_WPA2_PSK); - softApConfigBuilder.setBand(TEST_BAND); - softApConfigBuilder.enableClientControlByUser(TEST_CLIENT_CONTROL_BY_USER); - softApConfigBuilder.setMaxNumberOfClients(TEST_MAX_NUMBER_OF_CLIENTS); - softApConfigBuilder.setShutdownTimeoutMillis(TEST_SHUTDOWN_TIMEOUT_MILLIS); - softApConfigBuilder.setClientList(TEST_BLOCKEDLIST, TEST_ALLOWEDLIST); - - when(mDataSource.toSerialize()).thenReturn(softApConfigBuilder.build()); + SoftApConfiguration softApConfig = createDefaultTestSoftApConfiguration(); + when(mDataSource.toSerialize()).thenReturn(softApConfig); byte[] actualData = serializeData(); assertEquals(TEST_SOFTAP_CONFIG_XML_STRING_WITH_ALL_CONFIG, new String(actualData)); } @@ -381,4 +387,36 @@ public class SoftApStoreDataTest extends WifiBaseTest { assertEquals(softApConfig.getBand(), softApConfigDeserialized.getBand()); assertEquals(softApConfig.getChannel(), softApConfigDeserialized.getChannel()); } + + /** + * Verify that the store data is deserialized correctly from OEM migration hook. + * + * @throws Exception + */ + @Test + public void deserializeSoftApFromOemConfigStoreMigration() throws Exception { + SoftApConfiguration oemSoftApConfig = createDefaultTestSoftApConfiguration(); + when(mWifiOemConfigStoreMigrationDataHolder.loadUserSoftApConfiguration()) + .thenReturn(oemSoftApConfig); + + // File contents are ignored. + deserializeData("".getBytes()); + + ArgumentCaptor<SoftApConfiguration> softapConfigCaptor = + ArgumentCaptor.forClass(SoftApConfiguration.class); + verify(mDataSource).fromDeserialized(softapConfigCaptor.capture()); + SoftApConfiguration softApConfig = softapConfigCaptor.getValue(); + assertNotNull(softApConfig); + assertEquals(softApConfig.getSsid(), TEST_SSID); + assertEquals(softApConfig.getPassphrase(), TEST_PASSPHRASE); + assertEquals(softApConfig.getSecurityType(), SoftApConfiguration.SECURITY_TYPE_WPA2_PSK); + assertEquals(softApConfig.isHiddenSsid(), TEST_HIDDEN); + assertEquals(softApConfig.getBand(), TEST_BAND); + assertEquals(softApConfig.isClientControlByUserEnabled(), TEST_CLIENT_CONTROL_BY_USER); + assertEquals(softApConfig.getMaxNumberOfClients(), TEST_MAX_NUMBER_OF_CLIENTS); + assertEquals(softApConfig.getShutdownTimeoutMillis(), TEST_SHUTDOWN_TIMEOUT_MILLIS); + assertEquals(softApConfig.getBlockedClientList(), TEST_BLOCKEDLIST); + assertEquals(softApConfig.getAllowedClientList(), TEST_ALLOWEDLIST); + } + } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java index fea3eb2a4..082a42fbd 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java @@ -157,6 +157,7 @@ public class WifiConfigStoreTest extends WifiBaseTest { @Mock private Clock mClock; @Mock private WifiMetrics mWifiMetrics; @Mock private WifiConfigStoreEncryptionUtil mEncryptionUtil; + @Mock WifiOemConfigStoreMigrationDataHolder mWifiOemConfigStoreMigrationDataHolder; private MockStoreFile mSharedStore; private MockStoreFile mUserStore; private MockStoreFile mUserNetworkSuggestionsStore; @@ -184,6 +185,7 @@ public class WifiConfigStoreTest extends WifiBaseTest { .thenReturn(new EncryptedData(new byte[0], new byte[0])); when(mEncryptionUtil.decrypt(any(EncryptedData.class))) .thenReturn(new byte[0]); + when(mWifiOemConfigStoreMigrationDataHolder.loadUserSavedNetworks()).thenReturn(null); mSharedStore = new MockStoreFile(WifiConfigStore.STORE_FILE_SHARED_GENERAL); mUserStore = new MockStoreFile(WifiConfigStore.STORE_FILE_USER_GENERAL); mUserNetworkSuggestionsStore = @@ -504,7 +506,8 @@ public class WifiConfigStoreTest extends WifiBaseTest { @Test public void testReadWifiConfigStoreData() throws Exception { // Setup network list. - NetworkListStoreData networkList = new NetworkListUserStoreData(mContext); + NetworkListStoreData networkList = + new NetworkListUserStoreData(mContext, mWifiOemConfigStoreMigrationDataHolder); mWifiConfigStore.registerStoreData(networkList); WifiConfiguration openNetwork = WifiConfigurationTestUtil.createOpenNetwork(); openNetwork.creatorName = TEST_CREATOR_NAME; @@ -540,7 +543,8 @@ public class WifiConfigStoreTest extends WifiBaseTest { mWifiConfigStore.switchUserStoresAndRead(mUserStores); // Setup network list store data. - NetworkListStoreData networkList = new NetworkListUserStoreData(mContext); + NetworkListStoreData networkList = + new NetworkListUserStoreData(mContext, mWifiOemConfigStoreMigrationDataHolder); mWifiConfigStore.registerStoreData(networkList); WifiConfiguration openNetwork = WifiConfigurationTestUtil.createOpenNetwork(); openNetwork.creatorName = TEST_CREATOR_NAME; |