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 |
88 void UpdateStatusChanged() { | |
89 static_cast<UpdateLibrary::Observer*>(update_screen_)-> | |
whywhat
2011/05/20 09:29:51
Can't you call the method if you make the class a
altimofeev
2011/05/20 12:00:32
Not applicable anymore.
| |
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 |
OLD | NEW |