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 |