Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Side by Side Diff: chrome/browser/chromeos/login/wizard_controller_browsertest.cc

Issue 294903005: Add browser test for timezone resolve. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove CreateDefaultFakeURLFetcherCreator. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/basictypes.h" 5 #include "base/basictypes.h"
6 #include "base/command_line.h" 6 #include "base/command_line.h"
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "base/prefs/pref_registry_simple.h" 9 #include "base/prefs/pref_registry_simple.h"
10 #include "base/prefs/pref_service.h" 10 #include "base/prefs/pref_service.h"
11 #include "base/prefs/pref_service_factory.h" 11 #include "base/prefs/pref_service_factory.h"
12 #include "base/prefs/testing_pref_store.h" 12 #include "base/prefs/testing_pref_store.h"
13 #include "base/run_loop.h" 13 #include "base/run_loop.h"
14 #include "base/strings/string_util.h"
14 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
15 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
16 #include "chrome/browser/browser_shutdown.h" 17 #include "chrome/browser/browser_shutdown.h"
17 #include "chrome/browser/chrome_notification_types.h" 18 #include "chrome/browser/chrome_notification_types.h"
18 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" 19 #include "chrome/browser/chromeos/accessibility/accessibility_manager.h"
19 #include "chrome/browser/chromeos/base/locale_util.h" 20 #include "chrome/browser/chromeos/base/locale_util.h"
21 #include "chrome/browser/chromeos/geolocation/simple_geolocation_provider.h"
20 #include "chrome/browser/chromeos/login/auth/mock_authenticator.h" 22 #include "chrome/browser/chromeos/login/auth/mock_authenticator.h"
21 #include "chrome/browser/chromeos/login/auth/mock_login_status_consumer.h" 23 #include "chrome/browser/chromeos/login/auth/mock_login_status_consumer.h"
22 #include "chrome/browser/chromeos/login/auth/user_context.h" 24 #include "chrome/browser/chromeos/login/auth/user_context.h"
23 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h" 25 #include "chrome/browser/chromeos/login/enrollment/enrollment_screen.h"
24 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h" 26 #include "chrome/browser/chromeos/login/enrollment/mock_enrollment_screen.h"
25 #include "chrome/browser/chromeos/login/existing_user_controller.h" 27 #include "chrome/browser/chromeos/login/existing_user_controller.h"
26 #include "chrome/browser/chromeos/login/screens/error_screen.h" 28 #include "chrome/browser/chromeos/login/screens/error_screen.h"
27 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h" 29 #include "chrome/browser/chromeos/login/screens/hid_detection_screen.h"
28 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h" 30 #include "chrome/browser/chromeos/login/screens/mock_eula_screen.h"
29 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h" 31 #include "chrome/browser/chromeos/login/screens/mock_network_screen.h"
30 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h" 32 #include "chrome/browser/chromeos/login/screens/mock_update_screen.h"
31 #include "chrome/browser/chromeos/login/screens/network_screen.h" 33 #include "chrome/browser/chromeos/login/screens/network_screen.h"
32 #include "chrome/browser/chromeos/login/screens/reset_screen.h" 34 #include "chrome/browser/chromeos/login/screens/reset_screen.h"
33 #include "chrome/browser/chromeos/login/screens/user_image_screen.h" 35 #include "chrome/browser/chromeos/login/screens/user_image_screen.h"
34 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h" 36 #include "chrome/browser/chromeos/login/screens/wrong_hwid_screen.h"
35 #include "chrome/browser/chromeos/login/startup_utils.h" 37 #include "chrome/browser/chromeos/login/startup_utils.h"
36 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h" 38 #include "chrome/browser/chromeos/login/test/wizard_in_process_browser_test.h"
37 #include "chrome/browser/chromeos/login/test_login_utils.h" 39 #include "chrome/browser/chromeos/login/test_login_utils.h"
38 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" 40 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h"
39 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" 41 #include "chrome/browser/chromeos/login/ui/webui_login_view.h"
40 #include "chrome/browser/chromeos/login/wizard_controller.h" 42 #include "chrome/browser/chromeos/login/wizard_controller.h"
43 #include "chrome/browser/chromeos/net/network_portal_detector_test_impl.h"
41 #include "chrome/browser/chromeos/policy/server_backed_device_state.h" 44 #include "chrome/browser/chromeos/policy/server_backed_device_state.h"
42 #include "chrome/browser/chromeos/profiles/profile_helper.h" 45 #include "chrome/browser/chromeos/profiles/profile_helper.h"
46 #include "chrome/browser/chromeos/timezone/timezone_request.h"
43 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h" 47 #include "chrome/browser/ui/webui/chromeos/login/oobe_ui.h"
44 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h" 48 #include "chrome/browser/ui/webui/chromeos/login/signin_screen_handler.h"
45 #include "chrome/common/chrome_paths.h" 49 #include "chrome/common/chrome_paths.h"
46 #include "chrome/common/chrome_switches.h" 50 #include "chrome/common/chrome_switches.h"
47 #include "chrome/common/pref_names.h" 51 #include "chrome/common/pref_names.h"
48 #include "chrome/test/base/ui_test_utils.h" 52 #include "chrome/test/base/ui_test_utils.h"
49 #include "chromeos/audio/cras_audio_handler.h" 53 #include "chromeos/audio/cras_audio_handler.h"
50 #include "chromeos/chromeos_switches.h" 54 #include "chromeos/chromeos_switches.h"
51 #include "chromeos/chromeos_test_utils.h" 55 #include "chromeos/chromeos_test_utils.h"
52 #include "chromeos/dbus/dbus_thread_manager.h" 56 #include "chromeos/dbus/dbus_thread_manager.h"
53 #include "chromeos/dbus/fake_dbus_thread_manager.h" 57 #include "chromeos/dbus/fake_dbus_thread_manager.h"
54 #include "chromeos/dbus/fake_session_manager_client.h" 58 #include "chromeos/dbus/fake_session_manager_client.h"
59 #include "chromeos/network/network_state.h"
55 #include "chromeos/network/network_state_handler.h" 60 #include "chromeos/network/network_state_handler.h"
61 #include "chromeos/settings/timezone_settings.h"
56 #include "content/public/test/browser_test_utils.h" 62 #include "content/public/test/browser_test_utils.h"
57 #include "content/public/test/test_utils.h" 63 #include "content/public/test/test_utils.h"
58 #include "grit/generated_resources.h" 64 #include "grit/generated_resources.h"
59 #include "net/test/spawned_test_server/spawned_test_server.h" 65 #include "net/test/spawned_test_server/spawned_test_server.h"
66 #include "net/url_request/test_url_fetcher_factory.h"
67 #include "net/url_request/url_fetcher_impl.h"
60 #include "testing/gmock/include/gmock/gmock.h" 68 #include "testing/gmock/include/gmock/gmock.h"
61 #include "testing/gtest/include/gtest/gtest.h" 69 #include "testing/gtest/include/gtest/gtest.h"
62 #include "third_party/icu/source/common/unicode/locid.h" 70 #include "third_party/icu/source/common/unicode/locid.h"
63 #include "ui/base/accelerators/accelerator.h" 71 #include "ui/base/accelerators/accelerator.h"
64 #include "ui/base/l10n/l10n_util.h" 72 #include "ui/base/l10n/l10n_util.h"
65 73
66 using ::testing::Exactly; 74 using ::testing::Exactly;
67 using ::testing::Invoke; 75 using ::testing::Invoke;
68 using ::testing::Return; 76 using ::testing::Return;
69 77
70 namespace chromeos { 78 namespace chromeos {
71 79
72 namespace { 80 namespace {
81
73 const char kUsername[] = "test_user@managedchrome.com"; 82 const char kUsername[] = "test_user@managedchrome.com";
74 const char kPassword[] = "test_password"; 83 const char kPassword[] = "test_password";
75 84
85 const char kGeolocationResponseBody[] =
86 "{\n"
87 " \"location\": {\n"
88 " \"lat\": 51.0,\n"
89 " \"lng\": -0.1\n"
90 " },\n"
91 " \"accuracy\": 1200.4\n"
92 "}";
93
94 // Timezone should not match kGeolocationResponseBody to check that exactly
95 // this value will be used.
96 const char kTimezoneResponseBody[] =
97 "{\n"
98 " \"dstOffset\" : 0.0,\n"
99 " \"rawOffset\" : -32400.0,\n"
100 " \"status\" : \"OK\",\n"
101 " \"timeZoneId\" : \"America/Anchorage\",\n"
102 " \"timeZoneName\" : \"Pacific Standard Time\"\n"
103 "}";
104
76 class PrefStoreStub : public TestingPrefStore { 105 class PrefStoreStub : public TestingPrefStore {
77 public: 106 public:
78 // TestingPrefStore overrides: 107 // TestingPrefStore overrides:
79 virtual PrefReadError GetReadError() const OVERRIDE { 108 virtual PrefReadError GetReadError() const OVERRIDE {
80 return PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE; 109 return PersistentPrefStore::PREF_READ_ERROR_JSON_PARSE;
81 } 110 }
82 111
83 virtual bool IsInitializationComplete() const OVERRIDE { 112 virtual bool IsInitializationComplete() const OVERRIDE {
84 return true; 113 return true;
85 } 114 }
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 IN_PROC_BROWSER_TEST_F(WizardControllerTest, VolumeIsAdjustedForChromeVox) { 325 IN_PROC_BROWSER_TEST_F(WizardControllerTest, VolumeIsAdjustedForChromeVox) {
297 SetUpCrasAndEnableChromeVox(5 /* volume_percent */, false /* mute_on */); 326 SetUpCrasAndEnableChromeVox(5 /* volume_percent */, false /* mute_on */);
298 327
299 // Check that output is unmuted now and at some level. 328 // Check that output is unmuted now and at some level.
300 CrasAudioHandler* cras = CrasAudioHandler::Get(); 329 CrasAudioHandler* cras = CrasAudioHandler::Get();
301 ASSERT_FALSE(cras->IsOutputMuted()); 330 ASSERT_FALSE(cras->IsOutputMuted());
302 ASSERT_EQ(WizardController::kMinAudibleOutputVolumePercent, 331 ASSERT_EQ(WizardController::kMinAudibleOutputVolumePercent,
303 cras->GetOutputVolumePercent()); 332 cras->GetOutputVolumePercent());
304 } 333 }
305 334
335 class WizardControllerTestURLFetcherFactory
336 : public net::TestURLFetcherFactory {
337 public:
338 virtual net::URLFetcher* CreateURLFetcher(
339 int id,
340 const GURL& url,
341 net::URLFetcher::RequestType request_type,
342 net::URLFetcherDelegate* d) OVERRIDE {
343 if (StartsWithASCII(
344 url.spec(),
345 SimpleGeolocationProvider::DefaultGeolocationProviderURL().spec(),
346 true)) {
347 return new net::FakeURLFetcher(url,
348 d,
349 std::string(kGeolocationResponseBody),
350 net::HTTP_OK,
351 net::URLRequestStatus::SUCCESS);
352 }
353 if (StartsWithASCII(
354 url.spec(), chromeos::DefaultTimezoneProviderURL().spec(), true)) {
Nikita (slow) 2014/05/22 16:30:43 nit: It is possible to place here each parameter p
Alexander Alekseev 2014/05/22 19:13:32 Ye, it is a result of clang-format. done.
355 return new net::FakeURLFetcher(url,
356 d,
357 std::string(kTimezoneResponseBody),
358 net::HTTP_OK,
359 net::URLRequestStatus::SUCCESS);
360 }
361 return net::TestURLFetcherFactory::CreateURLFetcher(
362 id, url, request_type, d);
363 }
364 virtual ~WizardControllerTestURLFetcherFactory() {}
365 };
366
367 class TimeZoneTestRunner {
368 public:
369 void OnResolved() { loop_.Quit(); }
370 void Run() { loop_.Run(); }
371
372 private:
373 base::RunLoop loop_;
374 };
375
306 class WizardControllerFlowTest : public WizardControllerTest { 376 class WizardControllerFlowTest : public WizardControllerTest {
307 protected: 377 protected:
308 WizardControllerFlowTest() {} 378 WizardControllerFlowTest() {}
309 // Overriden from InProcessBrowserTest: 379 // Overriden from InProcessBrowserTest:
310 virtual void SetUpOnMainThread() OVERRIDE { 380 virtual void SetUpOnMainThread() OVERRIDE {
311 WizardControllerTest::SetUpOnMainThread(); 381 WizardControllerTest::SetUpOnMainThread();
312 382
383 fallback_fetcher_factory_.reset(new WizardControllerTestURLFetcherFactory);
384 net::URLFetcherImpl::set_factory(NULL);
385 fetcher_factory_.reset(
386 new net::FakeURLFetcherFactory(fallback_fetcher_factory_.get()));
387
313 // Make sure that OOBE is run as an "official" build. 388 // Make sure that OOBE is run as an "official" build.
314 WizardController::default_controller()->is_official_build_ = true; 389 WizardController::default_controller()->is_official_build_ = true;
315 390
316 // Clear portal list (as it is by default in OOBE). 391 // Clear portal list (as it is by default in OOBE).
317 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); 392 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList("");
318 393
319 // Set up the mocks for all screens. 394 // Set up the mocks for all screens.
320 MOCK(mock_network_screen_, network_screen_, 395 MOCK(mock_network_screen_, network_screen_,
321 MockNetworkScreen, MockNetworkScreenActor); 396 MockNetworkScreen, MockNetworkScreenActor);
322 MOCK(mock_update_screen_, update_screen_, 397 MOCK(mock_update_screen_, update_screen_,
323 MockUpdateScreen, MockUpdateScreenActor); 398 MockUpdateScreen, MockUpdateScreenActor);
324 MOCK(mock_eula_screen_, eula_screen_, MockEulaScreen, MockEulaScreenActor); 399 MOCK(mock_eula_screen_, eula_screen_, MockEulaScreen, MockEulaScreenActor);
325 MOCK(mock_enrollment_screen_, enrollment_screen_, 400 MOCK(mock_enrollment_screen_, enrollment_screen_,
326 MockEnrollmentScreen, MockEnrollmentScreenActor); 401 MockEnrollmentScreen, MockEnrollmentScreenActor);
327 402
328 // Switch to the initial screen. 403 // Switch to the initial screen.
329 EXPECT_EQ(NULL, WizardController::default_controller()->current_screen()); 404 EXPECT_EQ(NULL, WizardController::default_controller()->current_screen());
330 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); 405 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
331 WizardController::default_controller()->AdvanceToScreen( 406 WizardController::default_controller()->AdvanceToScreen(
332 WizardController::kNetworkScreenName); 407 WizardController::kNetworkScreenName);
333 } 408 }
334 409
410 virtual void TearDown() {
411 fetcher_factory_.reset();
412 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get());
413 fallback_fetcher_factory_.reset();
414 }
415
416 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
417 WizardControllerTest::SetUpInProcessBrowserTestFixture();
418
419 network_portal_detector_ = new NetworkPortalDetectorTestImpl();
420 NetworkPortalDetector::InitializeForTesting(network_portal_detector_);
421 }
422
423 void InitDefaultNetwork() {
424 NetworkPortalDetector::CaptivePortalState online_state;
425 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE;
426 online_state.response_code = 204;
427 // Default detworks happens to be usually "eth1" in tests.
428 network_portal_detector_->SetDefaultNetworkPathForTesting(
429 NetworkHandler::Get()
430 ->network_state_handler()
431 ->DefaultNetwork()
432 ->path());
433 network_portal_detector_->SetDetectionResultsForTesting(
434 NetworkHandler::Get()
435 ->network_state_handler()
436 ->DefaultNetwork()
437 ->path(),
438 online_state);
439 }
440
335 void OnExit(ScreenObserver::ExitCodes exit_code) { 441 void OnExit(ScreenObserver::ExitCodes exit_code) {
336 WizardController::default_controller()->OnExit(exit_code); 442 WizardController::default_controller()->OnExit(exit_code);
337 } 443 }
338 444
445 chromeos::SimpleGeolocationProvider* GetGeolocationProvider() {
446 return WizardController::default_controller()->geolocation_provider_.get();
447 }
448
449 void WaitUntilTimezoneResolved() {
450 scoped_ptr<TimeZoneTestRunner> runner(new TimeZoneTestRunner);
451 if (WizardController::default_controller()->SetOnTimeZoneResolvedForTesting(
452 base::Bind(&TimeZoneTestRunner::OnResolved,
453 base::Unretained(runner.get()))))
454 return;
455
456 runner->Run();
457 }
458
339 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>* 459 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>*
340 mock_network_screen_; 460 mock_network_screen_;
341 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_; 461 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_;
342 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_; 462 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_;
343 MockOutShowHide<MockEnrollmentScreen, 463 MockOutShowHide<MockEnrollmentScreen,
344 MockEnrollmentScreenActor>* mock_enrollment_screen_; 464 MockEnrollmentScreenActor>* mock_enrollment_screen_;
345 465
346 private: 466 private:
467 NetworkPortalDetectorTestImpl* network_portal_detector_;
468
469 // Use a test factory as a fallback so we don't have to deal with other
470 // requests.
471 scoped_ptr<WizardControllerTestURLFetcherFactory> fallback_fetcher_factory_;
472 scoped_ptr<net::FakeURLFetcherFactory> fetcher_factory_;
473
347 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); 474 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest);
348 }; 475 };
349 476
350 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { 477 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) {
351 EXPECT_TRUE(ExistingUserController::current_controller() == NULL); 478 EXPECT_TRUE(ExistingUserController::current_controller() == NULL);
352 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(), 479 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
353 WizardController::default_controller()->current_screen()); 480 WizardController::default_controller()->current_screen());
354 481
355 WaitUntilJSIsReady(); 482 WaitUntilJSIsReady();
356 483
357 // Check visibility of the header bar. 484 // Check visibility of the header bar.
358 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); 485 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
359 486
360 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 487 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
361 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 488 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
362 OnExit(ScreenObserver::NETWORK_CONNECTED); 489 OnExit(ScreenObserver::NETWORK_CONNECTED);
363 490
364 EXPECT_EQ(WizardController::default_controller()->GetEulaScreen(), 491 EXPECT_EQ(WizardController::default_controller()->GetEulaScreen(),
365 WizardController::default_controller()->current_screen()); 492 WizardController::default_controller()->current_screen());
366 493
367 // Header bar should still be visible. 494 // Header bar should still be visible.
368 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); 495 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
369 496
370 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 497 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
371 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 498 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
372 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 499 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
500 // Enable TimeZone resolve
Nikita (slow) 2014/05/22 16:30:43 nit: Not clear how initializing default network en
Alexander Alekseev 2014/05/22 19:13:32 NetworkPortalDetector launches tasks when default
501 InitDefaultNetwork();
373 OnExit(ScreenObserver::EULA_ACCEPTED); 502 OnExit(ScreenObserver::EULA_ACCEPTED);
503 EXPECT_TRUE(GetGeolocationProvider());
374 // Let update screen smooth time process (time = 0ms). 504 // Let update screen smooth time process (time = 0ms).
375 content::RunAllPendingInMessageLoop(); 505 content::RunAllPendingInMessageLoop();
376 506
377 EXPECT_EQ(WizardController::default_controller()->GetUpdateScreen(), 507 EXPECT_EQ(WizardController::default_controller()->GetUpdateScreen(),
378 WizardController::default_controller()->current_screen()); 508 WizardController::default_controller()->current_screen());
379 EXPECT_CALL(*mock_update_screen_, Hide()).Times(0); 509 EXPECT_CALL(*mock_update_screen_, Hide()).Times(0);
380 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); 510 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0);
381 OnExit(ScreenObserver::UPDATE_INSTALLED); 511 OnExit(ScreenObserver::UPDATE_INSTALLED);
382 512
383 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 513 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
384 EXPECT_EQ("ethernet,wifi,cellular", 514 EXPECT_EQ("ethernet,wifi,cellular",
385 NetworkHandler::Get()->network_state_handler() 515 NetworkHandler::Get()->network_state_handler()
386 ->GetCheckPortalListForTest()); 516 ->GetCheckPortalListForTest());
517
518 WaitUntilTimezoneResolved();
519 EXPECT_EQ("America/Anchorage",
520 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance()
521 ->GetCurrentTimezoneID()));
387 } 522 }
388 523
389 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { 524 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) {
390 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(), 525 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
391 WizardController::default_controller()->current_screen()); 526 WizardController::default_controller()->current_screen());
392 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 527 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
393 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 528 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
394 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 529 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
395 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 530 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
396 OnExit(ScreenObserver::NETWORK_CONNECTED); 531 OnExit(ScreenObserver::NETWORK_CONNECTED);
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 979
845 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 980 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
846 981
847 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when 982 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when
848 // UI and logic is ready. http://crbug.com/127016 983 // UI and logic is ready. http://crbug.com/127016
849 984
850 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 21, 985 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 21,
851 add_tests_for_new_control_flow_you_just_introduced); 986 add_tests_for_new_control_flow_you_just_introduced);
852 987
853 } // namespace chromeos 988 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698