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

Unified Diff: chrome/test/data/webui/settings/people_page_test.js

Issue 2614883004: [MD Settings] Fixes the crash when navigating directly to chrome://md-settings/signOut (Closed)
Patch Set: fixed cros tests Created 3 years, 11 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 | « chrome/browser/ui/webui/settings/profile_info_handler.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/settings/people_page_test.js
diff --git a/chrome/test/data/webui/settings/people_page_test.js b/chrome/test/data/webui/settings/people_page_test.js
index 415db6cf70cb511d9ab98ee1710673837c255ac0..ba5b7887326e49cb161b100dd414aa7d327582e2 100644
--- a/chrome/test/data/webui/settings/people_page_test.js
+++ b/chrome/test/data/webui/settings/people_page_test.js
@@ -62,6 +62,7 @@ cr.define('settings_people_page', function() {
this.methodCalled('getSyncStatus');
return Promise.resolve({
signedIn: true,
+ signedInUsername: 'fakeUsername'
});
},
@@ -141,6 +142,7 @@ cr.define('settings_people_page', function() {
suite('SyncStatusTests', function() {
var peoplePage = null;
var browserProxy = null;
+ var profileInfoBrowserProxy = null;
suiteSetup(function() {
// Force easy unlock off. Those have their own ChromeOS-only tests.
@@ -153,6 +155,10 @@ cr.define('settings_people_page', function() {
browserProxy = new TestSyncBrowserProxy();
settings.SyncBrowserProxyImpl.instance_ = browserProxy;
+ profileInfoBrowserProxy = new TestProfileInfoBrowserProxy();
+ settings.ProfileInfoBrowserProxyImpl.instance_ =
+ profileInfoBrowserProxy;
+
PolymerTest.clearBody();
peoplePage = document.createElement('settings-people-page');
document.body.appendChild(peoplePage);
@@ -227,6 +233,70 @@ cr.define('settings_people_page', function() {
});
});
+ test('getProfileStatsCount', function() {
+ return profileInfoBrowserProxy.whenCalled('getProfileStatsCount')
+ .then(function() {
+ Polymer.dom.flush();
+
+ // Open the disconnect dialog.
+ disconnectButton = peoplePage.$$('#disconnectButton');
+ assertTrue(!!disconnectButton);
+ MockInteractions.tap(disconnectButton);
+ Polymer.dom.flush();
+
+ assertTrue(peoplePage.$.disconnectDialog.open);
+
+ // Assert the warning message is as expected.
+ var warningMessage = peoplePage.$$('.delete-profile-warning');
+
+ cr.webUIListenerCallback('profile-stats-count-ready', 0);
+ assertEquals(
+ loadTimeData.getStringF('deleteProfileWarningWithoutCounts',
+ 'fakeUsername'),
+ warningMessage.textContent.trim());
+
+ cr.webUIListenerCallback('profile-stats-count-ready', 1);
+ assertEquals(
+ loadTimeData.getStringF('deleteProfileWarningWithCountsSingular',
+ 'fakeUsername'),
+ warningMessage.textContent.trim());
+
+ cr.webUIListenerCallback('profile-stats-count-ready', 2);
+ assertEquals(
+ loadTimeData.getStringF('deleteProfileWarningWithCountsPlural', 2,
+ 'fakeUsername'),
+ warningMessage.textContent.trim());
+
+ // Close the disconnect dialog.
+ MockInteractions.tap(peoplePage.$.disconnectConfirm);
+ return new Promise(function(resolve) {
+ listenOnce(window, 'popstate', resolve);
+ });
+ });
+ });
+
+ test('NavigateDirectlyToSignOutURL', function() {
+ // Navigate to chrome://md-settings/signOut
+ settings.navigateTo(settings.Route.SIGN_OUT);
+ Polymer.dom.flush();
+
+ assertTrue(peoplePage.$.disconnectDialog.open);
+
+ return profileInfoBrowserProxy.whenCalled('getProfileStatsCount')
+ .then(function() {
+ // 'getProfileStatsCount' can be the first message sent to the handler
+ // if the user navigates directly to chrome://md-settings/signOut. if
+ // so, it should not cause a crash.
+ new settings.ProfileInfoBrowserProxyImpl().getProfileStatsCount();
+
+ // Close the disconnect dialog.
+ MockInteractions.tap(peoplePage.$.disconnectConfirm);
+ return new Promise(function(resolve) {
+ listenOnce(window, 'popstate', resolve);
+ });
+ });
+ });
+
test('Signout dialog suppressed when not signed in', function() {
return browserProxy.whenCalled('getSyncStatus').then(function() {
Polymer.dom.flush();
« no previous file with comments | « chrome/browser/ui/webui/settings/profile_info_handler.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698