| Index: ash/system/chromeos/power/tray_power_unittest.cc
|
| diff --git a/ash/system/chromeos/power/tray_power_unittest.cc b/ash/system/chromeos/power/tray_power_unittest.cc
|
| index 82bac2754d28705258df46229b2cc43e56a9d1fc..069ece088440ce9c2409e06f5a27c056c3cc498e 100644
|
| --- a/ash/system/chromeos/power/tray_power_unittest.cc
|
| +++ b/ash/system/chromeos/power/tray_power_unittest.cc
|
| @@ -161,12 +161,63 @@ TEST_F(TrayPowerTest, UpdateNotificationState) {
|
| EXPECT_FALSE(UpdateNotificationState(charging));
|
| EXPECT_EQ(TrayPower::NOTIFICATION_NONE, notification_state());
|
|
|
| - // Critical low battery notification.
|
| + // When the rounded minutes-to-empty are above the threshold, no notification
|
| + // should be shown.
|
| + PowerSupplyProperties low = DefaultPowerSupplyProperties();
|
| + low.set_battery_time_to_empty_sec(TrayPower::kLowPowerMinutes * 60 + 30);
|
| + EXPECT_FALSE(UpdateNotificationState(low));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_NONE, notification_state());
|
| +
|
| + // When the rounded value matches the threshold, the notification should
|
| + // appear.
|
| + low.set_battery_time_to_empty_sec(TrayPower::kLowPowerMinutes * 60 + 29);
|
| + EXPECT_TRUE(UpdateNotificationState(low));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_LOW_POWER, notification_state());
|
| +
|
| + // It should persist at lower values.
|
| + low.set_battery_time_to_empty_sec(TrayPower::kLowPowerMinutes * 60 - 20);
|
| + EXPECT_FALSE(UpdateNotificationState(low));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_LOW_POWER, notification_state());
|
| +
|
| + // The critical low battery notification should be shown when the rounded
|
| + // value is at the lower threshold.
|
| PowerSupplyProperties critical = DefaultPowerSupplyProperties();
|
| - critical.set_battery_time_to_empty_sec(60);
|
| - critical.set_battery_percent(2.0);
|
| + critical.set_battery_time_to_empty_sec(TrayPower::kCriticalMinutes * 60 + 29);
|
| EXPECT_TRUE(UpdateNotificationState(critical));
|
| EXPECT_EQ(TrayPower::NOTIFICATION_CRITICAL, notification_state());
|
| +
|
| + // The notification should be dismissed when the no-warning threshold is
|
| + // reached.
|
| + PowerSupplyProperties safe = DefaultPowerSupplyProperties();
|
| + safe.set_battery_time_to_empty_sec(TrayPower::kNoWarningMinutes * 60 - 29);
|
| + EXPECT_FALSE(UpdateNotificationState(safe));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_NONE, notification_state());
|
| +
|
| + // Test that rounded percentages are used when a USB charger is connected.
|
| + PowerSupplyProperties low_usb = DefaultPowerSupplyProperties();
|
| + low_usb.set_external_power(
|
| + power_manager::PowerSupplyProperties_ExternalPower_USB);
|
| + low_usb.set_battery_percent(TrayPower::kLowPowerPercentage + 0.5);
|
| + EXPECT_FALSE(UpdateNotificationState(low_usb));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_NONE, notification_state());
|
| +
|
| + low_usb.set_battery_percent(TrayPower::kLowPowerPercentage + 0.49);
|
| + EXPECT_TRUE(UpdateNotificationState(low_usb));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_LOW_POWER, notification_state());
|
| +
|
| + PowerSupplyProperties critical_usb = DefaultPowerSupplyProperties();
|
| + critical_usb.set_external_power(
|
| + power_manager::PowerSupplyProperties_ExternalPower_USB);
|
| + critical_usb.set_battery_percent(TrayPower::kCriticalPercentage + 0.2);
|
| + EXPECT_TRUE(UpdateNotificationState(critical_usb));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_CRITICAL, notification_state());
|
| +
|
| + PowerSupplyProperties safe_usb = DefaultPowerSupplyProperties();
|
| + safe_usb.set_external_power(
|
| + power_manager::PowerSupplyProperties_ExternalPower_USB);
|
| + safe_usb.set_battery_percent(TrayPower::kNoWarningPercentage - 0.1);
|
| + EXPECT_FALSE(UpdateNotificationState(safe_usb));
|
| + EXPECT_EQ(TrayPower::NOTIFICATION_NONE, notification_state());
|
| }
|
|
|
| } // namespace internal
|
|
|