| 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 bb1f707be89096e179e5b6801eb0abfd9d1e57db..e66246bf4012c636cb2cf8f76466de3620aae60e 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,8 +208,7 @@ class OobeTest : public chromeos::CrosInProcessBrowserTest {
|
| // needs UI thread.
|
| };
|
|
|
| -// Temporally disabled because of a race: crbug.com/178009
|
| -IN_PROC_BROWSER_TEST_F(OobeTest, DISABLED_NewUser) {
|
| +IN_PROC_BROWSER_TEST_F(OobeTest, NewUser) {
|
| chromeos::WizardController::SkipPostLoginScreensForTesting();
|
| chromeos::WizardController* wizard_controller =
|
| chromeos::WizardController::default_controller();
|
|
|