| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h" | 5 #include "chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
| 10 #include "base/synchronization/waitable_event.h" | 10 #include "base/synchronization/waitable_event.h" |
| (...skipping 27 matching lines...) Expand all Loading... |
| 38 | 38 |
| 39 class KioskModeScreensaverTest : public testing::Test { | 39 class KioskModeScreensaverTest : public testing::Test { |
| 40 public: | 40 public: |
| 41 KioskModeScreensaverTest() | 41 KioskModeScreensaverTest() |
| 42 : ui_thread_(BrowserThread::UI, &message_loop_), | 42 : ui_thread_(BrowserThread::UI, &message_loop_), |
| 43 screensaver_(NULL), | 43 screensaver_(NULL), |
| 44 observer_(NULL) { | 44 observer_(NULL) { |
| 45 } | 45 } |
| 46 | 46 |
| 47 virtual void SetUp() OVERRIDE { | 47 virtual void SetUp() OVERRIDE { |
| 48 mock_user_manager_.reset(new MockUserManager()); | 48 EXPECT_CALL(*mock_user_manager_.user_manager(), IsUserLoggedIn()) |
| 49 old_user_manager_ = UserManager::Set(mock_user_manager_.get()); | |
| 50 EXPECT_CALL(*mock_user_manager_, IsUserLoggedIn()) | |
| 51 .Times(AnyNumber()) | 49 .Times(AnyNumber()) |
| 52 .WillRepeatedly(Return(false)); | 50 .WillRepeatedly(Return(false)); |
| 53 | 51 |
| 54 MockDBusThreadManager* mock_dbus_thread_manager = | 52 MockDBusThreadManager* mock_dbus_thread_manager = |
| 55 new MockDBusThreadManager; | 53 new MockDBusThreadManager; |
| 56 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); | 54 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); |
| 57 | 55 |
| 58 MockPowerManagerClient* power_manager = | 56 MockPowerManagerClient* power_manager = |
| 59 mock_dbus_thread_manager->mock_power_manager_client(); | 57 mock_dbus_thread_manager->mock_power_manager_client(); |
| 60 EXPECT_CALL(*power_manager, HasObserver(_)) | 58 EXPECT_CALL(*power_manager, HasObserver(_)) |
| 61 .Times(AnyNumber()) | 59 .Times(AnyNumber()) |
| 62 .WillRepeatedly(HasObserver(&observer_)); | 60 .WillRepeatedly(HasObserver(&observer_)); |
| 63 EXPECT_CALL(*power_manager, AddObserver(_)) | 61 EXPECT_CALL(*power_manager, AddObserver(_)) |
| 64 .WillOnce(SaveArg<0>(&observer_)); | 62 .WillOnce(SaveArg<0>(&observer_)); |
| 65 EXPECT_CALL(*power_manager, RemoveObserver(_)) | 63 EXPECT_CALL(*power_manager, RemoveObserver(_)) |
| 66 .WillOnce(RemoveObserver(&observer_)); | 64 .WillOnce(RemoveObserver(&observer_)); |
| 67 EXPECT_CALL(*power_manager, RequestIdleNotification(_)) | 65 EXPECT_CALL(*power_manager, RequestIdleNotification(_)) |
| 68 .Times(AnyNumber()); | 66 .Times(AnyNumber()); |
| 69 | 67 |
| 70 screensaver_ = new KioskModeScreensaver(); | 68 screensaver_ = new KioskModeScreensaver(); |
| 71 } | 69 } |
| 72 | 70 |
| 73 virtual void TearDown() OVERRIDE { | 71 virtual void TearDown() OVERRIDE { |
| 74 delete screensaver_; | 72 delete screensaver_; |
| 75 UserManager::Set(old_user_manager_); | |
| 76 DBusThreadManager::Shutdown(); | 73 DBusThreadManager::Shutdown(); |
| 77 } | 74 } |
| 78 | 75 |
| 79 bool LoginUserObserverRegistered() { | 76 bool LoginUserObserverRegistered() { |
| 80 return screensaver_->registrar_.IsRegistered( | 77 return screensaver_->registrar_.IsRegistered( |
| 81 screensaver_, | 78 screensaver_, |
| 82 chrome::NOTIFICATION_SESSION_STARTED, | 79 chrome::NOTIFICATION_SESSION_STARTED, |
| 83 content::NotificationService::AllSources()); | 80 content::NotificationService::AllSources()); |
| 84 } | 81 } |
| 85 | 82 |
| 86 bool PowerManagerObserverRegistered() { | 83 bool PowerManagerObserverRegistered() { |
| 87 PowerManagerClient* power_manager = | 84 PowerManagerClient* power_manager = |
| 88 DBusThreadManager::Get()->GetPowerManagerClient(); | 85 DBusThreadManager::Get()->GetPowerManagerClient(); |
| 89 return power_manager->HasObserver(screensaver_); | 86 return power_manager->HasObserver(screensaver_); |
| 90 } | 87 } |
| 91 | 88 |
| 92 MessageLoopForUI message_loop_; | 89 MessageLoopForUI message_loop_; |
| 93 content::TestBrowserThread ui_thread_; | 90 content::TestBrowserThread ui_thread_; |
| 94 | 91 |
| 95 scoped_ptr<MockUserManager> mock_user_manager_; | 92 ScopedMockUserManagerEnabler mock_user_manager_; |
| 96 UserManager* old_user_manager_; | |
| 97 | 93 |
| 98 KioskModeScreensaver* screensaver_; | 94 KioskModeScreensaver* screensaver_; |
| 99 content::NotificationRegistrar registrar_; | 95 content::NotificationRegistrar registrar_; |
| 100 | 96 |
| 101 PowerManagerClient::Observer* observer_; | 97 PowerManagerClient::Observer* observer_; |
| 102 }; | 98 }; |
| 103 | 99 |
| 104 TEST_F(KioskModeScreensaverTest, CheckObservers) { | 100 TEST_F(KioskModeScreensaverTest, CheckObservers) { |
| 105 EXPECT_TRUE(LoginUserObserverRegistered()); | 101 EXPECT_TRUE(LoginUserObserverRegistered()); |
| 106 EXPECT_TRUE(PowerManagerObserverRegistered()); | 102 EXPECT_TRUE(PowerManagerObserverRegistered()); |
| 107 } | 103 } |
| 108 | 104 |
| 109 TEST_F(KioskModeScreensaverTest, CheckObserversAfterUserLogin) { | 105 TEST_F(KioskModeScreensaverTest, CheckObserversAfterUserLogin) { |
| 110 content::NotificationService::current()->Notify( | 106 content::NotificationService::current()->Notify( |
| 111 chrome::NOTIFICATION_SESSION_STARTED, | 107 chrome::NOTIFICATION_SESSION_STARTED, |
| 112 content::Source<UserManager>(UserManager::Get()), | 108 content::Source<UserManager>(UserManager::Get()), |
| 113 content::NotificationService::NoDetails()); | 109 content::NotificationService::NoDetails()); |
| 114 | 110 |
| 115 EXPECT_FALSE(PowerManagerObserverRegistered()); | 111 EXPECT_FALSE(PowerManagerObserverRegistered()); |
| 116 } | 112 } |
| 117 | 113 |
| 118 } // namespace chromeos | 114 } // namespace chromeos |
| OLD | NEW |