Chromium Code Reviews| 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 |