Chromium Code Reviews| Index: chrome/browser/chromeos/login/oobe_browsertest.cc |
| diff --git a/chrome/browser/chromeos/login/oobe_browsertest.cc b/chrome/browser/chromeos/login/oobe_browsertest.cc |
| index b0ffedf8d53ab342351e84a44a6673d009d56501..b0d3709a25acdb80506d0def5c818e17a2a3cfd8 100644 |
| --- a/chrome/browser/chromeos/login/oobe_browsertest.cc |
| +++ b/chrome/browser/chromeos/login/oobe_browsertest.cc |
| @@ -40,7 +40,10 @@ class TestBrowserMainExtraParts |
| : public ChromeBrowserMainExtraParts, |
| public content::NotificationObserver { |
| public: |
| - TestBrowserMainExtraParts() {} |
| + TestBrowserMainExtraParts() |
| + : webui_visible_(false), |
| + browsing_data_removed_(false), |
| + signin_screen_shown_(false) {} |
| virtual ~TestBrowserMainExtraParts() {} |
| // ChromeBrowserMainExtraParts implementation. |
| @@ -49,6 +52,8 @@ class TestBrowserMainExtraParts |
| content::NotificationService::AllSources()); |
| registrar_.Add(this, chrome::NOTIFICATION_SESSION_STARTED, |
| content::NotificationService::AllSources()); |
| + registrar_.Add(this, chrome::NOTIFICATION_BROWSING_DATA_REMOVED, |
| + content::NotificationService::AllSources()); |
| } |
| void set_quit_task(const base::Closure& quit_task) { quit_task_ = quit_task; } |
| @@ -61,17 +66,18 @@ class TestBrowserMainExtraParts |
| const content::NotificationDetails& details) OVERRIDE { |
| if (type == chrome::NOTIFICATION_LOGIN_WEBUI_VISIBLE) { |
| LOG(INFO) << "NOTIFICATION_LOGIN_WEBUI_VISIBLE"; |
| - chromeos::ExistingUserController* controller = |
| - chromeos::ExistingUserController::current_controller(); |
| - CHECK(controller); |
| - chromeos::WebUILoginDisplay* webui_login_display = |
| - static_cast<chromeos::WebUILoginDisplay*>( |
| - controller->login_display()); |
| - CHECK(webui_login_display); |
| - webui_login_display->SetGaiaOriginForTesting(gaia_url_); |
| - webui_login_display->ShowSigninScreenForCreds("username", "password"); |
| - // TODO(glotov): mock GAIA server (test_server_) should support |
| - // username/password configuration. |
| + webui_visible_ = true; |
| + if (browsing_data_removed_ && !signin_screen_shown_) { |
| + signin_screen_shown_ = true; |
| + ShowSigninScreen(); |
| + } |
| + } else if (type == chrome::NOTIFICATION_BROWSING_DATA_REMOVED) { |
| + LOG(INFO) << "chrome::NOTIFICATION_BROWSING_DATA_REMOVED"; |
| + browsing_data_removed_ = true; |
| + if (webui_visible_ && !signin_screen_shown_) { |
| + signin_screen_shown_ = true; |
| + ShowSigninScreen(); |
| + } |
| } else if (type == chrome::NOTIFICATION_SESSION_STARTED) { |
| LOG(INFO) << "chrome::NOTIFICATION_SESSION_STARTED"; |
| quit_task_.Run(); |
| @@ -80,6 +86,21 @@ class TestBrowserMainExtraParts |
| } |
| } |
| + void ShowSigninScreen() { |
| + chromeos::ExistingUserController* controller = |
| + chromeos::ExistingUserController::current_controller(); |
| + CHECK(controller); |
| + chromeos::WebUILoginDisplay* webui_login_display = |
| + static_cast<chromeos::WebUILoginDisplay*>( |
| + controller->login_display()); |
| + CHECK(webui_login_display); |
| + webui_login_display->SetGaiaOriginForTesting(gaia_url_); |
| + webui_login_display->ShowSigninScreenForCreds("username", "password"); |
| + // TODO(glotov): mock GAIA server (test_server_) should support |
| + // username/password configuration. |
| + } |
| + |
| + bool webui_visible_, browsing_data_removed_, signin_screen_shown_; |
| content::NotificationRegistrar registrar_; |
| base::Closure quit_task_; |
| std::string gaia_url_; |
| @@ -187,6 +208,7 @@ class OobeTest : public chromeos::CrosInProcessBrowserTest { |
| // needs UI thread. |
| }; |
| +// Temporally disabled because of a race: crbug.com/178009 |
|
Nikita (slow)
2013/04/19 07:34:07
Is this still disabled?
kjellander_chromium
2013/04/19 07:38:59
Confusing. I guess this CL needs a rebase and then
glotov
2013/04/19 09:21:12
Done.
|
| IN_PROC_BROWSER_TEST_F(OobeTest, NewUser) { |
| chromeos::WizardController::SkipPostLoginScreensForTesting(); |
| chromeos::WizardController* wizard_controller = |