Record important battery usage event into SharedPreference for dump()

Fix: 268300677
Test: presubmit
Change-Id: If03106c265b984bc2608528bdf45386973e3a14f
This commit is contained in:
ykhung
2023-03-25 14:57:16 +08:00
parent e0c151f401
commit 1f3cf084c8
6 changed files with 118 additions and 3 deletions

View File

@@ -57,6 +57,7 @@ public final class BatteryUsageBroadcastReceiverTest {
mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mBatteryUsageBroadcastReceiver = new BatteryUsageBroadcastReceiver();
doReturn(mPackageManager).when(mContext).getPackageManager();
DatabaseUtils.getSharedPreferences(mContext).edit().clear().apply();
}
@Test
@@ -77,6 +78,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
}
@Test
@@ -94,6 +96,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
}
@Test
@@ -110,6 +113,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
}
@Test
@@ -126,6 +130,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(Intent.ACTION_BATTERY_LEVEL_CHANGED));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isTrue();
assertSharedPreferences(Intent.ACTION_BATTERY_LEVEL_CHANGED);
}
@Test
@@ -139,6 +144,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
}
@Test
@@ -156,6 +162,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
}
@Test
@@ -172,6 +179,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isFalse();
assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
}
@Test
@@ -188,6 +196,7 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING));
assertThat(mBatteryUsageBroadcastReceiver.mFetchBatteryUsageData).isTrue();
assertSharedPreferences(BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
}
@Test
@@ -202,6 +211,8 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA));
assertThat(BatteryDiffEntry.sValidForRestriction).isEmpty();
assertSharedPreferences(
BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
}
@Test
@@ -216,6 +227,8 @@ public final class BatteryUsageBroadcastReceiverTest {
new Intent(BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA));
assertThat(BatteryDiffEntry.sValidForRestriction).isNotEmpty();
assertSharedPreferences(
BatteryUsageBroadcastReceiver.ACTION_CLEAR_BATTERY_CACHE_DATA);
}
private static Intent getBatteryIntent(int level, int status) {
@@ -225,4 +238,9 @@ public final class BatteryUsageBroadcastReceiverTest {
intent.putExtra(BatteryManager.EXTRA_STATUS, status);
return intent;
}
private void assertSharedPreferences(String preferenceKey) {
assertThat(DatabaseUtils.getSharedPreferences(mContext).contains(preferenceKey))
.isTrue();
}
}

View File

@@ -46,6 +46,8 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -73,6 +75,7 @@ public final class DatabaseUtilsTest {
doReturn(mMockContentResolver).when(mContext).getContentResolver();
doReturn(mPackageManager).when(mMockContext).getPackageManager();
doReturn(mPackageManager).when(mContext).getPackageManager();
DatabaseUtils.getSharedPreferences(mContext).edit().clear().apply();
}
@Test
@@ -396,6 +399,38 @@ public final class DatabaseUtilsTest {
assertThat(batteryHistMap).isEmpty();
}
@Test
public void recordDateTime_writeDataIntoSharedPreferences() {
final String preferenceKey = "test_preference_key";
DatabaseUtils.recordDateTime(mContext, preferenceKey);
assertThat(DatabaseUtils.getSharedPreferences(mContext).contains(preferenceKey))
.isTrue();
}
@Test
public void dump_dumpExpectedData() {
DatabaseUtils.recordDateTime(mContext,
Intent.ACTION_BATTERY_LEVEL_CHANGED);
DatabaseUtils.recordDateTime(mContext,
BatteryUsageBroadcastReceiver.ACTION_BATTERY_UNPLUGGING);
DatabaseUtils.recordDateTime(mContext,
DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
DatabaseUtils.recordDateTime(mContext,
DatabaseUtils.KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
final StringWriter stringWriter = new StringWriter();
final PrintWriter printWriter = new PrintWriter(stringWriter);
DatabaseUtils.dump(mContext, printWriter);
String dumpContent = stringWriter.toString();
assertThat(dumpContent.contains("BatteryLevelChanged")).isTrue();
assertThat(dumpContent.contains("BatteryUnplugging")).isTrue();
assertThat(dumpContent.contains("ClearBatteryCacheData")).isTrue();
assertThat(dumpContent.contains("LastLoadFullChargeTime")).isTrue();
assertThat(dumpContent.contains("LastUploadFullChargeTime")).isTrue();
}
private static void verifyBatteryEntryContentValues(
double consumedPower, ContentValues values) {
final BatteryInformation batteryInformation =