Chromium Code Reviews| Index: chrome/browser/chromeos/power/power_prefs_unittest.cc |
| diff --git a/chrome/browser/chromeos/power/power_prefs_unittest.cc b/chrome/browser/chromeos/power/power_prefs_unittest.cc |
| index a1704d4acd13c7a4e04cf39cb3bd357e2d36c464..b80047993de2c29195a11da9bb276f53b502f0a6 100644 |
| --- a/chrome/browser/chromeos/power/power_prefs_unittest.cc |
| +++ b/chrome/browser/chromeos/power/power_prefs_unittest.cc |
| @@ -38,6 +38,13 @@ namespace chromeos { |
| class PowerPrefsTest : public testing::Test { |
| protected: |
| + // Screen lock state that determines which delays are used by |
| + // GetExpectedPowerPolicyForProfile(). |
| + enum ScreenLockState { |
| + LOCKED, |
| + UNLOCKED, |
| + }; |
| + |
| PowerPrefsTest(); |
| // testing::Test: |
| @@ -46,7 +53,9 @@ class PowerPrefsTest : public testing::Test { |
| const Profile* GetProfile() const; |
| - std::string GetExpectedPowerPolicyForProfile(Profile* profile) const; |
| + std::string GetExpectedPowerPolicyForProfile( |
| + Profile* profile, |
| + ScreenLockState screen_lock_state) const; |
| std::string GetCurrentPowerPolicy() const; |
| bool GetExpectedAllowScreenWakeLocksForProfile(Profile* profile) const; |
| bool GetCurrentAllowScreenWakeLocks() const; |
| @@ -92,23 +101,28 @@ const Profile* PowerPrefsTest::GetProfile() const { |
| } |
| std::string PowerPrefsTest::GetExpectedPowerPolicyForProfile( |
| - Profile* profile) const { |
| + Profile* profile, |
| + ScreenLockState screen_lock_state) const { |
| const PrefService* prefs = profile->GetPrefs(); |
| power_manager::PowerManagementPolicy expected_policy; |
| - expected_policy.mutable_ac_delays()->set_screen_dim_ms( |
| - prefs->GetInteger(prefs::kPowerAcScreenDimDelayMs)); |
| - expected_policy.mutable_ac_delays()->set_screen_off_ms( |
| - prefs->GetInteger(prefs::kPowerAcScreenOffDelayMs)); |
| + expected_policy.mutable_ac_delays()->set_screen_dim_ms(prefs->GetInteger( |
| + screen_lock_state == LOCKED ? prefs::kPowerLockScreenDimDelayMs |
|
Daniel Erat
2014/12/12 17:38:18
weird (to my eyes) formatting is courtesy of clang
|
| + : prefs::kPowerAcScreenDimDelayMs)); |
| + expected_policy.mutable_ac_delays()->set_screen_off_ms(prefs->GetInteger( |
| + screen_lock_state == LOCKED ? prefs::kPowerLockScreenOffDelayMs |
| + : prefs::kPowerAcScreenOffDelayMs)); |
| expected_policy.mutable_ac_delays()->set_screen_lock_ms( |
| prefs->GetInteger(prefs::kPowerAcScreenLockDelayMs)); |
| expected_policy.mutable_ac_delays()->set_idle_warning_ms( |
| prefs->GetInteger(prefs::kPowerAcIdleWarningDelayMs)); |
| expected_policy.mutable_ac_delays()->set_idle_ms( |
| prefs->GetInteger(prefs::kPowerAcIdleDelayMs)); |
| - expected_policy.mutable_battery_delays()->set_screen_dim_ms( |
| - prefs->GetInteger(prefs::kPowerBatteryScreenDimDelayMs)); |
| - expected_policy.mutable_battery_delays()->set_screen_off_ms( |
| - prefs->GetInteger(prefs::kPowerBatteryScreenOffDelayMs)); |
| + expected_policy.mutable_battery_delays()->set_screen_dim_ms(prefs->GetInteger( |
| + screen_lock_state == LOCKED ? prefs::kPowerLockScreenDimDelayMs |
| + : prefs::kPowerBatteryScreenDimDelayMs)); |
| + expected_policy.mutable_battery_delays()->set_screen_off_ms(prefs->GetInteger( |
| + screen_lock_state == LOCKED ? prefs::kPowerLockScreenOffDelayMs |
| + : prefs::kPowerBatteryScreenOffDelayMs)); |
| expected_policy.mutable_battery_delays()->set_screen_lock_ms( |
| prefs->GetInteger(prefs::kPowerBatteryScreenLockDelayMs)); |
| expected_policy.mutable_battery_delays()->set_idle_warning_ms( |
| @@ -170,7 +184,7 @@ TEST_F(PowerPrefsTest, LoginScreen) { |
| content::NotificationService::NoDetails()); |
| EXPECT_EQ(login_profile, GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| EXPECT_EQ(GetExpectedAllowScreenWakeLocksForProfile(login_profile), |
| GetCurrentAllowScreenWakeLocks()); |
| @@ -185,11 +199,27 @@ TEST_F(PowerPrefsTest, LoginScreen) { |
| // Verify that the login profile's power prefs are still being used. |
| EXPECT_EQ(login_profile, GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| EXPECT_EQ(GetExpectedAllowScreenWakeLocksForProfile(login_profile), |
| GetCurrentAllowScreenWakeLocks()); |
| + // Lock the screen and check that the expected delays are used. |
| + bool screen_is_locked = true; |
| + power_prefs_->Observe(chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED, |
| + content::Source<Profile>(login_profile), |
| + content::Details<bool>(&screen_is_locked)); |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile, LOCKED), |
| + GetCurrentPowerPolicy()); |
| + |
| + // Unlock the screen. |
| + screen_is_locked = false; |
| + power_prefs_->Observe(chrome::NOTIFICATION_SCREEN_LOCK_STATE_CHANGED, |
| + content::Source<Profile>(login_profile), |
| + content::Details<bool>(&screen_is_locked)); |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile, UNLOCKED), |
| + GetCurrentPowerPolicy()); |
| + |
| // Inform power_prefs_ that the login profile has been destroyed. |
| power_prefs_->Observe(chrome::NOTIFICATION_PROFILE_DESTROYED, |
| content::Source<Profile>(login_profile), |
| @@ -197,7 +227,7 @@ TEST_F(PowerPrefsTest, LoginScreen) { |
| // The login profile's prefs should still be used. |
| EXPECT_FALSE(GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(login_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| } |
| @@ -220,7 +250,7 @@ TEST_F(PowerPrefsTest, UserSession) { |
| content::NotificationService::NoDetails()); |
| EXPECT_EQ(user_profile, GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| EXPECT_EQ(GetExpectedAllowScreenWakeLocksForProfile(user_profile), |
| GetCurrentAllowScreenWakeLocks()); |
| @@ -238,7 +268,7 @@ TEST_F(PowerPrefsTest, UserSession) { |
| // Verify that the user profile's power prefs are still being used. |
| EXPECT_EQ(user_profile, GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| EXPECT_EQ(GetExpectedAllowScreenWakeLocksForProfile(user_profile), |
| GetCurrentAllowScreenWakeLocks()); |
| @@ -250,7 +280,7 @@ TEST_F(PowerPrefsTest, UserSession) { |
| // Verify that power policy didn't revert to login screen settings. |
| EXPECT_EQ(user_profile, GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| EXPECT_EQ(GetExpectedAllowScreenWakeLocksForProfile(user_profile), |
| GetCurrentAllowScreenWakeLocks()); |
| @@ -263,7 +293,7 @@ TEST_F(PowerPrefsTest, UserSession) { |
| // The user profile's prefs should still be used. |
| EXPECT_FALSE(GetProfile()); |
| - EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile), |
| + EXPECT_EQ(GetExpectedPowerPolicyForProfile(user_profile, UNLOCKED), |
| GetCurrentPowerPolicy()); |
| } |