OLD | NEW |
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 Loading... |
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 |
78 MockLoginLibrary* mock_login_library_; | 88 MockLoginLibrary* mock_login_library_; |
79 MockUpdateLibrary* mock_update_library_; | 89 MockUpdateLibrary* mock_update_library_; |
80 MockNetworkLibrary* mock_network_library_; | 90 MockNetworkLibrary* mock_network_library_; |
81 | 91 |
| 92 scoped_ptr<MockScreenObserver> mock_screen_observer_; |
| 93 UpdateScreen* update_screen_; |
| 94 |
82 private: | 95 private: |
83 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest); | 96 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest); |
84 }; | 97 }; |
85 | 98 |
86 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestBasic) { | 99 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestBasic) { |
87 ASSERT_TRUE(controller() != NULL); | 100 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 } | 101 } |
97 | 102 |
98 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestNoUpdate) { | 103 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; | 104 UpdateLibrary::Status status; |
107 status.status = UPDATE_STATUS_IDLE; | 105 status.status = UPDATE_STATUS_IDLE; |
108 EXPECT_CALL(*mock_update_library_, status()) | 106 EXPECT_CALL(*mock_update_library_, status()) |
109 .Times(AtLeast(1)) | 107 .Times(AtLeast(1)) |
110 .WillRepeatedly(ReturnRef(status)); | 108 .WillRepeatedly(ReturnRef(status)); |
111 EXPECT_CALL(*mock_screen_observer, OnExit(ScreenObserver::UPDATE_NOUPDATE)) | 109 EXPECT_CALL(*mock_screen_observer_, OnExit(ScreenObserver::UPDATE_NOUPDATE)) |
112 .Times(1); | 110 .Times(1); |
113 update_screen->UpdateStatusChanged(mock_update_library_); | 111 update_screen_->UpdateStatusChanged(mock_update_library_); |
114 | |
115 controller()->set_observer(NULL); | |
116 } | 112 } |
117 | 113 |
118 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) { | 114 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestUpdateAvailable) { |
119 ASSERT_TRUE(controller() != NULL); | 115 update_screen_->is_ignore_update_deadlines_ = 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 | 116 |
127 UpdateLibrary::Status status; | 117 UpdateLibrary::Status status; |
128 | |
129 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; | 118 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; |
130 status.new_version = "latest and greatest"; | 119 status.new_version = "latest and greatest"; |
131 EXPECT_CALL(*mock_update_library_, status()) | 120 EXPECT_CALL(*mock_update_library_, status()) |
132 .Times(AtLeast(1)) | 121 .Times(AtLeast(1)) |
133 .WillRepeatedly(ReturnRef(status)); | 122 .WillRepeatedly(ReturnRef(status)); |
134 update_screen->UpdateStatusChanged(mock_update_library_); | 123 update_screen_->UpdateStatusChanged(mock_update_library_); |
135 | 124 |
136 status.status = UPDATE_STATUS_DOWNLOADING; | 125 status.status = UPDATE_STATUS_DOWNLOADING; |
137 status.download_progress = 0.0; | 126 status.download_progress = 0.0; |
138 EXPECT_CALL(*mock_update_library_, status()) | 127 EXPECT_CALL(*mock_update_library_, status()) |
139 .Times(AtLeast(1)) | 128 .Times(AtLeast(1)) |
140 .WillRepeatedly(ReturnRef(status)); | 129 .WillRepeatedly(ReturnRef(status)); |
141 update_screen->UpdateStatusChanged(mock_update_library_); | 130 update_screen_->UpdateStatusChanged(mock_update_library_); |
142 | 131 |
143 status.download_progress = 0.5; | 132 status.download_progress = 0.5; |
144 EXPECT_CALL(*mock_update_library_, status()) | 133 EXPECT_CALL(*mock_update_library_, status()) |
145 .Times(AtLeast(1)) | 134 .Times(AtLeast(1)) |
146 .WillRepeatedly(ReturnRef(status)); | 135 .WillRepeatedly(ReturnRef(status)); |
147 update_screen->UpdateStatusChanged(mock_update_library_); | 136 update_screen_->UpdateStatusChanged(mock_update_library_); |
148 | 137 |
149 status.download_progress = 1.0; | 138 status.download_progress = 1.0; |
150 EXPECT_CALL(*mock_update_library_, status()) | 139 EXPECT_CALL(*mock_update_library_, status()) |
151 .Times(AtLeast(1)) | 140 .Times(AtLeast(1)) |
152 .WillRepeatedly(ReturnRef(status)); | 141 .WillRepeatedly(ReturnRef(status)); |
153 update_screen->UpdateStatusChanged(mock_update_library_); | 142 update_screen_->UpdateStatusChanged(mock_update_library_); |
154 | 143 |
155 status.status = UPDATE_STATUS_VERIFYING; | 144 status.status = UPDATE_STATUS_VERIFYING; |
156 EXPECT_CALL(*mock_update_library_, status()) | 145 EXPECT_CALL(*mock_update_library_, status()) |
157 .Times(AtLeast(1)) | 146 .Times(AtLeast(1)) |
158 .WillRepeatedly(ReturnRef(status)); | 147 .WillRepeatedly(ReturnRef(status)); |
159 update_screen->UpdateStatusChanged(mock_update_library_); | 148 update_screen_->UpdateStatusChanged(mock_update_library_); |
160 | 149 |
161 status.status = UPDATE_STATUS_FINALIZING; | 150 status.status = UPDATE_STATUS_FINALIZING; |
162 EXPECT_CALL(*mock_update_library_, status()) | 151 EXPECT_CALL(*mock_update_library_, status()) |
163 .Times(AtLeast(1)) | 152 .Times(AtLeast(1)) |
164 .WillRepeatedly(ReturnRef(status)); | 153 .WillRepeatedly(ReturnRef(status)); |
165 update_screen->UpdateStatusChanged(mock_update_library_); | 154 update_screen_->UpdateStatusChanged(mock_update_library_); |
166 | 155 |
167 status.status = UPDATE_STATUS_UPDATED_NEED_REBOOT; | 156 status.status = UPDATE_STATUS_UPDATED_NEED_REBOOT; |
168 EXPECT_CALL(*mock_update_library_, status()) | 157 EXPECT_CALL(*mock_update_library_, status()) |
169 .Times(AtLeast(1)) | 158 .Times(AtLeast(1)) |
170 .WillRepeatedly(ReturnRef(status)); | 159 .WillRepeatedly(ReturnRef(status)); |
171 EXPECT_CALL(*mock_update_library_, RebootAfterUpdate()) | 160 EXPECT_CALL(*mock_update_library_, RebootAfterUpdate()) |
172 .Times(1); | 161 .Times(1); |
173 update_screen->UpdateStatusChanged(mock_update_library_); | 162 update_screen_->UpdateStatusChanged(mock_update_library_); |
174 | |
175 controller()->set_observer(NULL); | |
176 } | 163 } |
177 | 164 |
178 static void RequestUpdateCheckFail(UpdateCallback callback, void* userdata) { | 165 static void RequestUpdateCheckFail(UpdateCallback callback, void* userdata) { |
179 callback(userdata, chromeos::UPDATE_RESULT_FAILED, NULL); | 166 callback(userdata, chromeos::UPDATE_RESULT_FAILED, NULL); |
180 } | 167 } |
181 | 168 |
182 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorIssuingUpdateCheck) { | 169 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. | 170 // First, cancel the update that is already in progress. |
191 EXPECT_CALL(*mock_screen_observer, | 171 EXPECT_CALL(*mock_screen_observer_, |
192 OnExit(ScreenObserver::UPDATE_NOUPDATE)) | 172 OnExit(ScreenObserver::UPDATE_NOUPDATE)) |
193 .Times(1); | 173 .Times(1); |
194 update_screen->CancelUpdate(); | 174 update_screen_->CancelUpdate(); |
195 | 175 |
196 // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail | 176 // Run UpdateScreen::StartUpdate() again, but CheckForUpdate() will fail |
197 // issuing the update check this time. | 177 // issuing the update check this time. |
198 EXPECT_CALL(*mock_update_library_, AddObserver(_)) | 178 EXPECT_CALL(*mock_update_library_, AddObserver(_)) |
199 .Times(1); | 179 .Times(1); |
200 EXPECT_CALL(*mock_update_library_, RemoveObserver(_)) | 180 EXPECT_CALL(*mock_update_library_, RemoveObserver(_)) |
201 .Times(AtLeast(1)); | 181 .Times(AtLeast(1)); |
202 EXPECT_CALL(*mock_update_library_, RequestUpdateCheck(_,_)) | 182 EXPECT_CALL(*mock_update_library_, RequestUpdateCheck(_,_)) |
203 .Times(1) | 183 .Times(1) |
204 .WillOnce(Invoke(RequestUpdateCheckFail)); | 184 .WillOnce(Invoke(RequestUpdateCheckFail)); |
205 EXPECT_CALL(*mock_screen_observer, | 185 EXPECT_CALL(*mock_screen_observer_, |
206 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) | 186 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) |
207 .Times(1); | 187 .Times(1); |
208 update_screen->StartUpdate(); | 188 update_screen_->StartUpdate(); |
209 | |
210 controller()->set_observer(NULL); | |
211 } | 189 } |
212 | 190 |
213 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorCheckingForUpdate) { | 191 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; | 192 UpdateLibrary::Status status; |
222 status.status = UPDATE_STATUS_ERROR; | 193 status.status = UPDATE_STATUS_ERROR; |
223 EXPECT_CALL(*mock_update_library_, status()) | 194 EXPECT_CALL(*mock_update_library_, status()) |
224 .Times(AtLeast(1)) | 195 .Times(AtLeast(1)) |
225 .WillRepeatedly(ReturnRef(status)); | 196 .WillRepeatedly(ReturnRef(status)); |
226 EXPECT_CALL(*mock_screen_observer, | 197 EXPECT_CALL(*mock_screen_observer_, |
227 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) | 198 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) |
228 .Times(1); | 199 .Times(1); |
229 update_screen->UpdateStatusChanged(mock_update_library_); | 200 update_screen_->UpdateStatusChanged(mock_update_library_); |
230 | |
231 controller()->set_observer(NULL); | |
232 } | 201 } |
233 | 202 |
234 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestErrorUpdating) { | 203 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; | 204 UpdateLibrary::Status status; |
243 | |
244 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; | 205 status.status = UPDATE_STATUS_UPDATE_AVAILABLE; |
245 status.new_version = "latest and greatest"; | 206 status.new_version = "latest and greatest"; |
246 EXPECT_CALL(*mock_update_library_, status()) | 207 EXPECT_CALL(*mock_update_library_, status()) |
247 .Times(AtLeast(1)) | 208 .Times(AtLeast(1)) |
248 .WillRepeatedly(ReturnRef(status)); | 209 .WillRepeatedly(ReturnRef(status)); |
249 update_screen->UpdateStatusChanged(mock_update_library_); | 210 update_screen_->UpdateStatusChanged(mock_update_library_); |
250 | 211 |
251 status.status = UPDATE_STATUS_ERROR; | 212 status.status = UPDATE_STATUS_ERROR; |
252 EXPECT_CALL(*mock_update_library_, status()) | 213 EXPECT_CALL(*mock_update_library_, status()) |
253 .Times(AtLeast(1)) | 214 .Times(AtLeast(1)) |
254 .WillRepeatedly(ReturnRef(status)); | 215 .WillRepeatedly(ReturnRef(status)); |
255 EXPECT_CALL(*mock_screen_observer, | 216 EXPECT_CALL(*mock_screen_observer_, |
256 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING)) | 217 OnExit(ScreenObserver::UPDATE_ERROR_UPDATING)) |
257 .Times(1); | 218 .Times(1); |
258 update_screen->UpdateStatusChanged(mock_update_library_); | 219 update_screen_->UpdateStatusChanged(mock_update_library_); |
259 | |
260 controller()->set_observer(NULL); | |
261 } | 220 } |
262 | 221 |
263 } // namespace chromeos | 222 } // namespace chromeos |
OLD | NEW |