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

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

Issue 2716333002: Implement important sites dialog for desktop. (Closed)
Patch Set: fix comments Created 3 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 side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/webui/settings/privacy_page_test.js
diff --git a/chrome/test/data/webui/settings/privacy_page_test.js b/chrome/test/data/webui/settings/privacy_page_test.js
index 0488099c61caf12b4cc1e8dd97dfd7fcc128c55a..01c1bd219d4890ab4b579ce0a22d607dd0a097fd 100644
--- a/chrome/test/data/webui/settings/privacy_page_test.js
+++ b/chrome/test/data/webui/settings/privacy_page_test.js
@@ -9,10 +9,8 @@ cr.define('settings_privacy_page', function() {
* @implements {settings.ClearBrowsingDataBrowserProxy}
*/
function TestClearBrowsingDataBrowserProxy() {
- settings.TestBrowserProxy.call(this, [
- 'initialize',
- 'clearBrowsingData',
- ]);
+ settings.TestBrowserProxy.call(
+ this, ['initialize', 'clearBrowsingData', 'fetchImportantSites']);
/**
* The promise to return from |clearBrowsingData|.
@@ -21,6 +19,13 @@ cr.define('settings_privacy_page', function() {
* @private {?Promise}
*/
this.clearBrowsingDataPromise_ = null;
+
+ /**
+ * Default response for fetchImportantSites. It tells the ui that important
+ * sites are disabled.
+ * @private {!ImportantSitesResponse}
+ */
+ this.importantSitesResponse_ = {flagEnabled: false, importantSites: []};
}
TestClearBrowsingDataBrowserProxy.prototype = {
@@ -32,13 +37,24 @@ cr.define('settings_privacy_page', function() {
},
/** @override */
- clearBrowsingData: function() {
- this.methodCalled('clearBrowsingData');
+ clearBrowsingData: function(importantSites) {
+ this.methodCalled('clearBrowsingData', importantSites);
cr.webUIListenerCallback('browsing-data-removing', true);
return this.clearBrowsingDataPromise_ !== null ?
this.clearBrowsingDataPromise_ : Promise.resolve();
},
+ /** @param {!ImportantSitesResponse} response */
+ setImportantSitesResponse: function(response) {
+ this.importantSitesResponse_ = response;
+ },
+
+ /** @override */
+ fetchImportantSites: function() {
+ this.methodCalled('fetchImportantSites');
+ return Promise.resolve(this.importantSitesResponse_);
+ },
+
/** @override */
initialize: function() {
this.methodCalled('initialize');
@@ -94,7 +110,8 @@ cr.define('settings_privacy_page', function() {
// Ensure that the dialog is fully opened before returning from this
// test, otherwise asynchronous code run in attached() can cause flaky
// errors.
- return test_util.whenAttributeIs(dialog.$.dialog, 'open', true);
+ return test_util.whenAttributeIs(
+ dialog.$.clearBrowsingDataDialog, 'open', true);
});
});
}
@@ -113,13 +130,17 @@ cr.define('settings_privacy_page', function() {
PolymerTest.clearBody();
element = document.createElement('settings-clear-browsing-data-dialog');
document.body.appendChild(element);
- return testBrowserProxy.whenCalled('initialize');
+ return testBrowserProxy.whenCalled('initialize').then(function() {
+ return testBrowserProxy.whenCalled('fetchImportantSites');
+ });
});
teardown(function() { element.remove(); });
test('ClearBrowsingDataTap', function() {
- assertTrue(element.$.dialog.open);
+ assertTrue(element.$.clearBrowsingDataDialog.open);
+ assertFalse(element.$.importantSitesDialog.open);
+ assertFalse(element.importantSitesFlagEnabled_);
var cancelButton = element.$$('.cancel-button');
assertTrue(!!cancelButton);
@@ -136,12 +157,13 @@ cr.define('settings_privacy_page', function() {
testBrowserProxy.setClearBrowsingDataPromise(promiseResolver.promise);
MockInteractions.tap(actionButton);
- return testBrowserProxy.whenCalled('clearBrowsingData').then(
- function() {
- assertTrue(element.$.dialog.open);
+ return testBrowserProxy.whenCalled('clearBrowsingData')
+ .then(function(importantSites) {
+ assertTrue(element.$.clearBrowsingDataDialog.open);
assertTrue(cancelButton.disabled);
assertTrue(actionButton.disabled);
assertTrue(spinner.active);
+ assertTrue(importantSites.length == 0);
// Simulate signal from browser indicating that clearing has
// completed.
@@ -150,17 +172,20 @@ cr.define('settings_privacy_page', function() {
// Yields to the message loop to allow the callback chain of the
// Promise that was just resolved to execute before the
// assertions.
- }).then(function() {
- assertFalse(element.$.dialog.open);
+ })
+ .then(function() {
+ assertFalse(element.$.clearBrowsingDataDialog.open);
assertFalse(cancelButton.disabled);
assertFalse(actionButton.disabled);
assertFalse(spinner.active);
assertFalse(!!element.$$('#notice'));
+ // Check that the dialog didn't switch to important sites.
+ assertFalse(element.$.importantSitesDialog.open);
});
});
test('showHistoryDeletionDialog', function() {
- assertTrue(element.$.dialog.open);
+ assertTrue(element.$.clearBrowsingDataDialog.open);
var actionButton = element.$$('.action-button');
assertTrue(!!actionButton);
@@ -184,7 +209,7 @@ cr.define('settings_privacy_page', function() {
var noticeActionButton = notice.$$('.action-button');
assertTrue(!!noticeActionButton);
- assertTrue(element.$.dialog.open);
+ assertTrue(element.$.clearBrowsingDataDialog.open);
assertTrue(notice.$.dialog.open);
MockInteractions.tap(noticeActionButton);
@@ -197,7 +222,7 @@ cr.define('settings_privacy_page', function() {
setTimeout(function() {
var notice = element.$$('#notice');
assertFalse(!!notice);
- assertFalse(element.$.dialog.open);
+ assertFalse(element.$.clearBrowsingDataDialog.open);
resolve();
}, 0);
});
@@ -205,7 +230,7 @@ cr.define('settings_privacy_page', function() {
});
test('Counters', function() {
- assertTrue(element.$.dialog.open);
+ assertTrue(element.$.clearBrowsingDataDialog.open);
// Initialize the browsing history pref, which should belong to the
// first checkbox in the dialog.
@@ -232,6 +257,69 @@ cr.define('settings_privacy_page', function() {
});
}
+ suite('ImportantSites', function() {
+ /** @type {settings.TestClearBrowsingDataBrowserProxy} */
+ var testBrowserProxy;
+
+ /** @type {SettingsClearBrowsingDataDialogElement} */
+ var element;
+
+ /** @type {Array<ImportantSite>} */
+ var importantSites = [
+ {registerableDomain: 'google.com', isChecked: true},
+ {registerableDomain: 'yahoo.com', isChecked: true}
+ ]
Dan Beam 2017/05/09 19:23:18 ] -> ];
dullweber 2017/05/11 13:13:48 Done.
+
+ setup(function() {
+ testBrowserProxy = new TestClearBrowsingDataBrowserProxy();
+ testBrowserProxy.setImportantSitesResponse({
+ flagEnabled: true,
+ importantSites: importantSites,
+ });
+ settings.ClearBrowsingDataBrowserProxyImpl.instance_ = testBrowserProxy;
+ PolymerTest.clearBody();
+ element = document.createElement('settings-clear-browsing-data-dialog');
+ document.body.appendChild(element);
+ return testBrowserProxy.whenCalled('initialize').then(function() {
+ return testBrowserProxy.whenCalled('fetchImportantSites');
+ });
+ });
+
+ teardown(function() {
+ element.remove();
+ });
+
+ test('fetchImportantSites', function() {
+ assertTrue(element.$.clearBrowsingDataDialog.open);
+ assertFalse(element.$.importantSitesDialog.open);
+ // Select an entry that can have important storage.
+ element.$.cookiesCheckbox.checked = true;
+ // Clear browsing data.
+ MockInteractions.tap(element.$.clearBrowsingDataConfirm);
+ assertFalse(element.$.clearBrowsingDataDialog.open);
+ assertTrue(element.$.importantSitesDialog.open);
+
+ Polymer.dom.flush();
+ var firstImportantSite = element.$$('important-site-checkbox')
+ assertTrue(!!firstImportantSite);
+ assertEquals(firstImportantSite.site.registerableDomain, 'google.com');
+ assertTrue(firstImportantSite.site.isChecked)
+ // Choose to keep storage for google.com.
+ MockInteractions.tap(firstImportantSite.$.checkbox);
+ assertFalse(firstImportantSite.site.isChecked)
+ // Confirm deletion.
+ MockInteractions.tap(element.$.importantSitesConfirm);
+ return testBrowserProxy.whenCalled('clearBrowsingData')
+ .then(function(sites) {
+ assertEquals(sites.length, 2);
+ assertEquals(sites[0].registerableDomain, 'google.com');
+ assertFalse(sites[0].isChecked);
+ assertEquals(sites[1].registerableDomain, 'yahoo.com');
+ assertTrue(sites[1].isChecked);
+ });
+ });
+ });
+
function registerSafeBrowsingExtendedReportingTests() {
suite('SafeBrowsingExtendedReporting', function() {
/** @type {settings.TestPrivacyPageBrowserProxy} */

Powered by Google App Engine
This is Rietveld 408576698