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