Merge changes I7771a43b,If613c5cf into sc-dev am: 1871275fbf
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/14160593 Change-Id: If2786b42478ac86f43be32d63babc335a384e772
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.settings.fuelgauge;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public final class BatteryDiffEntryTest {
|
||||
|
||||
@Test
|
||||
public void testSetTotalConsumePower_returnExpectedResult() {
|
||||
final BatteryDiffEntry entry =
|
||||
new BatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 10001L,
|
||||
/*backgroundUsageTimeInMs=*/ 20002L,
|
||||
/*consumePower=*/ 22.0,
|
||||
/*batteryHistEntry=*/ null);
|
||||
entry.setTotalConsumePower(100.0);
|
||||
|
||||
assertThat(entry.getPercentOfTotal()).isEqualTo(22.0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSetTotalConsumePower_setZeroValue_returnsZeroValue() {
|
||||
final BatteryDiffEntry entry =
|
||||
new BatteryDiffEntry(
|
||||
/*foregroundUsageTimeInMs=*/ 10001L,
|
||||
/*backgroundUsageTimeInMs=*/ 20002L,
|
||||
/*consumePower=*/ 22.0,
|
||||
/*batteryHistEntry=*/ null);
|
||||
entry.setTotalConsumePower(0);
|
||||
|
||||
assertThat(entry.getPercentOfTotal()).isEqualTo(0);
|
||||
}
|
||||
}
|
@@ -161,5 +161,7 @@ public final class BatteryHistEntryTest {
|
||||
.isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
|
||||
assertThat(entry.mBatteryHealth)
|
||||
.isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
|
||||
assertThat(entry.getKey())
|
||||
.isEqualTo("com.google.android.settings.battery-" + entry.mUserId);
|
||||
}
|
||||
}
|
||||
|
@@ -37,6 +37,11 @@ import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.TimeZone;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@@ -165,4 +170,84 @@ public final class ConvertUtilsTest {
|
||||
assertThat(ConvertUtils.getConsumerType(mockBatteryConsumer))
|
||||
.isEqualTo(ConvertUtils.CONSUMER_TYPE_UNKNOWN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetIndexedUsageMap_returnsExpectedResult() {
|
||||
// Creates the fake testing data.
|
||||
final int timeSlotSize = 2;
|
||||
final long[] batteryHistoryKeys = new long[] {101L, 102L, 103L, 104L, 105L};
|
||||
final Map<Long, List<BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
|
||||
batteryHistoryMap.put(
|
||||
Long.valueOf(batteryHistoryKeys[0]),
|
||||
Arrays.asList(
|
||||
createBatteryHistEntry(
|
||||
"package1", "label1", 5.0, 1L, 10L, 20L)));
|
||||
batteryHistoryMap.put(
|
||||
Long.valueOf(batteryHistoryKeys[1]), new ArrayList<BatteryHistEntry>());
|
||||
batteryHistoryMap.put(
|
||||
Long.valueOf(batteryHistoryKeys[2]),
|
||||
Arrays.asList(
|
||||
createBatteryHistEntry(
|
||||
"package2", "label2", 10.0, 2L, 15L, 25L)));
|
||||
batteryHistoryMap.put(
|
||||
Long.valueOf(batteryHistoryKeys[3]),
|
||||
Arrays.asList(
|
||||
createBatteryHistEntry(
|
||||
"package2", "label2", 15.0, 2L, 25L, 35L),
|
||||
createBatteryHistEntry(
|
||||
"package3", "label3", 5.0, 2L, 5L, 5L)));
|
||||
batteryHistoryMap.put(
|
||||
Long.valueOf(batteryHistoryKeys[4]),
|
||||
Arrays.asList(
|
||||
createBatteryHistEntry(
|
||||
"package2", "label2", 30.0, 2L, 30L, 40L),
|
||||
createBatteryHistEntry(
|
||||
"package2", "label2", 75.0, 3L, 40L, 50L),
|
||||
createBatteryHistEntry(
|
||||
"package3", "label3", 5.0, 2L, 5L, 5L)));
|
||||
|
||||
final Map<Integer, List<BatteryDiffEntry>> resultMap =
|
||||
ConvertUtils.getIndexedUsageMap(
|
||||
timeSlotSize, batteryHistoryKeys, batteryHistoryMap);
|
||||
|
||||
assertThat(resultMap).hasSize(3);
|
||||
// Verifies the first timestamp result.
|
||||
List<BatteryDiffEntry> entryList = resultMap.get(Integer.valueOf(0));
|
||||
assertThat(entryList).hasSize(1);
|
||||
assertBatteryDiffEntry(entryList.get(0), 100, 15L, 25L);
|
||||
// Verifies the second timestamp result.
|
||||
entryList = resultMap.get(Integer.valueOf(1));
|
||||
assertThat(entryList).hasSize(3);
|
||||
assertBatteryDiffEntry(entryList.get(0), 5, 5L, 5L);
|
||||
assertBatteryDiffEntry(entryList.get(1), 75, 40L, 50L);
|
||||
assertBatteryDiffEntry(entryList.get(2), 20, 15L, 15L);
|
||||
// Verifies the last 24 hours aggregate result.
|
||||
entryList = resultMap.get(Integer.valueOf(-1));
|
||||
assertThat(entryList).hasSize(3);
|
||||
assertBatteryDiffEntry(entryList.get(0), 4, 5L, 5L);
|
||||
assertBatteryDiffEntry(entryList.get(1), 68, 40L, 50L);
|
||||
assertBatteryDiffEntry(entryList.get(2), 27, 30L, 40L);
|
||||
}
|
||||
|
||||
private static BatteryHistEntry createBatteryHistEntry(
|
||||
String packageName, String appLabel, double consumePower,
|
||||
long userId, long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
// Only insert required fields.
|
||||
final ContentValues values = new ContentValues();
|
||||
values.put("packageName", packageName);
|
||||
values.put("appLabel", appLabel);
|
||||
values.put("userId", userId);
|
||||
values.put("consumePower", consumePower);
|
||||
values.put("foregroundUsageTimeInMs", foregroundUsageTimeInMs);
|
||||
values.put("backgroundUsageTimeInMs", backgroundUsageTimeInMs);
|
||||
return new BatteryHistEntry(values);
|
||||
}
|
||||
|
||||
private static void assertBatteryDiffEntry(
|
||||
BatteryDiffEntry entry, int percentOfTotal,
|
||||
long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
|
||||
assertThat((int) entry.getPercentOfTotal()).isEqualTo(percentOfTotal);
|
||||
assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
|
||||
assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user