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

Side by Side Diff: chrome/browser/chromeos/login/update_screen_browsertest.cc

Issue 8585025: chromeos: Change all clients of UpdateLibrary to use UpdateEngineClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address comments Created 9 years 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "chrome/browser/chromeos/cros/mock_network_library.h" 6 #include "chrome/browser/chromeos/cros/mock_network_library.h"
7 #include "chrome/browser/chromeos/cros/mock_update_library.h"
8 #include "chrome/browser/chromeos/dbus/mock_dbus_thread_manager.h" 7 #include "chrome/browser/chromeos/dbus/mock_dbus_thread_manager.h"
9 #include "chrome/browser/chromeos/dbus/mock_session_manager_client.h" 8 #include "chrome/browser/chromeos/dbus/mock_session_manager_client.h"
9 #include "chrome/browser/chromeos/dbus/mock_update_engine_client.h"
10 #include "chrome/browser/chromeos/login/mock_screen_observer.h" 10 #include "chrome/browser/chromeos/login/mock_screen_observer.h"
11 #include "chrome/browser/chromeos/login/update_screen.h" 11 #include "chrome/browser/chromeos/login/update_screen.h"
12 #include "chrome/browser/chromeos/login/wizard_controller.h" 12 #include "chrome/browser/chromeos/login/wizard_controller.h"
13 #include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h" 13 #include "chrome/browser/chromeos/login/wizard_in_process_browser_test.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 15
16 namespace chromeos { 16 namespace chromeos {
17 using ::testing::_; 17 using ::testing::_;
18 using ::testing::AnyNumber; 18 using ::testing::AnyNumber;
19 using ::testing::AtLeast; 19 using ::testing::AtLeast;
20 using ::testing::Return; 20 using ::testing::Return;
21 using ::testing::ReturnRef; 21 using ::testing::ReturnRef;
22 using ::testing::Invoke; 22 using ::testing::Invoke;
23 using chromeos::UpdateEngineClient;
23 24
24 static void RequestUpdateCheckSuccess(UpdateCallback callback, void* userdata) { 25 static void RequestUpdateCheckSuccess(
25 callback(userdata, chromeos::UPDATE_RESULT_SUCCESS, NULL); 26 UpdateEngineClient::UpdateCheckCallback callback) {
27 callback.Run(UpdateEngineClient::UPDATE_RESULT_SUCCESS);
26 } 28 }
27 29
28 class UpdateScreenTest : public WizardInProcessBrowserTest { 30 class UpdateScreenTest : public WizardInProcessBrowserTest {
29 public: 31 public:
30 UpdateScreenTest() : WizardInProcessBrowserTest("update"), 32 UpdateScreenTest() : WizardInProcessBrowserTest("update"),
31 mock_update_library_(NULL), 33 mock_update_engine_client_(NULL),
32 mock_network_library_(NULL) {} 34 mock_network_library_(NULL) {}
33 35
34 protected: 36 protected:
35 virtual void SetUpInProcessBrowserTestFixture() { 37 virtual void SetUpInProcessBrowserTestFixture() {
36 MockDBusThreadManager* mock_dbus_thread_manager = 38 MockDBusThreadManager* mock_dbus_thread_manager =
37 new MockDBusThreadManager; 39 new MockDBusThreadManager;
38 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); 40 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager);
39 WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture(); 41 WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture();
40 cros_mock_->InitStatusAreaMocks(); 42 cros_mock_->InitStatusAreaMocks();
41 cros_mock_->SetStatusAreaMocksExpectations(); 43 cros_mock_->SetStatusAreaMocksExpectations();
42 44
43 MockSessionManagerClient* mock_session_manager_client 45 MockSessionManagerClient* mock_session_manager_client
44 = mock_dbus_thread_manager->mock_session_manager_client(); 46 = mock_dbus_thread_manager->mock_session_manager_client();
45 EXPECT_CALL(*mock_session_manager_client, EmitLoginPromptReady()) 47 EXPECT_CALL(*mock_session_manager_client, EmitLoginPromptReady())
46 .Times(1); 48 .Times(1);
47 49
48 mock_update_library_ = new MockUpdateLibrary(); 50 mock_update_engine_client_
49 cros_mock_->test_api()->SetUpdateLibrary(mock_update_library_, true); 51 = mock_dbus_thread_manager->mock_update_engine_client();
50 52
51 // UpdateScreen::StartUpdate() will be called by the WizardController 53 // UpdateScreen::StartUpdate() will be called by the WizardController
52 // just after creating the update screen, so the expectations for that 54 // just after creating the update screen, so the expectations for that
53 // should be set up here. 55 // should be set up here.
54 EXPECT_CALL(*mock_update_library_, AddObserver(_)) 56 EXPECT_CALL(*mock_update_engine_client_, AddObserver(_))
55 .Times(AtLeast(1)); 57 .Times(AtLeast(1));
56 EXPECT_CALL(*mock_update_library_, RemoveObserver(_)) 58 EXPECT_CALL(*mock_update_engine_client_, RemoveObserver(_))
57 .Times(AtLeast(1)); 59 .Times(AtLeast(1));
58 EXPECT_CALL(*mock_update_library_, RequestUpdateCheck(_,_)) 60 EXPECT_CALL(*mock_update_engine_client_, RequestUpdateCheck(_))
59 .Times(1) 61 .Times(1)
60 .WillOnce(Invoke(RequestUpdateCheckSuccess)); 62 .WillOnce(Invoke(RequestUpdateCheckSuccess));
61 63
62 mock_network_library_ = cros_mock_->mock_network_library(); 64 mock_network_library_ = cros_mock_->mock_network_library();
63 EXPECT_CALL(*mock_network_library_, Connected()) 65 EXPECT_CALL(*mock_network_library_, Connected())
64 .Times(1) // also called by NetworkMenu::InitMenuItems() 66 .Times(1) // also called by NetworkMenu::InitMenuItems()
65 .WillRepeatedly((Return(false))) 67 .WillRepeatedly((Return(false)))
66 .RetiresOnSaturation(); 68 .RetiresOnSaturation();
67 EXPECT_CALL(*mock_network_library_, AddNetworkManagerObserver(_)) 69 EXPECT_CALL(*mock_network_library_, AddNetworkManagerObserver(_))
68 .Times(1) 70 .Times(1)
69 .RetiresOnSaturation(); 71 .RetiresOnSaturation();
70 EXPECT_CALL(*mock_network_library_, FindWifiDevice()) 72 EXPECT_CALL(*mock_network_library_, FindWifiDevice())
71 .Times(AnyNumber()); 73 .Times(AnyNumber());
72 EXPECT_CALL(*mock_network_library_, FindEthernetDevice()) 74 EXPECT_CALL(*mock_network_library_, FindEthernetDevice())
73 .Times(AnyNumber()); 75 .Times(AnyNumber());
74 } 76 }
75 77
76 virtual void SetUpOnMainThread() { 78 virtual void SetUpOnMainThread() {
77 mock_screen_observer_.reset(new MockScreenObserver()); 79 mock_screen_observer_.reset(new MockScreenObserver());
78 ASSERT_TRUE(controller() != NULL); 80 ASSERT_TRUE(controller() != NULL);
79 update_screen_ = controller()->GetUpdateScreen(); 81 update_screen_ = controller()->GetUpdateScreen();
80 ASSERT_TRUE(update_screen_ != NULL); 82 ASSERT_TRUE(update_screen_ != NULL);
81 ASSERT_EQ(controller()->current_screen(), update_screen_); 83 ASSERT_EQ(controller()->current_screen(), update_screen_);
82 update_screen_->screen_observer_ = mock_screen_observer_.get(); 84 update_screen_->screen_observer_ = mock_screen_observer_.get();
83 } 85 }
84 86
85 virtual void TearDownInProcessBrowserTestFixture() { 87 virtual void TearDownInProcessBrowserTestFixture() {
86 update_screen_->screen_observer_ = (controller()); 88 update_screen_->screen_observer_ = (controller());
87 cros_mock_->test_api()->SetUpdateLibrary(NULL, true);
88 WizardInProcessBrowserTest::TearDownInProcessBrowserTestFixture(); 89 WizardInProcessBrowserTest::TearDownInProcessBrowserTestFixture();
89 DBusThreadManager::Shutdown(); 90 DBusThreadManager::Shutdown();
90 } 91 }
91 92
92 MockUpdateLibrary* mock_update_library_; 93 MockUpdateEngineClient* mock_update_engine_client_;
93 MockNetworkLibrary* mock_network_library_; 94 MockNetworkLibrary* mock_network_library_;
94 95
95 scoped_ptr<MockScreenObserver> mock_screen_observer_; 96 scoped_ptr<MockScreenObserver> mock_screen_observer_;
96 UpdateScreen* update_screen_; 97 UpdateScreen* update_screen_;
97 98
98 private: 99 private:
99 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest); 100 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest);
100 }; 101 };
101 102
102 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestBasic) { 103 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestBasic) {
103 ASSERT_TRUE(update_screen_->actor_ != NULL); 104 ASSERT_TRUE(update_screen_->actor_ != NULL);
104 } 105 }
105 106
106 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestNoUpdate) { 107 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestNoUpdate) {
107 update_screen_->SetIgnoreIdleStatus(true); 108 update_screen_->SetIgnoreIdleStatus(true);
108 UpdateLibrary::Status status; 109 UpdateEngineClient::Status status;
109 status.status = UPDATE_STATUS_IDLE; 110 status.status = UpdateEngineClient::UPDATE_STATUS_IDLE;
110 update_screen_->UpdateStatusChanged(status); 111 update_screen_->UpdateStatusChanged(status);
111 status.status = UPDATE_STATUS_CHECKING_FOR_UPDATE; 112 status.status = UpdateEngineClient::UPDATE_STATUS_CHECKING_FOR_UPDATE;
112 update_screen_->UpdateStatusChanged(status); 113 update_screen_->UpdateStatusChanged(status);
113 status.status = UPDATE_STATUS_IDLE; 114 status.status = UpdateEngineClient::UPDATE_STATUS_IDLE;
114 // status() will be called via ExitUpdate() called from 115 // GetLastStatus() will be called via ExitUpdate() called from
115 // UpdateStatusChanged(). 116 // UpdateStatusChanged().
116 EXPECT_CALL(*mock_update_library_, status()) 117 EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
117 .Times(AtLeast(1)) 118 .Times(AtLeast(1))
118 .WillRepeatedly(ReturnRef(status)); 119 .WillRepeatedly(Return(status));
119 EXPECT_CALL(*mock_screen_observer_, OnExit(ScreenObserver::UPDATE_NOUPDATE)) 120 EXPECT_CALL(*mock_screen_observer_, OnExit(ScreenObserver::UPDATE_NOUPDATE))
120 .Times(1); 121 .Times(1);
121 update_screen_->UpdateStatusChanged(status); 122 update_screen_->UpdateStatusChanged(status);
122 } 123 }
123 124
124 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) { 125 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) {
125 update_screen_->is_ignore_update_deadlines_ = true; 126 update_screen_->is_ignore_update_deadlines_ = true;
126 127
127 UpdateLibrary::Status status; 128 UpdateEngineClient::Status status;
128 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; 129 status.status = UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE;
129 status.new_version = "latest and greatest"; 130 status.new_version = "latest and greatest";
130 update_screen_->UpdateStatusChanged(status); 131 update_screen_->UpdateStatusChanged(status);
131 132
132 status.status = UPDATE_STATUS_DOWNLOADING; 133 status.status = UpdateEngineClient::UPDATE_STATUS_DOWNLOADING;
133 status.download_progress = 0.0; 134 status.download_progress = 0.0;
134 update_screen_->UpdateStatusChanged(status); 135 update_screen_->UpdateStatusChanged(status);
135 136
136 status.download_progress = 0.5; 137 status.download_progress = 0.5;
137 update_screen_->UpdateStatusChanged(status); 138 update_screen_->UpdateStatusChanged(status);
138 139
139 status.download_progress = 1.0; 140 status.download_progress = 1.0;
140 update_screen_->UpdateStatusChanged(status); 141 update_screen_->UpdateStatusChanged(status);
141 142
142 status.status = UPDATE_STATUS_VERIFYING; 143 status.status = UpdateEngineClient::UPDATE_STATUS_VERIFYING;
143 update_screen_->UpdateStatusChanged(status); 144 update_screen_->UpdateStatusChanged(status);
144 145
145 status.status = UPDATE_STATUS_FINALIZING; 146 status.status = UpdateEngineClient::UPDATE_STATUS_FINALIZING;
146 update_screen_->UpdateStatusChanged(status); 147 update_screen_->UpdateStatusChanged(status);
147 148
148 status.status = UPDATE_STATUS_UPDATED_NEED_REBOOT; 149 status.status = UpdateEngineClient::UPDATE_STATUS_UPDATED_NEED_REBOOT;
149 EXPECT_CALL(*mock_update_library_, RebootAfterUpdate()) 150 EXPECT_CALL(*mock_update_engine_client_, RebootAfterUpdate())
150 .Times(1); 151 .Times(1);
151 update_screen_->UpdateStatusChanged(status); 152 update_screen_->UpdateStatusChanged(status);
152 } 153 }
153 154
154 static void RequestUpdateCheckFail(UpdateCallback callback, void* userdata) { 155 static void RequestUpdateCheckFail(
155 callback(userdata, chromeos::UPDATE_RESULT_FAILED, NULL); 156 UpdateEngineClient::UpdateCheckCallback callback) {
157 callback.Run(chromeos::UpdateEngineClient::UPDATE_RESULT_FAILED);
156 } 158 }
157 159
158 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) { 160 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) {
159 // First, cancel the update that is already in progress. 161 // First, cancel the update that is already in progress.
160 EXPECT_CALL(*mock_screen_observer_, 162 EXPECT_CALL(*mock_screen_observer_,
161 OnExit(ScreenObserver::UPDATE_NOUPDATE)) 163 OnExit(ScreenObserver::UPDATE_NOUPDATE))
162 .Times(1); 164 .Times(1);
163 update_screen_->CancelUpdate(); 165 update_screen_->CancelUpdate();
164 166
165 // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail 167 // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail
166 // issuing the update check this time. 168 // issuing the update check this time.
167 EXPECT_CALL(*mock_update_library_, AddObserver(_)) 169 EXPECT_CALL(*mock_update_engine_client_, AddObserver(_))
168 .Times(1); 170 .Times(1);
169 EXPECT_CALL(*mock_update_library_, RemoveObserver(_)) 171 EXPECT_CALL(*mock_update_engine_client_, RemoveObserver(_))
170 .Times(AtLeast(1)); 172 .Times(AtLeast(1));
171 EXPECT_CALL(*mock_update_library_, RequestUpdateCheck(_,_)) 173 EXPECT_CALL(*mock_update_engine_client_, RequestUpdateCheck(_))
172 .Times(1) 174 .Times(1)
173 .WillOnce(Invoke(RequestUpdateCheckFail)); 175 .WillOnce(Invoke(RequestUpdateCheckFail));
174 EXPECT_CALL(*mock_screen_observer_, 176 EXPECT_CALL(*mock_screen_observer_,
175 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) 177 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
176 .Times(1); 178 .Times(1);
177 update_screen_->StartUpdate(); 179 update_screen_->StartUpdate();
178 } 180 }
179 181
180 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorCheckingForUpdate) { 182 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorCheckingForUpdate) {
181 UpdateLibrary::Status status; 183 UpdateEngineClient::Status status;
182 status.status = UPDATE_STATUS_ERROR; 184 status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
183 // status() will be called via ExitUpdate() called from 185 // GetLastStatus() will be called via ExitUpdate() called from
184 // UpdateStatusChanged(). 186 // UpdateStatusChanged().
185 EXPECT_CALL(*mock_update_library_, status()) 187 EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
186 .Times(AtLeast(1)) 188 .Times(AtLeast(1))
187 .WillRepeatedly(ReturnRef(status)); 189 .WillRepeatedly(Return(status));
188 EXPECT_CALL(*mock_screen_observer_, 190 EXPECT_CALL(*mock_screen_observer_,
189 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) 191 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
190 .Times(1); 192 .Times(1);
191 update_screen_->UpdateStatusChanged(status); 193 update_screen_->UpdateStatusChanged(status);
192 } 194 }
193 195
194 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorUpdating) { 196 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorUpdating) {
195 UpdateLibrary::Status status; 197 UpdateEngineClient::Status status;
196 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; 198 status.status = UpdateEngineClient::UPDATE_STATUS_UPDATE_AVAILABLE;
197 status.new_version = "latest and greatest"; 199 status.new_version = "latest and greatest";
198 // status() will be called via ExitUpdate() called from 200 // GetLastStatus() will be called via ExitUpdate() called from
199 // UpdateStatusChanged(). 201 // UpdateStatusChanged().
200 EXPECT_CALL(*mock_update_library_, status()) 202 EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
201 .Times(AtLeast(1)) 203 .Times(AtLeast(1))
202 .WillRepeatedly(ReturnRef(status)); 204 .WillRepeatedly(Return(status));
203 update_screen_->UpdateStatusChanged(status); 205 update_screen_->UpdateStatusChanged(status);
204 206
205 status.status = UPDATE_STATUS_ERROR; 207 status.status = UpdateEngineClient::UPDATE_STATUS_ERROR;
206 // status() will be called via ExitUpdate() called from 208 // GetLastStatus() will be called via ExitUpdate() called from
207 // UpdateStatusChanged(). 209 // UpdateStatusChanged().
208 EXPECT_CALL(*mock_update_library_, status()) 210 EXPECT_CALL(*mock_update_engine_client_, GetLastStatus())
209 .Times(AtLeast(1)) 211 .Times(AtLeast(1))
210 .WillRepeatedly(ReturnRef(status)); 212 .WillRepeatedly(Return(status));
211 EXPECT_CALL(*mock_screen_observer_, 213 EXPECT_CALL(*mock_screen_observer_,
212 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING)) 214 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING))
213 .Times(1); 215 .Times(1);
214 update_screen_->UpdateStatusChanged(status); 216 update_screen_->UpdateStatusChanged(status);
215 } 217 }
216 218
217 } // namespace chromeos 219 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/update_screen.cc ('k') | chrome/browser/chromeos/upgrade_detector_chromeos.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698