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

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: Update after review. 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)) {
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(new net::FakeURLFetcherFactory(
386 fallback_fetcher_factory_.get(),
387 net::FakeURLFetcherFactory::CreateDefaultFakeURLFetcherCreator()));
mmenke 2014/05/21 19:40:16 This is the same as FakeURLFetcherFactory(fallback
Alexander Alekseev 2014/05/21 20:26:04 This was the first thing I've tried, but it crashe
mmenke 2014/05/21 20:31:11 Not a problem.
388
313 // Make sure that OOBE is run as an "official" build. 389 // Make sure that OOBE is run as an "official" build.
314 WizardController::default_controller()->is_official_build_ = true; 390 WizardController::default_controller()->is_official_build_ = true;
315 391
316 // Clear portal list (as it is by default in OOBE). 392 // Clear portal list (as it is by default in OOBE).
317 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList(""); 393 NetworkHandler::Get()->network_state_handler()->SetCheckPortalList("");
318 394
319 // Set up the mocks for all screens. 395 // Set up the mocks for all screens.
320 MOCK(mock_network_screen_, network_screen_, 396 MOCK(mock_network_screen_, network_screen_,
321 MockNetworkScreen, MockNetworkScreenActor); 397 MockNetworkScreen, MockNetworkScreenActor);
322 MOCK(mock_update_screen_, update_screen_, 398 MOCK(mock_update_screen_, update_screen_,
323 MockUpdateScreen, MockUpdateScreenActor); 399 MockUpdateScreen, MockUpdateScreenActor);
324 MOCK(mock_eula_screen_, eula_screen_, MockEulaScreen, MockEulaScreenActor); 400 MOCK(mock_eula_screen_, eula_screen_, MockEulaScreen, MockEulaScreenActor);
325 MOCK(mock_enrollment_screen_, enrollment_screen_, 401 MOCK(mock_enrollment_screen_, enrollment_screen_,
326 MockEnrollmentScreen, MockEnrollmentScreenActor); 402 MockEnrollmentScreen, MockEnrollmentScreenActor);
327 403
328 // Switch to the initial screen. 404 // Switch to the initial screen.
329 EXPECT_EQ(NULL, WizardController::default_controller()->current_screen()); 405 EXPECT_EQ(NULL, WizardController::default_controller()->current_screen());
330 EXPECT_CALL(*mock_network_screen_, Show()).Times(1); 406 EXPECT_CALL(*mock_network_screen_, Show()).Times(1);
331 WizardController::default_controller()->AdvanceToScreen( 407 WizardController::default_controller()->AdvanceToScreen(
332 WizardController::kNetworkScreenName); 408 WizardController::kNetworkScreenName);
333 } 409 }
334 410
411 virtual void TearDown() {
412 fetcher_factory_.reset();
413 net::URLFetcherImpl::set_factory(fallback_fetcher_factory_.get());
414 fallback_fetcher_factory_.reset();
415 }
416
417 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
418 WizardControllerTest::SetUpInProcessBrowserTestFixture();
419
420 network_portal_detector_ = new NetworkPortalDetectorTestImpl();
421 NetworkPortalDetector::InitializeForTesting(network_portal_detector_);
422 }
423
424 void InitDefaultNetwork() {
425 NetworkPortalDetector::CaptivePortalState online_state;
426 online_state.status = NetworkPortalDetector::CAPTIVE_PORTAL_STATUS_ONLINE;
427 online_state.response_code = 204;
428 // Default detworks happens to be usually "eth1" in tests.
429 network_portal_detector_->SetDefaultNetworkPathForTesting(
430 NetworkHandler::Get()
431 ->network_state_handler()
432 ->DefaultNetwork()
433 ->path());
434 network_portal_detector_->SetDetectionResultsForTesting(
435 NetworkHandler::Get()
436 ->network_state_handler()
437 ->DefaultNetwork()
438 ->path(),
439 online_state);
440 }
441
335 void OnExit(ScreenObserver::ExitCodes exit_code) { 442 void OnExit(ScreenObserver::ExitCodes exit_code) {
336 WizardController::default_controller()->OnExit(exit_code); 443 WizardController::default_controller()->OnExit(exit_code);
337 } 444 }
338 445
446 chromeos::SimpleGeolocationProvider* GetGeolocationProvider() {
447 return WizardController::default_controller()->geolocation_provider_.get();
448 }
449
450 void WaitUntilTimezoneResolved() {
451 scoped_ptr<TimeZoneTestRunner> runner(new TimeZoneTestRunner);
452 if (WizardController::default_controller()->SetOnTimeZoneResolvedForTesting(
453 base::Bind(&TimeZoneTestRunner::OnResolved,
454 base::Unretained(runner.get()))))
455 return;
456
457 runner->Run();
458 }
459
339 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>* 460 MockOutShowHide<MockNetworkScreen, MockNetworkScreenActor>*
340 mock_network_screen_; 461 mock_network_screen_;
341 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_; 462 MockOutShowHide<MockUpdateScreen, MockUpdateScreenActor>* mock_update_screen_;
342 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_; 463 MockOutShowHide<MockEulaScreen, MockEulaScreenActor>* mock_eula_screen_;
343 MockOutShowHide<MockEnrollmentScreen, 464 MockOutShowHide<MockEnrollmentScreen,
344 MockEnrollmentScreenActor>* mock_enrollment_screen_; 465 MockEnrollmentScreenActor>* mock_enrollment_screen_;
345 466
346 private: 467 private:
468 NetworkPortalDetectorTestImpl* network_portal_detector_;
469
470 // Use a test factory as a fallback so we don't have to deal with other
471 // requests.
472 scoped_ptr<WizardControllerTestURLFetcherFactory> fallback_fetcher_factory_;
473 scoped_ptr<net::FakeURLFetcherFactory> fetcher_factory_;
474
347 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest); 475 DISALLOW_COPY_AND_ASSIGN(WizardControllerFlowTest);
348 }; 476 };
349 477
350 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) { 478 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowMain) {
351 EXPECT_TRUE(ExistingUserController::current_controller() == NULL); 479 EXPECT_TRUE(ExistingUserController::current_controller() == NULL);
352 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(), 480 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
353 WizardController::default_controller()->current_screen()); 481 WizardController::default_controller()->current_screen());
354 482
355 WaitUntilJSIsReady(); 483 WaitUntilJSIsReady();
356 484
357 // Check visibility of the header bar. 485 // Check visibility of the header bar.
358 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); 486 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
359 487
360 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 488 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
361 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 489 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
362 OnExit(ScreenObserver::NETWORK_CONNECTED); 490 OnExit(ScreenObserver::NETWORK_CONNECTED);
363 491
364 EXPECT_EQ(WizardController::default_controller()->GetEulaScreen(), 492 EXPECT_EQ(WizardController::default_controller()->GetEulaScreen(),
365 WizardController::default_controller()->current_screen()); 493 WizardController::default_controller()->current_screen());
366 494
367 // Header bar should still be visible. 495 // Header bar should still be visible.
368 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden")); 496 ASSERT_FALSE(JSExecuteBooleanExpression("$('login-header-bar').hidden"));
369 497
370 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1); 498 EXPECT_CALL(*mock_eula_screen_, Hide()).Times(1);
371 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1); 499 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(1);
372 EXPECT_CALL(*mock_update_screen_, Show()).Times(1); 500 EXPECT_CALL(*mock_update_screen_, Show()).Times(1);
501 // Enable TimeZone resolve
502 InitDefaultNetwork();
373 OnExit(ScreenObserver::EULA_ACCEPTED); 503 OnExit(ScreenObserver::EULA_ACCEPTED);
504 EXPECT_TRUE(GetGeolocationProvider());
374 // Let update screen smooth time process (time = 0ms). 505 // Let update screen smooth time process (time = 0ms).
375 content::RunAllPendingInMessageLoop(); 506 content::RunAllPendingInMessageLoop();
376 507
377 EXPECT_EQ(WizardController::default_controller()->GetUpdateScreen(), 508 EXPECT_EQ(WizardController::default_controller()->GetUpdateScreen(),
378 WizardController::default_controller()->current_screen()); 509 WizardController::default_controller()->current_screen());
379 EXPECT_CALL(*mock_update_screen_, Hide()).Times(0); 510 EXPECT_CALL(*mock_update_screen_, Hide()).Times(0);
380 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0); 511 EXPECT_CALL(*mock_eula_screen_, Show()).Times(0);
381 OnExit(ScreenObserver::UPDATE_INSTALLED); 512 OnExit(ScreenObserver::UPDATE_INSTALLED);
382 513
383 EXPECT_FALSE(ExistingUserController::current_controller() == NULL); 514 EXPECT_FALSE(ExistingUserController::current_controller() == NULL);
384 EXPECT_EQ("ethernet,wifi,cellular", 515 EXPECT_EQ("ethernet,wifi,cellular",
385 NetworkHandler::Get()->network_state_handler() 516 NetworkHandler::Get()->network_state_handler()
386 ->GetCheckPortalListForTest()); 517 ->GetCheckPortalListForTest());
518
519 WaitUntilTimezoneResolved();
520 EXPECT_EQ("America/Anchorage",
521 base::UTF16ToUTF8(chromeos::system::TimezoneSettings::GetInstance()
522 ->GetCurrentTimezoneID()));
387 } 523 }
388 524
389 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) { 525 IN_PROC_BROWSER_TEST_F(WizardControllerFlowTest, ControlFlowErrorUpdate) {
390 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(), 526 EXPECT_EQ(WizardController::default_controller()->GetNetworkScreen(),
391 WizardController::default_controller()->current_screen()); 527 WizardController::default_controller()->current_screen());
392 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0); 528 EXPECT_CALL(*mock_update_screen_, StartNetworkCheck()).Times(0);
393 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1); 529 EXPECT_CALL(*mock_eula_screen_, Show()).Times(1);
394 EXPECT_CALL(*mock_update_screen_, Show()).Times(0); 530 EXPECT_CALL(*mock_update_screen_, Show()).Times(0);
395 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1); 531 EXPECT_CALL(*mock_network_screen_, Hide()).Times(1);
396 OnExit(ScreenObserver::NETWORK_CONNECTED); 532 OnExit(ScreenObserver::NETWORK_CONNECTED);
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 980
845 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571 981 // TODO(nkostylev): Add test for WebUI accelerators http://crosbug.com/22571
846 982
847 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when 983 // TODO(merkulova): Add tests for bluetooth HID detection screen variations when
848 // UI and logic is ready. http://crbug.com/127016 984 // UI and logic is ready. http://crbug.com/127016
849 985
850 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 21, 986 COMPILE_ASSERT(ScreenObserver::EXIT_CODES_COUNT == 21,
851 add_tests_for_new_control_flow_you_just_introduced); 987 add_tests_for_new_control_flow_you_just_introduced);
852 988
853 } // namespace chromeos 989 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698