Fix issue "open battery settings, switch locale, apps are still in old locale" into pi-dev

Clear uid to package detail cache by checking locale before use.

Fixes: 62422871
Test: RunSettingsRoboTest pass,
manual test
(1) open advance battery settings page,
(2) switch locale,
(3) back to advance battery settings page  => pass
manual test
(1) open advance battery settings page, and then back to settings main page
(2) switch locale,
(3) go to advance battery settings page  => pass

Change-Id: Ifac830706539022cd9bf51d3f33e728aadc163f4
This commit is contained in:
WenHung_Teng
2018-03-22 16:23:21 +08:00
parent baea1c87f5
commit 8e14da1d30
2 changed files with 25 additions and 0 deletions

View File

@@ -39,6 +39,8 @@ import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
public class BatteryEntryTest {
@@ -148,4 +150,17 @@ public class BatteryEntryTest {
assertThat(entry.extractPackagesFromSipper(entry.sipper)).isEqualTo(entry.sipper.mPackages);
}
@Test
public void testUidCache_switchLocale_shouldCleanCache() {
BatteryEntry.stopRequestQueue();
Locale.setDefault(new Locale("en_US"));
BatteryEntry.sUidCache.put(Integer.toString(APP_UID), null);
assertThat(BatteryEntry.sUidCache).isNotEmpty();
Locale.setDefault(new Locale("zh_TW"));
createBatteryEntryForApp();
assertThat(BatteryEntry.sUidCache).isEmpty(); // check if cache is clear
}
}