Impl highlight effect on BatteryChartView slots.
Screenshot: https://screenshot.googleplex.com/F5VrGjj5kdNHMV6 Bug: 284893240 Bug: 291689623 Test: manual Change-Id: I846d95d31e8bb839481b86a94d5191ff205f8328
This commit is contained in:
@@ -18,6 +18,10 @@ package com.android.settings.fuelgauge.batteryusage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.settings.testutils.BatteryTestUtils;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -211,4 +215,29 @@ public class BatteryLevelDataTest {
|
||||
assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
|
||||
.isEqualTo(List.of(100, 98));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getIndexByTimestamps_returnExpectedResult() {
|
||||
final BatteryLevelData batteryLevelData =
|
||||
new BatteryLevelData(Map.of(
|
||||
1694354400000L, 1, // 2023-09-10 22:00:00
|
||||
1694361600000L, 2, // 2023-09-11 00:00:00
|
||||
1694368800000L, 3)); // 2023-09-11 02:00:00
|
||||
final PowerAnomalyEvent event = BatteryTestUtils.createAppAnomalyEvent();
|
||||
|
||||
assertThat(batteryLevelData.getIndexByTimestamps(0L, 0L))
|
||||
.isEqualTo(Pair.create(BatteryChartViewModel.SELECTED_INDEX_INVALID,
|
||||
BatteryChartViewModel.SELECTED_INDEX_INVALID));
|
||||
assertThat(batteryLevelData.getIndexByTimestamps(1694361600000L + 1L, 1694368800000L + 1L))
|
||||
.isEqualTo(Pair.create(BatteryChartViewModel.SELECTED_INDEX_INVALID,
|
||||
BatteryChartViewModel.SELECTED_INDEX_INVALID));
|
||||
assertThat(batteryLevelData.getIndexByTimestamps(1694361600000L, 1694368800000L))
|
||||
.isEqualTo(Pair.create(1, 0));
|
||||
assertThat(batteryLevelData.getIndexByTimestamps(1694361600000L + 1L, 1694368800000L - 1L))
|
||||
.isEqualTo(Pair.create(1, 0));
|
||||
assertThat(batteryLevelData.getIndexByTimestamps(
|
||||
event.getWarningItemInfo().getStartTimestamp(),
|
||||
event.getWarningItemInfo().getEndTimestamp()))
|
||||
.isEqualTo(Pair.create(1, 0));
|
||||
}
|
||||
}
|
||||
|
@@ -19,7 +19,9 @@ package com.android.settings.fuelgauge.batteryusage;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
@@ -45,16 +47,24 @@ import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public final class BatteryTipsCardPreferenceTest {
|
||||
|
||||
private Context mContext;
|
||||
private FakeFeatureFactory mFeatureFactory;
|
||||
private BatteryTipsCardPreference mBatteryTipsCardPreference;
|
||||
private PowerUsageAdvanced mPowerUsageAdvanced;
|
||||
private BatteryTipsController mBatteryTipsController;
|
||||
|
||||
@Mock
|
||||
private View mFakeView;
|
||||
@Mock
|
||||
private BatteryChartPreferenceController mBatteryChartPreferenceController;
|
||||
@Mock
|
||||
private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -64,6 +74,14 @@ public final class BatteryTipsCardPreferenceTest {
|
||||
mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /*attrs=*/ null);
|
||||
mBatteryTipsController = new BatteryTipsController(mContext);
|
||||
mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
|
||||
mPowerUsageAdvanced = new PowerUsageAdvanced();
|
||||
mPowerUsageAdvanced.mBatteryTipsController = mBatteryTipsController;
|
||||
mPowerUsageAdvanced.mBatteryChartPreferenceController = mBatteryChartPreferenceController;
|
||||
mPowerUsageAdvanced.mBatteryUsageBreakdownController = mBatteryUsageBreakdownController;
|
||||
mPowerUsageAdvanced.mBatteryLevelData = Optional.of(new BatteryLevelData(Map.of(
|
||||
1694354400000L, 1, // 2023-09-10 22:00:00
|
||||
1694361600000L, 2, // 2023-09-11 00:00:00
|
||||
1694368800000L, 3))); // 2023-09-11 02:00:00
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -71,8 +89,9 @@ public final class BatteryTipsCardPreferenceTest {
|
||||
assertThat(mBatteryTipsCardPreference.getLayoutResource()).isEqualTo(
|
||||
R.layout.battery_tips_card);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onClick_mainBtn_getAdaptiveBrightnessLauncher() {
|
||||
public void onClick_mainBtnOfSettingsAnomaly_getAdaptiveBrightnessLauncher() {
|
||||
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
||||
PowerAnomalyEvent adaptiveBrightnessAnomaly =
|
||||
BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
|
||||
@@ -80,10 +99,10 @@ public final class BatteryTipsCardPreferenceTest {
|
||||
when(mFakeView.getId()).thenReturn(R.id.main_button);
|
||||
doNothing().when(mContext).startActivity(captor.capture());
|
||||
|
||||
mBatteryTipsController.handleBatteryTipsCardUpdated(adaptiveBrightnessAnomaly);
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(adaptiveBrightnessAnomaly);
|
||||
mBatteryTipsCardPreference.onClick(mFakeView);
|
||||
|
||||
assertThat(mBatteryTipsCardPreference.isVisible()).isEqualTo(false);
|
||||
assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
|
||||
verify(mContext).startActivity(any(Intent.class));
|
||||
final Intent intent = captor.getValue();
|
||||
assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
|
||||
@@ -96,21 +115,53 @@ public final class BatteryTipsCardPreferenceTest {
|
||||
|
||||
@Test
|
||||
public void onClick_dismissBtn_cardDismissAndLogged() {
|
||||
PowerAnomalyEvent screenTimeoutAnomaly =
|
||||
final PowerAnomalyEvent screenTimeoutAnomaly =
|
||||
BatteryTestUtils.createScreenTimeoutAnomalyEvent();
|
||||
DatabaseUtils.removeDismissedPowerAnomalyKeys(mContext);
|
||||
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
|
||||
when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
|
||||
|
||||
mBatteryTipsController.handleBatteryTipsCardUpdated(screenTimeoutAnomaly);
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(screenTimeoutAnomaly);
|
||||
mBatteryTipsCardPreference.onClick(mFakeView);
|
||||
|
||||
assertThat(mBatteryTipsCardPreference.isVisible()).isEqualTo(false);
|
||||
assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext).size())
|
||||
.isEqualTo(1);
|
||||
assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
|
||||
assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext)).hasSize(1);
|
||||
assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext))
|
||||
.contains(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name());
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, "ScreenTimeoutAnomaly");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onClick_mainBtnOfAppsAnomaly_selectHighlightSlot() {
|
||||
final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
|
||||
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
|
||||
when(mFakeView.getId()).thenReturn(R.id.main_button);
|
||||
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(appsAnomaly);
|
||||
mBatteryTipsCardPreference.onClick(mFakeView);
|
||||
|
||||
assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
|
||||
verify(mContext, never()).startActivity(any(Intent.class));
|
||||
verify(mBatteryChartPreferenceController).selectHighlightSlotIndex();
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, "AppAnomaly");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onClick_dismissBtnOfAppsAnomaly_removeHighlightSlotIndex() {
|
||||
final PowerAnomalyEvent appsAnomaly = BatteryTestUtils.createAppAnomalyEvent();
|
||||
when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
|
||||
when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
|
||||
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(appsAnomaly);
|
||||
mBatteryTipsCardPreference.onClick(mFakeView);
|
||||
|
||||
assertThat(mBatteryTipsCardPreference.isVisible()).isFalse();
|
||||
verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(
|
||||
eq(BatteryChartViewModel.SELECTED_INDEX_INVALID),
|
||||
eq(BatteryChartViewModel.SELECTED_INDEX_INVALID));
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, "AppAnomaly");
|
||||
}
|
||||
}
|
||||
|
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.settings.fuelgauge.batteryusage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
@@ -73,6 +75,19 @@ public final class BatteryTipsControllerTest {
|
||||
verify(mBatteryTipsCardPreference).setVisible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getDismissRecordKey_returnExpectedResult() {
|
||||
assertThat(BatteryTipsController.getDismissRecordKey(
|
||||
BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent()))
|
||||
.isEqualTo("KEY_BRIGHTNESS");
|
||||
assertThat(BatteryTipsController.getDismissRecordKey(
|
||||
BatteryTestUtils.createScreenTimeoutAnomalyEvent()))
|
||||
.isEqualTo("KEY_SCREEN_TIMEOUT");
|
||||
assertThat(BatteryTipsController.getDismissRecordKey(
|
||||
BatteryTestUtils.createAppAnomalyEvent()))
|
||||
.isEqualTo("KEY_APP_1");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void handleBatteryTipsCardUpdated_adaptiveBrightnessAnomaly_showAnomaly() {
|
||||
PowerAnomalyEvent event = BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
|
||||
@@ -80,7 +95,6 @@ public final class BatteryTipsControllerTest {
|
||||
|
||||
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
|
||||
|
||||
verify(mBatteryTipsCardPreference).setAnomalyEventId("BrightnessAnomaly");
|
||||
// Check pre-defined string
|
||||
verify(mBatteryTipsCardPreference).setTitle(
|
||||
"Turn on adaptive brightness to extend battery life");
|
||||
@@ -90,9 +104,6 @@ public final class BatteryTipsControllerTest {
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
|
||||
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
|
||||
// Check proto info
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
|
||||
"com.android.settings.DisplaySettings",
|
||||
46, "auto_brightness_entry");
|
||||
verify(mBatteryTipsCardPreference).setVisible(true);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "BrightnessAnomaly");
|
||||
@@ -105,16 +116,12 @@ public final class BatteryTipsControllerTest {
|
||||
|
||||
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
|
||||
|
||||
verify(mBatteryTipsCardPreference).setAnomalyEventId("ScreenTimeoutAnomaly");
|
||||
verify(mBatteryTipsCardPreference).setTitle("Reduce screen timeout to extend battery life");
|
||||
verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
|
||||
verify(mBatteryTipsCardPreference).setMainButtonStrokeColorResourceId(
|
||||
R.color.color_accent_selector);
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
|
||||
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
|
||||
"com.android.settings.display.ScreenTimeoutSettings",
|
||||
1852, "60000");
|
||||
verify(mBatteryTipsCardPreference).setVisible(true);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
|
||||
@@ -134,16 +141,12 @@ public final class BatteryTipsControllerTest {
|
||||
|
||||
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
|
||||
|
||||
verify(mBatteryTipsCardPreference).setAnomalyEventId("ScreenTimeoutAnomaly");
|
||||
verify(mBatteryTipsCardPreference).setTitle(testTitle);
|
||||
verify(mBatteryTipsCardPreference).setIconResourceId(R.drawable.ic_battery_tips_lightbulb);
|
||||
verify(mBatteryTipsCardPreference).setMainButtonStrokeColorResourceId(
|
||||
R.color.color_accent_selector);
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
|
||||
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
|
||||
"com.android.settings.display.ScreenTimeoutSettings",
|
||||
1852, "60000");
|
||||
verify(mBatteryTipsCardPreference).setVisible(true);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
|
||||
@@ -156,7 +159,6 @@ public final class BatteryTipsControllerTest {
|
||||
|
||||
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
|
||||
|
||||
verify(mBatteryTipsCardPreference).setAnomalyEventId("AppAnomaly");
|
||||
verify(mBatteryTipsCardPreference).setTitle(
|
||||
"Chrome used more battery than usual in foreground");
|
||||
verify(mBatteryTipsCardPreference).setIconResourceId(
|
||||
@@ -165,8 +167,6 @@ public final class BatteryTipsControllerTest {
|
||||
R.color.color_battery_anomaly_yellow_selector);
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLabel("Check");
|
||||
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
|
||||
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
|
||||
null, null, null);
|
||||
verify(mBatteryTipsCardPreference).setVisible(true);
|
||||
verify(mFeatureFactory.metricsFeatureProvider).action(
|
||||
mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "AppAnomaly");
|
||||
|
@@ -17,9 +17,15 @@ package com.android.settings.fuelgauge.batteryusage;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.ArgumentMatchers.isNull;
|
||||
import static org.mockito.ArgumentMatchers.notNull;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.android.settings.testutils.BatteryTestUtils;
|
||||
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
|
||||
@@ -27,19 +33,47 @@ import com.android.settings.testutils.shadow.ShadowDashboardFragment;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
import org.robolectric.RobolectricTestRunner;
|
||||
import org.robolectric.RuntimeEnvironment;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.TimeZone;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@Config(shadows = ShadowDashboardFragment.class)
|
||||
public final class PowerUsageAdvancedTest {
|
||||
|
||||
private Context mContext;
|
||||
private PowerUsageAdvanced mPowerUsageAdvanced;
|
||||
|
||||
@Mock
|
||||
private BatteryTipsController mBatteryTipsController;
|
||||
@Mock
|
||||
private BatteryChartPreferenceController mBatteryChartPreferenceController;
|
||||
@Mock
|
||||
private ScreenOnTimeController mScreenOnTimeController;
|
||||
@Mock
|
||||
private BatteryUsageBreakdownController mBatteryUsageBreakdownController;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
|
||||
mContext = spy(RuntimeEnvironment.application);
|
||||
|
||||
mPowerUsageAdvanced = new PowerUsageAdvanced();
|
||||
mPowerUsageAdvanced.mBatteryTipsController = mBatteryTipsController;
|
||||
mPowerUsageAdvanced.mBatteryChartPreferenceController = mBatteryChartPreferenceController;
|
||||
mPowerUsageAdvanced.mScreenOnTimeController = mScreenOnTimeController;
|
||||
mPowerUsageAdvanced.mBatteryUsageBreakdownController = mBatteryUsageBreakdownController;
|
||||
mPowerUsageAdvanced.mBatteryLevelData = Optional.of(new BatteryLevelData(Map.of(
|
||||
1694354400000L, 1, // 2023-09-10 22:00:00
|
||||
1694361600000L, 2, // 2023-09-11 00:00:00
|
||||
1694368800000L, 3))); // 2023-09-11 02:00:00
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -87,6 +121,65 @@ public final class PowerUsageAdvancedTest {
|
||||
final PowerAnomalyEvent highestScoreEvent =
|
||||
PowerUsageAdvanced.getHighestScoreAnomalyEvent(mContext, powerAnomalyEventList);
|
||||
|
||||
assertThat(highestScoreEvent).isEqualTo(null);
|
||||
assertThat(highestScoreEvent).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDisplayAnomalyEventUpdated_withSettingsAnomalyEvent_skipHighlightSlotEffect() {
|
||||
final PowerAnomalyEvent event = BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
|
||||
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(event);
|
||||
|
||||
assertThat(mPowerUsageAdvanced.mPowerAnomalyEvent).isEqualTo(event);
|
||||
verify(mBatteryTipsController).handleBatteryTipsCardUpdated(eq(event));
|
||||
verify(mPowerUsageAdvanced.mBatteryTipsController).setOnAnomalyConfirmListener(isNull());
|
||||
verify(mPowerUsageAdvanced.mBatteryTipsController).setOnAnomalyRejectListener(isNull());
|
||||
verify(mPowerUsageAdvanced.mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(
|
||||
eq(BatteryChartViewModel.SELECTED_INDEX_INVALID),
|
||||
eq(BatteryChartViewModel.SELECTED_INDEX_INVALID));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDisplayAnomalyEventUpdated_withAppAnomalyEvent_setHighlightSlotEffect() {
|
||||
final PowerAnomalyEvent event = BatteryTestUtils.createAppAnomalyEvent();
|
||||
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(event);
|
||||
|
||||
assertThat(mPowerUsageAdvanced.mPowerAnomalyEvent).isEqualTo(event);
|
||||
verify(mBatteryTipsController).handleBatteryTipsCardUpdated(eq(event));
|
||||
verify(mBatteryTipsController).setOnAnomalyConfirmListener(isNull());
|
||||
verify(mBatteryTipsController).setOnAnomalyRejectListener(isNull());
|
||||
|
||||
assertThat(event.getWarningItemInfo().hasStartTimestamp()).isTrue();
|
||||
assertThat(event.getWarningItemInfo().hasEndTimestamp()).isTrue();
|
||||
assertThat(mPowerUsageAdvanced.mBatteryLevelData.get().getIndexByTimestamps(
|
||||
event.getWarningItemInfo().getStartTimestamp(),
|
||||
event.getWarningItemInfo().getEndTimestamp()
|
||||
)).isEqualTo(Pair.create(1, 0));
|
||||
verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(eq(1), eq(0));
|
||||
verify(mBatteryTipsController).setOnAnomalyConfirmListener(notNull());
|
||||
verify(mBatteryTipsController).setOnAnomalyRejectListener(notNull());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDisplayAnomalyEventUpdated_withNull_removeHighlightSlotEffect() {
|
||||
final PowerAnomalyEvent event = BatteryTestUtils.createAppAnomalyEvent();
|
||||
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(event);
|
||||
mPowerUsageAdvanced.onDisplayAnomalyEventUpdated(null);
|
||||
|
||||
assertThat(mPowerUsageAdvanced.mPowerAnomalyEvent).isNull();
|
||||
verify(mBatteryTipsController, times(2))
|
||||
.setOnAnomalyConfirmListener(isNull());
|
||||
verify(mBatteryTipsController, times(2))
|
||||
.setOnAnomalyRejectListener(isNull());
|
||||
verify(mBatteryTipsController).setOnAnomalyConfirmListener(notNull());
|
||||
verify(mBatteryTipsController).setOnAnomalyRejectListener(notNull());
|
||||
|
||||
verify(mBatteryChartPreferenceController)
|
||||
.onHighlightSlotIndexUpdate(eq(1), eq(0));
|
||||
verify(mBatteryChartPreferenceController).onHighlightSlotIndexUpdate(
|
||||
eq(BatteryChartViewModel.SELECTED_INDEX_INVALID),
|
||||
eq(BatteryChartViewModel.SELECTED_INDEX_INVALID));
|
||||
}
|
||||
}
|
||||
|
@@ -283,6 +283,9 @@ public class BatteryTestUtils {
|
||||
.setKey(PowerAnomalyKey.KEY_APP)
|
||||
.setScore(2.0f)
|
||||
.setWarningItemInfo(WarningItemInfo.newBuilder()
|
||||
.setDismissRecordKey("KEY_APP_1")
|
||||
.setStartTimestamp(1694361600000L) // 2023-09-11 00:00:00
|
||||
.setEndTimestamp(1694368800000L) // 2023-09-11 02:00:00
|
||||
.setTitleString("Chrome used more battery than usual in foreground")
|
||||
.setMainButtonString("Check")
|
||||
.setCancelButtonString("Got it")
|
||||
|
Reference in New Issue
Block a user