Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(194)

Side by Side Diff: chrome/browser/chromeos/kiosk_mode/kiosk_mode_screensaver_unittest.cc

Issue 9826010: Made a ScopedMockUserManagerEnabler to simplify UserManager mocking life-cycle. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698