| Index: chrome/browser/extensions/api/idle/idle_api_unittest.cc
|
| diff --git a/chrome/browser/extensions/api/idle/idle_api_unittest.cc b/chrome/browser/extensions/api/idle/idle_api_unittest.cc
|
| index 62a313384ebb4a5b948d53dc8633aaf7833f56a8..83c03cb54afd79f5ebad2fb5d447aec1267b9797 100644
|
| --- a/chrome/browser/extensions/api/idle/idle_api_unittest.cc
|
| +++ b/chrome/browser/extensions/api/idle/idle_api_unittest.cc
|
| @@ -550,4 +550,30 @@ TEST_F(IdleTest, UnloadWhileListening) {
|
| content::Details<UnloadedExtensionInfo>(&details));
|
| }
|
|
|
| +// Verifies that re-adding a listener after a state change doesn't immediately
|
| +// fire a change event. Regression test for http://crbug.com/366580.
|
| +TEST_F(IdleTest, ReAddListener) {
|
| + idle_provider_->set_locked(false);
|
| +
|
| + {
|
| + // Fire idle event.
|
| + ScopedListen listen(idle_manager_, "test");
|
| + idle_provider_->set_idle_time(60);
|
| + EXPECT_CALL(*event_delegate_, OnStateChanged("test", IDLE_STATE_IDLE));
|
| + idle_manager_->UpdateIdleState();
|
| + testing::Mock::VerifyAndClearExpectations(event_delegate_);
|
| + }
|
| +
|
| + // Trigger active.
|
| + idle_provider_->set_idle_time(0);
|
| + idle_manager_->UpdateIdleState();
|
| +
|
| + {
|
| + // Nothing should have fired, the listener wasn't added until afterward.
|
| + ScopedListen listen(idle_manager_, "test");
|
| + idle_manager_->UpdateIdleState();
|
| + testing::Mock::VerifyAndClearExpectations(event_delegate_);
|
| + }
|
| +}
|
| +
|
| } // namespace extensions
|
|
|