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

Unified Diff: chrome/browser/chromeos/login/oobe_browsertest.cc

Issue 13895008: Fix the data race of OobeTest.NewUser browser test and enable it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/browser/resources/chromeos/login/screen_gaia_signin.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 =
« no previous file with comments | « no previous file | chrome/browser/resources/chromeos/login/screen_gaia_signin.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698