| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/command_line.h" | 5 #include "base/command_line.h" |
| 6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
| 7 #include "chrome/browser/chromeos/cros/mock_network_library.h" | 7 #include "chrome/browser/chromeos/cros/mock_network_library.h" |
| 8 #include "chrome/browser/chromeos/login/screens/mock_error_screen.h" | 8 #include "chrome/browser/chromeos/login/screens/mock_error_screen.h" |
| 9 #include "chrome/browser/chromeos/login/screens/mock_screen_observer.h" | 9 #include "chrome/browser/chromeos/login/screens/mock_screen_observer.h" |
| 10 #include "chrome/browser/chromeos/login/screens/update_screen.h" | 10 #include "chrome/browser/chromeos/login/screens/update_screen.h" |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 using ::testing::AtLeast; | 22 using ::testing::AtLeast; |
| 23 using ::testing::Exactly; | 23 using ::testing::Exactly; |
| 24 using ::testing::Invoke; | 24 using ::testing::Invoke; |
| 25 using ::testing::Return; | 25 using ::testing::Return; |
| 26 using ::testing::_; | 26 using ::testing::_; |
| 27 | 27 |
| 28 namespace chromeos { | 28 namespace chromeos { |
| 29 | 29 |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 const char kDefaultEthernetServicePath[] = "eth0"; | 32 const char kStubEthernetServicePath[] = "eth0"; |
| 33 const char kDefaultWifiServicePath[] = "wlan0"; | 33 const char kStubWifiServicePath[] = "wlan0"; |
| 34 | 34 |
| 35 } // namespace | 35 } // namespace |
| 36 | 36 |
| 37 class UpdateScreenTest : public WizardInProcessBrowserTest { | 37 class UpdateScreenTest : public WizardInProcessBrowserTest { |
| 38 public: | 38 public: |
| 39 UpdateScreenTest() : WizardInProcessBrowserTest("update"), | 39 UpdateScreenTest() : WizardInProcessBrowserTest("update"), |
| 40 fake_update_engine_client_(NULL), | 40 fake_update_engine_client_(NULL), |
| 41 mock_network_library_(NULL), | 41 mock_network_library_(NULL), |
| 42 network_portal_detector_stub_(NULL) { | 42 network_portal_detector_stub_(NULL) { |
| 43 } | 43 } |
| 44 | 44 |
| 45 protected: | 45 protected: |
| 46 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | 46 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { |
| 47 MockDBusThreadManagerWithoutGMock* mock_dbus_thread_manager = | 47 MockDBusThreadManagerWithoutGMock* mock_dbus_thread_manager = |
| 48 new MockDBusThreadManagerWithoutGMock; | 48 new MockDBusThreadManagerWithoutGMock; |
| 49 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); | 49 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); |
| 50 WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture(); | 50 WizardInProcessBrowserTest::SetUpInProcessBrowserTestFixture(); |
| 51 cros_mock_->InitStatusAreaMocks(); | 51 cros_mock_->InitStatusAreaMocks(); |
| 52 cros_mock_->SetStatusAreaMocksExpectations(); | 52 cros_mock_->SetStatusAreaMocksExpectations(); |
| 53 | 53 |
| 54 fake_update_engine_client_ | 54 fake_update_engine_client_ |
| 55 = mock_dbus_thread_manager->fake_update_engine_client(); | 55 = mock_dbus_thread_manager->fake_update_engine_client(); |
| 56 | 56 |
| 57 mock_network_library_ = cros_mock_->mock_network_library(); | 57 mock_network_library_ = cros_mock_->mock_network_library(); |
| 58 stub_ethernet_.reset(new EthernetNetwork(kDefaultEthernetServicePath)); | |
| 59 stub_wifi_.reset(new WifiNetwork(kDefaultWifiServicePath)); | |
| 60 EXPECT_CALL(*mock_network_library_, SetDefaultCheckPortalList()) | 58 EXPECT_CALL(*mock_network_library_, SetDefaultCheckPortalList()) |
| 61 .Times(1); | 59 .Times(1); |
| 62 EXPECT_CALL(*mock_network_library_, AddNetworkManagerObserver(_)) | |
| 63 .Times(1) | |
| 64 .RetiresOnSaturation(); | |
| 65 EXPECT_CALL(*mock_network_library_, AddUserActionObserver(_)) | |
| 66 .Times(AnyNumber()); | |
| 67 EXPECT_CALL(*mock_network_library_, FindWifiDevice()) | |
| 68 .Times(AnyNumber()); | |
| 69 EXPECT_CALL(*mock_network_library_, FindEthernetDevice()) | |
| 70 .Times(AnyNumber()); | |
| 71 EXPECT_CALL(*mock_network_library_, LoadOncNetworks(_, _)) | 60 EXPECT_CALL(*mock_network_library_, LoadOncNetworks(_, _)) |
| 72 .Times(AnyNumber()); | 61 .Times(AnyNumber()); |
| 73 EXPECT_CALL(*mock_network_library_, | |
| 74 FindNetworkByPath(kDefaultEthernetServicePath)) | |
| 75 .Times(AnyNumber()) | |
| 76 .WillRepeatedly((Return(stub_ethernet_.get()))); | |
| 77 EXPECT_CALL(*mock_network_library_, | |
| 78 FindNetworkByPath(kDefaultWifiServicePath)) | |
| 79 .Times(AnyNumber()) | |
| 80 .WillRepeatedly((Return(stub_wifi_.get()))); | |
| 81 | 62 |
| 82 // Setup network portal detector to return online state for both | 63 // Setup network portal detector to return online state for both |
| 83 // ethernet and wifi networks. Ethernet is an active network by | 64 // ethernet and wifi networks. Ethernet is an active network by |
| 84 // default. | 65 // default. |
| 85 network_portal_detector_stub_ = | 66 network_portal_detector_stub_ = |
| 86 static_cast<NetworkPortalDetectorStub*>( | 67 static_cast<NetworkPortalDetectorStub*>( |
| 87 NetworkPortalDetector::GetInstance()); | 68 NetworkPortalDetector::GetInstance()); |
| 88 NetworkPortalDetector::CaptivePortalState online_state; | 69 NetworkPortalDetector::CaptivePortalState online_state; |
| 89 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; | 70 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; |
| 90 online_state.response_code = 204; | 71 online_state.response_code = 204; |
| 91 SetActiveNetwork(stub_ethernet_.get()); | 72 SetDefaultNetworkPath(kStubEthernetServicePath); |
| 92 SetDetectionResults(stub_ethernet_.get(), online_state); | 73 SetDetectionResults(kStubEthernetServicePath, online_state); |
| 93 SetDetectionResults(stub_wifi_.get(), online_state); | 74 SetDetectionResults(kStubWifiServicePath, online_state); |
| 94 } | 75 } |
| 95 | 76 |
| 96 virtual void SetUpOnMainThread() OVERRIDE { | 77 virtual void SetUpOnMainThread() OVERRIDE { |
| 97 WizardInProcessBrowserTest::SetUpOnMainThread(); | 78 WizardInProcessBrowserTest::SetUpOnMainThread(); |
| 98 | 79 |
| 99 mock_screen_observer_.reset(new MockScreenObserver()); | 80 mock_screen_observer_.reset(new MockScreenObserver()); |
| 100 mock_error_screen_actor_.reset(new MockErrorScreenActor()); | 81 mock_error_screen_actor_.reset(new MockErrorScreenActor()); |
| 101 mock_error_screen_.reset( | 82 mock_error_screen_.reset( |
| 102 new MockErrorScreen(mock_screen_observer_.get(), | 83 new MockErrorScreen(mock_screen_observer_.get(), |
| 103 mock_error_screen_actor_.get())); | 84 mock_error_screen_actor_.get())); |
| 104 EXPECT_CALL(*mock_screen_observer_, ShowCurrentScreen()) | 85 EXPECT_CALL(*mock_screen_observer_, ShowCurrentScreen()) |
| 105 .Times(AnyNumber()); | 86 .Times(AnyNumber()); |
| 106 EXPECT_CALL(*mock_screen_observer_, GetErrorScreen()) | 87 EXPECT_CALL(*mock_screen_observer_, GetErrorScreen()) |
| 107 .Times(AnyNumber()) | 88 .Times(AnyNumber()) |
| 108 .WillRepeatedly(Return(mock_error_screen_.get())); | 89 .WillRepeatedly(Return(mock_error_screen_.get())); |
| 109 | 90 |
| 110 ASSERT_TRUE(WizardController::default_controller() != NULL); | 91 ASSERT_TRUE(WizardController::default_controller() != NULL); |
| 111 update_screen_ = WizardController::default_controller()->GetUpdateScreen(); | 92 update_screen_ = WizardController::default_controller()->GetUpdateScreen(); |
| 112 ASSERT_TRUE(update_screen_ != NULL); | 93 ASSERT_TRUE(update_screen_ != NULL); |
| 113 ASSERT_EQ(WizardController::default_controller()->current_screen(), | 94 ASSERT_EQ(WizardController::default_controller()->current_screen(), |
| 114 update_screen_); | 95 update_screen_); |
| 115 update_screen_->screen_observer_ = mock_screen_observer_.get(); | 96 update_screen_->screen_observer_ = mock_screen_observer_.get(); |
| 116 } | 97 } |
| 117 | 98 |
| 118 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE { | 99 virtual void TearDownInProcessBrowserTestFixture() OVERRIDE { |
| 119 WizardInProcessBrowserTest::TearDownInProcessBrowserTestFixture(); | 100 WizardInProcessBrowserTest::TearDownInProcessBrowserTestFixture(); |
| 120 DBusThreadManager::Shutdown(); | 101 DBusThreadManager::Shutdown(); |
| 121 } | 102 } |
| 122 | 103 |
| 123 void SetActiveNetwork(const Network* network) { | 104 void SetDefaultNetworkPath(const std::string& service_path) { |
| 124 DCHECK(network_portal_detector_stub_); | 105 DCHECK(network_portal_detector_stub_); |
| 125 network_portal_detector_stub_->SetActiveNetworkForTesting(network); | 106 network_portal_detector_stub_->SetDefaultNetworkPathForTesting( |
| 107 service_path); |
| 126 } | 108 } |
| 127 | 109 |
| 128 void SetDetectionResults( | 110 void SetDetectionResults( |
| 129 const Network* network, | 111 const std::string& service_path, |
| 130 const NetworkPortalDetector::CaptivePortalState& state) { | 112 const NetworkPortalDetector::CaptivePortalState& state) { |
| 131 DCHECK(network_portal_detector_stub_); | 113 DCHECK(network_portal_detector_stub_); |
| 132 network_portal_detector_stub_->SetDetectionResultsForTesting(network, | 114 network_portal_detector_stub_->SetDetectionResultsForTesting(service_path, |
| 133 state); | 115 state); |
| 134 } | 116 } |
| 135 | 117 |
| 136 void NotifyPortalDetectionCompleted() { | 118 void NotifyPortalDetectionCompleted() { |
| 137 DCHECK(network_portal_detector_stub_); | 119 DCHECK(network_portal_detector_stub_); |
| 138 network_portal_detector_stub_->NotifyObserversForTesting(); | 120 network_portal_detector_stub_->NotifyObserversForTesting(); |
| 139 } | 121 } |
| 140 | 122 |
| 141 FakeUpdateEngineClient* fake_update_engine_client_; | 123 FakeUpdateEngineClient* fake_update_engine_client_; |
| 142 MockNetworkLibrary* mock_network_library_; | 124 MockNetworkLibrary* mock_network_library_; |
| 143 scoped_ptr<Network> stub_ethernet_; | |
| 144 scoped_ptr<Network> stub_wifi_; | |
| 145 scoped_ptr<MockScreenObserver> mock_screen_observer_; | 125 scoped_ptr<MockScreenObserver> mock_screen_observer_; |
| 146 scoped_ptr<MockErrorScreenActor> mock_error_screen_actor_; | 126 scoped_ptr<MockErrorScreenActor> mock_error_screen_actor_; |
| 147 scoped_ptr<MockErrorScreen> mock_error_screen_; | 127 scoped_ptr<MockErrorScreen> mock_error_screen_; |
| 148 UpdateScreen* update_screen_; | 128 UpdateScreen* update_screen_; |
| 149 NetworkPortalDetectorStub* network_portal_detector_stub_; | 129 NetworkPortalDetectorStub* network_portal_detector_stub_; |
| 150 | 130 |
| 151 private: | 131 private: |
| 152 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest); | 132 DISALLOW_COPY_AND_ASSIGN(UpdateScreenTest); |
| 153 }; | 133 }; |
| 154 | 134 |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestTemproraryOfflineNetwork) { | 235 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestTemproraryOfflineNetwork) { |
| 256 EXPECT_CALL(*mock_screen_observer_, | 236 EXPECT_CALL(*mock_screen_observer_, |
| 257 OnExit(ScreenObserver::UPDATE_NOUPDATE)) | 237 OnExit(ScreenObserver::UPDATE_NOUPDATE)) |
| 258 .Times(1); | 238 .Times(1); |
| 259 update_screen_->CancelUpdate(); | 239 update_screen_->CancelUpdate(); |
| 260 | 240 |
| 261 // Change ethernet state to portal. | 241 // Change ethernet state to portal. |
| 262 NetworkPortalDetector::CaptivePortalState portal_state; | 242 NetworkPortalDetector::CaptivePortalState portal_state; |
| 263 portal_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; | 243 portal_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; |
| 264 portal_state.response_code = 200; | 244 portal_state.response_code = 200; |
| 265 SetDetectionResults(stub_ethernet_.get(), portal_state); | 245 SetDetectionResults(kStubEthernetServicePath, portal_state); |
| 266 | 246 |
| 267 // Update screen will show error message about portal state because | 247 // Update screen will show error message about portal state because |
| 268 // ethernet is behind captive portal. | 248 // ethernet is behind captive portal. |
| 269 EXPECT_CALL(*mock_error_screen_actor_, | 249 EXPECT_CALL(*mock_error_screen_actor_, |
| 270 SetUIState(ErrorScreen::UI_STATE_UPDATE)) | 250 SetUIState(ErrorScreen::UI_STATE_UPDATE)) |
| 271 .Times(1); | 251 .Times(1); |
| 272 EXPECT_CALL(*mock_error_screen_actor_, | 252 EXPECT_CALL(*mock_error_screen_actor_, |
| 273 SetErrorState(ErrorScreen::ERROR_STATE_PORTAL, std::string())) | 253 SetErrorState(ErrorScreen::ERROR_STATE_PORTAL, std::string())) |
| 274 .Times(1); | 254 .Times(1); |
| 275 EXPECT_CALL(*mock_error_screen_actor_, FixCaptivePortal()) | 255 EXPECT_CALL(*mock_error_screen_actor_, FixCaptivePortal()) |
| 276 .Times(1); | 256 .Times(1); |
| 277 EXPECT_CALL(*mock_screen_observer_, ShowErrorScreen()) | 257 EXPECT_CALL(*mock_screen_observer_, ShowErrorScreen()) |
| 278 .Times(1); | 258 .Times(1); |
| 279 | 259 |
| 280 update_screen_->StartNetworkCheck(); | 260 update_screen_->StartNetworkCheck(); |
| 281 | 261 |
| 282 NetworkPortalDetector::CaptivePortalState online_state; | 262 NetworkPortalDetector::CaptivePortalState online_state; |
| 283 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; | 263 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE; |
| 284 online_state.response_code = 204; | 264 online_state.response_code = 204; |
| 285 SetDetectionResults(stub_ethernet_.get(), online_state); | 265 SetDetectionResults(kStubEthernetServicePath, online_state); |
| 286 | 266 |
| 287 // Second notification from portal detector will be about online state, | 267 // Second notification from portal detector will be about online state, |
| 288 // so update screen will hide error message and proceed to update. | 268 // so update screen will hide error message and proceed to update. |
| 289 EXPECT_CALL(*mock_screen_observer_, HideErrorScreen(update_screen_)) | 269 EXPECT_CALL(*mock_screen_observer_, HideErrorScreen(update_screen_)) |
| 290 .Times(1); | 270 .Times(1); |
| 291 fake_update_engine_client_->set_update_check_result( | 271 fake_update_engine_client_->set_update_check_result( |
| 292 chromeos::UpdateEngineClient::UPDATE_RESULT_FAILED); | 272 chromeos::UpdateEngineClient::UPDATE_RESULT_FAILED); |
| 293 | 273 |
| 294 EXPECT_CALL(*mock_screen_observer_, | 274 EXPECT_CALL(*mock_screen_observer_, |
| 295 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) | 275 OnExit(ScreenObserver::UPDATE_ERROR_CHECKING_FOR_UPDATE)) |
| 296 .Times(1); | 276 .Times(1); |
| 297 | 277 |
| 298 NotifyPortalDetectionCompleted(); | 278 NotifyPortalDetectionCompleted(); |
| 299 } | 279 } |
| 300 | 280 |
| 301 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestTwoOfflineNetworks) { | 281 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestTwoOfflineNetworks) { |
| 302 EXPECT_CALL(*mock_screen_observer_, | 282 EXPECT_CALL(*mock_screen_observer_, |
| 303 OnExit(ScreenObserver::UPDATE_NOUPDATE)) | 283 OnExit(ScreenObserver::UPDATE_NOUPDATE)) |
| 304 .Times(1); | 284 .Times(1); |
| 305 update_screen_->CancelUpdate(); | 285 update_screen_->CancelUpdate(); |
| 306 | 286 |
| 307 // Change ethernet state to portal. | 287 // Change ethernet state to portal. |
| 308 NetworkPortalDetector::CaptivePortalState portal_state; | 288 NetworkPortalDetector::CaptivePortalState portal_state; |
| 309 portal_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; | 289 portal_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PORTAL; |
| 310 portal_state.response_code = 200; | 290 portal_state.response_code = 200; |
| 311 SetDetectionResults(stub_ethernet_.get(), portal_state); | 291 SetDetectionResults(kStubEthernetServicePath, portal_state); |
| 312 | 292 |
| 313 // Update screen will show error message about portal state because | 293 // Update screen will show error message about portal state because |
| 314 // ethernet is behind captive portal. | 294 // ethernet is behind captive portal. |
| 315 EXPECT_CALL(*mock_error_screen_actor_, | 295 EXPECT_CALL(*mock_error_screen_actor_, |
| 316 SetUIState(ErrorScreen::UI_STATE_UPDATE)) | 296 SetUIState(ErrorScreen::UI_STATE_UPDATE)) |
| 317 .Times(1); | 297 .Times(1); |
| 318 EXPECT_CALL(*mock_error_screen_actor_, | 298 EXPECT_CALL(*mock_error_screen_actor_, |
| 319 SetErrorState(ErrorScreen::ERROR_STATE_PORTAL, std::string())) | 299 SetErrorState(ErrorScreen::ERROR_STATE_PORTAL, std::string())) |
| 320 .Times(1); | 300 .Times(1); |
| 321 EXPECT_CALL(*mock_error_screen_actor_, FixCaptivePortal()) | 301 EXPECT_CALL(*mock_error_screen_actor_, FixCaptivePortal()) |
| 322 .Times(1); | 302 .Times(1); |
| 323 EXPECT_CALL(*mock_screen_observer_, ShowErrorScreen()) | 303 EXPECT_CALL(*mock_screen_observer_, ShowErrorScreen()) |
| 324 .Times(1); | 304 .Times(1); |
| 325 | 305 |
| 326 update_screen_->StartNetworkCheck(); | 306 update_screen_->StartNetworkCheck(); |
| 327 | 307 |
| 328 // Change active network to the wifi behind proxy. | 308 // Change active network to the wifi behind proxy. |
| 329 NetworkPortalDetector::CaptivePortalState proxy_state; | 309 NetworkPortalDetector::CaptivePortalState proxy_state; |
| 330 proxy_state.status = | 310 proxy_state.status = |
| 331 NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED; | 311 NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_PROXY_AUTH_REQUIRED; |
| 332 proxy_state.response_code = -1; | 312 proxy_state.response_code = -1; |
| 333 SetActiveNetwork(stub_wifi_.get()); | 313 SetDefaultNetworkPath(kStubWifiServicePath); |
| 334 SetDetectionResults(stub_wifi_.get(), proxy_state); | 314 SetDetectionResults(kStubWifiServicePath, proxy_state); |
| 335 | 315 |
| 336 // Update screen will show message about proxy error because wifie | 316 // Update screen will show message about proxy error because wifie |
| 337 // network requires proxy authentication. | 317 // network requires proxy authentication. |
| 338 EXPECT_CALL(*mock_error_screen_actor_, | 318 EXPECT_CALL(*mock_error_screen_actor_, |
| 339 SetErrorState(ErrorScreen::ERROR_STATE_PROXY, std::string())) | 319 SetErrorState(ErrorScreen::ERROR_STATE_PROXY, std::string())) |
| 340 .Times(1); | 320 .Times(1); |
| 341 | 321 |
| 342 NotifyPortalDetectionCompleted(); | 322 NotifyPortalDetectionCompleted(); |
| 343 } | 323 } |
| 344 | 324 |
| 345 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestVoidNetwork) { | 325 IN_PROC_BROWSER_TEST_F(UpdateScreenTest, TestVoidNetwork) { |
| 346 SetActiveNetwork(NULL); | 326 SetDefaultNetworkPath(""); |
| 347 | 327 |
| 348 // Cancels pending update request. | 328 // Cancels pending update request. |
| 349 EXPECT_CALL(*mock_screen_observer_, | 329 EXPECT_CALL(*mock_screen_observer_, |
| 350 OnExit(ScreenObserver::UPDATE_NOUPDATE)) | 330 OnExit(ScreenObserver::UPDATE_NOUPDATE)) |
| 351 .Times(1); | 331 .Times(1); |
| 352 update_screen_->CancelUpdate(); | 332 update_screen_->CancelUpdate(); |
| 353 | 333 |
| 354 // First portal detection attempt returns NULL network and undefined | 334 // First portal detection attempt returns NULL network and undefined |
| 355 // results, so detection is restarted. | 335 // results, so detection is restarted. |
| 356 EXPECT_CALL(*mock_error_screen_actor_, | 336 EXPECT_CALL(*mock_error_screen_actor_, |
| (...skipping 14 matching lines...) Expand all Loading... |
| 371 EXPECT_CALL(*mock_error_screen_actor_, | 351 EXPECT_CALL(*mock_error_screen_actor_, |
| 372 SetErrorState(ErrorScreen::ERROR_STATE_OFFLINE, std::string())) | 352 SetErrorState(ErrorScreen::ERROR_STATE_OFFLINE, std::string())) |
| 373 .Times(1); | 353 .Times(1); |
| 374 EXPECT_CALL(*mock_screen_observer_, ShowErrorScreen()) | 354 EXPECT_CALL(*mock_screen_observer_, ShowErrorScreen()) |
| 375 .Times(1); | 355 .Times(1); |
| 376 MessageLoop::current()->RunUntilIdle(); | 356 MessageLoop::current()->RunUntilIdle(); |
| 377 NotifyPortalDetectionCompleted(); | 357 NotifyPortalDetectionCompleted(); |
| 378 } | 358 } |
| 379 | 359 |
| 380 } // namespace chromeos | 360 } // namespace chromeos |
| OLD | NEW |