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

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

Issue 7039042: [cros] update screen re-factoring pt.1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: browser_tests Created 9 years, 7 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) 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 "chrome/browser/chromeos/cros/mock_login_library.h" 5 #include "chrome/browser/chromeos/cros/mock_login_library.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" 7 #include "chrome/browser/chromeos/cros/mock_update_library.h"
8 #include "chrome/browser/chromeos/login/mock_screen_observer.h" 8 #include "chrome/browser/chromeos/login/mock_screen_observer.h"
9 #include "chrome/browser/chromeos/login/update_screen.h" 9 #include "chrome/browser/chromeos/login/update_screen.h"
10 #include "chrome/browser/chromeos/login/wizard_controller.h" 10 #include "chrome/browser/chromeos/login/wizard_controller.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 .RetiresOnSaturation(); 63 .RetiresOnSaturation();
64 EXPECT_CALL(*mock_network_library_, AddNetworkManagerObserver(_)) 64 EXPECT_CALL(*mock_network_library_, AddNetworkManagerObserver(_))
65 .Times(1) 65 .Times(1)
66 .RetiresOnSaturation(); 66 .RetiresOnSaturation();
67 EXPECT_CALL(*mock_network_library_, FindWifiDevice()) 67 EXPECT_CALL(*mock_network_library_, FindWifiDevice())
68 .Times(AnyNumber()); 68 .Times(AnyNumber());
69 EXPECT_CALL(*mock_network_library_, FindEthernetDevice()) 69 EXPECT_CALL(*mock_network_library_, FindEthernetDevice())
70 .Times(AnyNumber()); 70 .Times(AnyNumber());
71 } 71 }
72 72
73 virtual void SetUpOnMainThread() {
74 mock_screen_observer_.reset(new MockScreenObserver());
75 ASSERT_TRUE(controller() != NULL);
76 controller()->set_observer(mock_screen_observer_.get());
77 update_screen_ = controller()->GetUpdateScreen();
78 ASSERT_TRUE(update_screen_ != NULL);
79 ASSERT_EQ(controller()->current_screen(), update_screen_);
80 }
81
73 virtual void TearDownInProcessBrowserTestFixture() { 82 virtual void TearDownInProcessBrowserTestFixture() {
83 controller()->set_observer(NULL);
74 cros_mock_->test_api()->SetUpdateLibrary(NULL, true); 84 cros_mock_->test_api()->SetUpdateLibrary(NULL, true);
75 WizardInProcessBrowserTest::TearDownInProcessBrowserTestFixture(); 85 WizardInProcessBrowserTest::TearDownInProcessBrowserTestFixture();
76 } 86 }
77 87
88 void UpdateStatusChanged() {
89 static_cast<UpdateLibrary::Observer*>(update_screen_)->
Paweł Hajdan Jr. 2011/05/19 14:23:42 This is worrying - UpdateScreen inherits from Upda
altimofeev 2011/05/19 14:58:41 I don't want this method to be used by anyone, exc
Paweł Hajdan Jr. 2011/05/19 16:22:07 I think we generally don't bother with making inte
altimofeev 2011/05/20 09:22:41 Returned back to the public variant. Sorry for dis
90 UpdateStatusChanged(mock_update_library_);
91 }
92
78 MockLoginLibrary* mock_login_library_; 93 MockLoginLibrary* mock_login_library_;
79 MockUpdateLibrary* mock_update_library_; 94 MockUpdateLibrary* mock_update_library_;
80 MockNetworkLibrary* mock_network_library_; 95 MockNetworkLibrary* mock_network_library_;
81 96
97 scoped_ptr<MockScreenObserver> mock_screen_observer_;
98 UpdateScreen* update_screen_;
99
82 private: 100 private:
83 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest); 101 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest);
84 }; 102 };
85 103
86 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestBasic) { 104 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestBasic) {
87 ASSERT_TRUE(controller() != NULL); 105 ASSERT_TRUE(update_screen_->actor_.get() != NULL);
88 scoped_ptr<MockScreenObserver> mock_screen_observer(new MockScreenObserver());
89 controller()->set_observer(mock_screen_observer.get());
90 UpdateScreen* update_screen = controller()->GetUpdateScreen();
91 ASSERT_TRUE(update_screen != NULL);
92 ASSERT_EQ(controller()->current_screen(), update_screen);
93 UpdateView* update_view = update_screen->view();
94 ASSERT_TRUE(update_view != NULL);
95 controller()->set_observer(NULL);
96 } 106 }
97 107
98 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestNoUpdate) { 108 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestNoUpdate) {
99 ASSERT_TRUE(controller() != NULL);
100 scoped_ptr<MockScreenObserver> mock_screen_observer(new MockScreenObserver());
101 controller()->set_observer(mock_screen_observer.get());
102 UpdateScreen* update_screen = controller()->GetUpdateScreen();
103 ASSERT_TRUE(update_screen != NULL);
104 ASSERT_EQ(controller()->current_screen(), update_screen);
105
106 UpdateLibrary::Status status; 109 UpdateLibrary::Status status;
107 status.status = UPDATE_STATUS_IDLE; 110 status.status = UPDATE_STATUS_IDLE;
108 EXPECT_CALL(*mock_update_library_, status()) 111 EXPECT_CALL(*mock_update_library_, status())
109 .Times(AtLeast(1)) 112 .Times(AtLeast(1))
110 .WillRepeatedly(ReturnRef(status)); 113 .WillRepeatedly(ReturnRef(status));
111 EXPECT_CALL(*mock_screen_observer, OnExit(ScreenObserver::UPDATE_NOUPDATE)) 114 EXPECT_CALL(*mock_screen_observer_, OnExit(ScreenObserver::UPDATE_NOUPDATE))
112 .Times(1); 115 .Times(1);
113 update_screen->UpdateStatusChanged(mock_update_library_); 116 UpdateStatusChanged();
114
115 controller()->set_observer(NULL);
116 } 117 }
117 118
118 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) { 119 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) {
119 ASSERT_TRUE(controller() != NULL); 120 update_screen_->SetAllUpdatesCritical(true);
120 scoped_ptr<MockScreenObserver> mock_screen_observer(new MockScreenObserver());
121 controller()->set_observer(mock_screen_observer.get());
122 UpdateScreen* update_screen = controller()->GetUpdateScreen();
123 ASSERT_TRUE(update_screen != NULL);
124 ASSERT_EQ(controller()->current_screen(), update_screen);
125 update_screen->SetAllUpdatesCritical(true);
126 121
127 UpdateLibrary::Status status; 122 UpdateLibrary::Status status;
128 123
129 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; 124 status.status = UPDATE_STATUS_UPDATE_AVAILABLE;
130 status.new_version = "latest and greatest"; 125 status.new_version = "latest and greatest";
131 EXPECT_CALL(*mock_update_library_, status()) 126 EXPECT_CALL(*mock_update_library_, status())
132 .Times(AtLeast(1)) 127 .Times(AtLeast(1))
133 .WillRepeatedly(ReturnRef(status)); 128 .WillRepeatedly(ReturnRef(status));
134 update_screen->UpdateStatusChanged(mock_update_library_); 129 UpdateStatusChanged();
135 130
136 status.status = UPDATE_STATUS_DOWNLOADING; 131 status.status = UPDATE_STATUS_DOWNLOADING;
137 status.download_progress = 0.0; 132 status.download_progress = 0.0;
138 EXPECT_CALL(*mock_update_library_, status()) 133 EXPECT_CALL(*mock_update_library_, status())
139 .Times(AtLeast(1)) 134 .Times(AtLeast(1))
140 .WillRepeatedly(ReturnRef(status)); 135 .WillRepeatedly(ReturnRef(status));
141 update_screen->UpdateStatusChanged(mock_update_library_); 136 UpdateStatusChanged();
142 137
143 status.download_progress = 0.5; 138 status.download_progress = 0.5;
144 EXPECT_CALL(*mock_update_library_, status()) 139 EXPECT_CALL(*mock_update_library_, status())
145 .Times(AtLeast(1)) 140 .Times(AtLeast(1))
146 .WillRepeatedly(ReturnRef(status)); 141 .WillRepeatedly(ReturnRef(status));
147 update_screen->UpdateStatusChanged(mock_update_library_); 142 UpdateStatusChanged();
148 143
149 status.download_progress = 1.0; 144 status.download_progress = 1.0;
150 EXPECT_CALL(*mock_update_library_, status()) 145 EXPECT_CALL(*mock_update_library_, status())
151 .Times(AtLeast(1)) 146 .Times(AtLeast(1))
152 .WillRepeatedly(ReturnRef(status)); 147 .WillRepeatedly(ReturnRef(status));
153 update_screen->UpdateStatusChanged(mock_update_library_); 148 UpdateStatusChanged();
154 149
155 status.status = UPDATE_STATUS_VERIFYING; 150 status.status = UPDATE_STATUS_VERIFYING;
156 EXPECT_CALL(*mock_update_library_, status()) 151 EXPECT_CALL(*mock_update_library_, status())
157 .Times(AtLeast(1)) 152 .Times(AtLeast(1))
158 .WillRepeatedly(ReturnRef(status)); 153 .WillRepeatedly(ReturnRef(status));
159 update_screen->UpdateStatusChanged(mock_update_library_); 154 UpdateStatusChanged();
160 155
161 status.status = UPDATE_STATUS_FINALIZING; 156 status.status = UPDATE_STATUS_FINALIZING;
162 EXPECT_CALL(*mock_update_library_, status()) 157 EXPECT_CALL(*mock_update_library_, status())
163 .Times(AtLeast(1)) 158 .Times(AtLeast(1))
164 .WillRepeatedly(ReturnRef(status)); 159 .WillRepeatedly(ReturnRef(status));
165 update_screen->UpdateStatusChanged(mock_update_library_); 160 UpdateStatusChanged();
166 161
167 status.status = UPDATE_STATUS_UPDATED_NEED_REBOOT; 162 status.status = UPDATE_STATUS_UPDATED_NEED_REBOOT;
168 EXPECT_CALL(*mock_update_library_, status()) 163 EXPECT_CALL(*mock_update_library_, status())
169 .Times(AtLeast(1)) 164 .Times(AtLeast(1))
170 .WillRepeatedly(ReturnRef(status)); 165 .WillRepeatedly(ReturnRef(status));
171 EXPECT_CALL(*mock_update_library_, RebootAfterUpdate()) 166 EXPECT_CALL(*mock_update_library_, RebootAfterUpdate())
172 .Times(1); 167 .Times(1);
173 update_screen->UpdateStatusChanged(mock_update_library_); 168 UpdateStatusChanged();
174
175 controller()->set_observer(NULL);
176 } 169 }
177 170
178 static void RequestUpdateCheckFail(UpdateCallback callback, void* userdata) { 171 static void RequestUpdateCheckFail(UpdateCallback callback, void* userdata) {
179 callback(userdata, chromeos::UPDATE_RESULT_FAILED, NULL); 172 callback(userdata, chromeos::UPDATE_RESULT_FAILED, NULL);
180 } 173 }
181 174
182 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) { 175 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) {
183 ASSERT_TRUE(controller() != NULL);
184 scoped_ptr<MockScreenObserver> mock_screen_observer(new MockScreenObserver());
185 controller()->set_observer(mock_screen_observer.get());
186 UpdateScreen* update_screen = controller()->GetUpdateScreen();
187 ASSERT_TRUE(update_screen != NULL);
188 ASSERT_EQ(controller()->current_screen(), update_screen);
189
190 // First, cancel the update that is already in progress. 176 // First, cancel the update that is already in progress.
191 EXPECT_CALL(*mock_screen_observer, 177 EXPECT_CALL(*mock_screen_observer_,
192 OnExit(ScreenObserver::UPDATE_NOUPDATE)) 178 OnExit(ScreenObserver::UPDATE_NOUPDATE))
193 .Times(1); 179 .Times(1);
194 update_screen->CancelUpdate(); 180 update_screen_->CancelUpdate();
195 181
196 // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail 182 // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail
197 // issuing the update check this time. 183 // issuing the update check this time.
198 EXPECT_CALL(*mock_update_library_, AddObserver(_)) 184 EXPECT_CALL(*mock_update_library_, AddObserver(_))
199 .Times(1); 185 .Times(1);
200 EXPECT_CALL(*mock_update_library_, RemoveObserver(_)) 186 EXPECT_CALL(*mock_update_library_, RemoveObserver(_))
201 .Times(AtLeast(1)); 187 .Times(AtLeast(1));
202 EXPECT_CALL(*mock_update_library_, RequestUpdateCheck(_,_)) 188 EXPECT_CALL(*mock_update_library_, RequestUpdateCheck(_,_))
203 .Times(1) 189 .Times(1)
204 .WillOnce(Invoke(RequestUpdateCheckFail)); 190 .WillOnce(Invoke(RequestUpdateCheckFail));
205 EXPECT_CALL(*mock_screen_observer, 191 EXPECT_CALL(*mock_screen_observer_,
206 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) 192 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
207 .Times(1); 193 .Times(1);
208 update_screen->StartUpdate(); 194 update_screen_->StartUpdate();
209
210 controller()->set_observer(NULL);
211 } 195 }
212 196
213 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorCheckingForUpdate) { 197 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorCheckingForUpdate) {
214 ASSERT_TRUE(controller() != NULL);
215 scoped_ptr<MockScreenObserver> mock_screen_observer(new MockScreenObserver());
216 controller()->set_observer(mock_screen_observer.get());
217 UpdateScreen* update_screen = controller()->GetUpdateScreen();
218 ASSERT_TRUE(update_screen != NULL);
219 ASSERT_EQ(controller()->current_screen(), update_screen);
220
221 UpdateLibrary::Status status; 198 UpdateLibrary::Status status;
222 status.status = UPDATE_STATUS_ERROR; 199 status.status = UPDATE_STATUS_ERROR;
223 EXPECT_CALL(*mock_update_library_, status()) 200 EXPECT_CALL(*mock_update_library_, status())
224 .Times(AtLeast(1)) 201 .Times(AtLeast(1))
225 .WillRepeatedly(ReturnRef(status)); 202 .WillRepeatedly(ReturnRef(status));
226 EXPECT_CALL(*mock_screen_observer, 203 EXPECT_CALL(*mock_screen_observer_,
227 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) 204 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE))
228 .Times(1); 205 .Times(1);
229 update_screen->UpdateStatusChanged(mock_update_library_); 206 UpdateStatusChanged();
230
231 controller()->set_observer(NULL);
232 } 207 }
233 208
234 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorUpdating) { 209 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorUpdating) {
235 ASSERT_TRUE(controller() != NULL);
236 scoped_ptr<MockScreenObserver> mock_screen_observer(new MockScreenObserver());
237 controller()->set_observer(mock_screen_observer.get());
238 UpdateScreen* update_screen = controller()->GetUpdateScreen();
239 ASSERT_TRUE(update_screen != NULL);
240 ASSERT_EQ(controller()->current_screen(), update_screen);
241
242 UpdateLibrary::Status status; 210 UpdateLibrary::Status status;
243
244 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; 211 status.status = UPDATE_STATUS_UPDATE_AVAILABLE;
245 status.new_version = "latest and greatest"; 212 status.new_version = "latest and greatest";
246 EXPECT_CALL(*mock_update_library_, status()) 213 EXPECT_CALL(*mock_update_library_, status())
247 .Times(AtLeast(1)) 214 .Times(AtLeast(1))
248 .WillRepeatedly(ReturnRef(status)); 215 .WillRepeatedly(ReturnRef(status));
249 update_screen->UpdateStatusChanged(mock_update_library_); 216 UpdateStatusChanged();
250 217
251 status.status = UPDATE_STATUS_ERROR; 218 status.status = UPDATE_STATUS_ERROR;
252 EXPECT_CALL(*mock_update_library_, status()) 219 EXPECT_CALL(*mock_update_library_, status())
253 .Times(AtLeast(1)) 220 .Times(AtLeast(1))
254 .WillRepeatedly(ReturnRef(status)); 221 .WillRepeatedly(ReturnRef(status));
255 EXPECT_CALL(*mock_screen_observer, 222 EXPECT_CALL(*mock_screen_observer_,
256 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING)) 223 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING))
257 .Times(1); 224 .Times(1);
258 update_screen->UpdateStatusChanged(mock_update_library_); 225 UpdateStatusChanged();
259
260 controller()->set_observer(NULL);
261 } 226 }
262 227
263 } // namespace chromeos 228 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/login/update_screen_actor.h ('k') | chrome/browser/chromeos/login/update_screen_views_actor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698