DeserializeData for new device without userDataStore
Even new device without userDataStore, still do the deserialize to make
the mUserDataLoaded flag to TRUE.
Bug: 167647087
Test: atest com.android.server.wifi
Merged-In: I16be0a27e2b3d7128dce64ce09c9143bd605f991
Change-Id: I16be0a27e2b3d7128dce64ce09c9143bd605f991
(cherry picked from commit 7a098b760707a5c55675e597d4bb4349e8511df5)
diff --git a/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java b/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java
index 98664d0..a9c99ae 100644
--- a/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java
+++ b/service/java/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreData.java
@@ -28,6 +28,7 @@
import org.xmlpull.v1.XmlSerializer;
import java.io.IOException;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -92,6 +93,7 @@
throws XmlPullParserException, IOException {
// Ignore empty reads.
if (in == null) {
+ mDataSource.fromDeserialized(Collections.emptyMap());
return;
}
diff --git a/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java b/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java
index ec2142d..77d5c19 100644
--- a/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/ImsiPrivacyProtectionExemptionStoreDataTest.java
@@ -17,6 +17,7 @@
package com.android.server.wifi;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -102,6 +103,17 @@
assertSerializeDeserialize(imsiPrivacyProtectionExemptionMap);
}
+ @Test
+ public void testDeserializeOnNewDeviceOrNewUser() throws Exception {
+ ArgumentCaptor<Map> deserializedNetworkSuggestionsMap =
+ ArgumentCaptor.forClass(Map.class);
+ mImsiPrivacyProtectionExemptionStoreData.deserializeData(null, 0,
+ WifiConfigStore.ENCRYPT_CREDENTIALS_CONFIG_STORE_DATA_VERSION, null);
+ verify(mDataSource).fromDeserialized(deserializedNetworkSuggestionsMap.capture());
+ assertTrue(deserializedNetworkSuggestionsMap.getValue().isEmpty());
+ }
+
+
private Map<Integer, Boolean> assertSerializeDeserialize(
Map<Integer, Boolean> mImsiPrivacyProtectionExemptionMap) throws Exception {
// Setup the data to serialize.