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

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

Powered by Google App Engine
This is Rietveld 408576698