| 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 01be42c02ee239116813900ab42517ed646967e1..50bd74907d577eb8a79c0978b97c54c1fdcbbaf8 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', 'getImportantSites']);
|
|
|
| /**
|
| * The promise to return from |clearBrowsingData|.
|
| @@ -21,6 +19,12 @@ cr.define('settings_privacy_page', function() {
|
| * @private {?Promise}
|
| */
|
| this.clearBrowsingDataPromise_ = null;
|
| +
|
| + /**
|
| + * Response for |getImportantSites|.
|
| + * @private {!Array<!ImportantSite>}
|
| + */
|
| + this.importantSites_ = [];
|
| }
|
|
|
| TestClearBrowsingDataBrowserProxy.prototype = {
|
| @@ -32,13 +36,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 {!Array<!ImportantSite>} sites */
|
| + setImportantSites: function(sites) {
|
| + this.importantSites_ = sites;
|
| + },
|
| +
|
| + /** @override */
|
| + getImportantSites: function() {
|
| + this.methodCalled('getImportantSites');
|
| + return Promise.resolve(this.importantSites_);
|
| + },
|
| +
|
| /** @override */
|
| initialize: function() {
|
| this.methodCalled('initialize');
|
| @@ -65,7 +80,7 @@ cr.define('settings_privacy_page', function() {
|
| teardown(function() { page.remove(); });
|
|
|
| test('NativeCertificateManager', function() {
|
| - MockInteractions.tap(page.$.manageCertificates);
|
| + MockInteractions.tap(page.$$('#manageCertificates'));
|
| return testBrowserProxy.whenCalled('showManageSSLCertificates');
|
| });
|
| });
|
| @@ -85,7 +100,7 @@ cr.define('settings_privacy_page', function() {
|
|
|
| test('showClearBrowsingDataDialog', function() {
|
| assertFalse(!!page.$$('settings-clear-browsing-data-dialog'));
|
| - MockInteractions.tap(page.$.clearBrowsingData);
|
| + MockInteractions.tap(page.$$('#clearBrowsingData'));
|
| Polymer.dom.flush();
|
|
|
| var dialog = page.$$('settings-clear-browsing-data-dialog');
|
| @@ -94,7 +109,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', '');
|
| + return test_util.whenAttributeIs(
|
| + dialog.$$('#clearBrowsingDataDialog'), 'open', '');
|
| });
|
| });
|
| }
|
| @@ -119,7 +135,8 @@ cr.define('settings_privacy_page', function() {
|
| teardown(function() { element.remove(); });
|
|
|
| test('ClearBrowsingDataTap', function() {
|
| - assertTrue(element.$.dialog.open);
|
| + assertTrue(element.$$('#clearBrowsingDataDialog').open);
|
| + assertFalse(element.showImportantSitesDialog_);
|
|
|
| var cancelButton = element.$$('.cancel-button');
|
| assertTrue(!!cancelButton);
|
| @@ -136,12 +153,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 +168,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.showImportantSitesDialog_);
|
| });
|
| });
|
|
|
| test('showHistoryDeletionDialog', function() {
|
| - assertTrue(element.$.dialog.open);
|
| + assertTrue(element.$$('#clearBrowsingDataDialog').open);
|
| var actionButton = element.$$('.action-button');
|
| assertTrue(!!actionButton);
|
|
|
| @@ -184,8 +205,8 @@ cr.define('settings_privacy_page', function() {
|
| var noticeActionButton = notice.$$('.action-button');
|
| assertTrue(!!noticeActionButton);
|
|
|
| - assertTrue(element.$.dialog.open);
|
| - assertTrue(notice.$.dialog.open);
|
| + assertTrue(element.$$('#clearBrowsingDataDialog').open);
|
| + assertTrue(notice.$$('#dialog').open);
|
|
|
| MockInteractions.tap(noticeActionButton);
|
|
|
| @@ -197,7 +218,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 +226,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,8 +253,8 @@ cr.define('settings_privacy_page', function() {
|
|
|
| test('history rows are hidden for supervised users', function() {
|
| assertFalse(loadTimeData.getBoolean('isSupervised'));
|
| - assertFalse(element.$.browsingCheckbox.hidden);
|
| - assertFalse(element.$.downloadCheckbox.hidden);
|
| + assertFalse(element.$$('#browsingCheckbox').hidden);
|
| + assertFalse(element.$$('#downloadCheckbox').hidden);
|
|
|
| element.remove();
|
| testBrowserProxy.reset();
|
| @@ -244,13 +265,78 @@ cr.define('settings_privacy_page', function() {
|
| Polymer.dom.flush();
|
|
|
| return testBrowserProxy.whenCalled('initialize').then(function() {
|
| - assertTrue(element.$.browsingCheckbox.hidden);
|
| - assertTrue(element.$.downloadCheckbox.hidden);
|
| + assertTrue(element.$$('#browsingCheckbox').hidden);
|
| + assertTrue(element.$$('#downloadCheckbox').hidden);
|
| });
|
| });
|
| });
|
| }
|
|
|
| + 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}
|
| + ];
|
| +
|
| + setup(function() {
|
| + loadTimeData.overrideValues({importantSitesInCbd: true});
|
| + testBrowserProxy = new TestClearBrowsingDataBrowserProxy();
|
| + testBrowserProxy.setImportantSites(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('getImportantSites');
|
| + });
|
| + });
|
| +
|
| + teardown(function() {
|
| + element.remove();
|
| + });
|
| +
|
| + test('getImportantSites', function() {
|
| + assertTrue(element.$$('#clearBrowsingDataDialog').open);
|
| + assertFalse(element.showImportantSitesDialog_);
|
| + // Select an entry that can have important storage.
|
| + element.$$('#cookiesCheckbox').checked = true;
|
| + // Clear browsing data.
|
| + MockInteractions.tap(element.$$('#clearBrowsingDataConfirm'));
|
| + Polymer.dom.flush();
|
| + assertFalse(element.$$('#clearBrowsingDataDialog').open);
|
| + assertTrue(element.showImportantSitesDialog_);
|
| + return new Promise(function(resolve) { element.async(resolve); })
|
| + .then(function() {
|
| + assertTrue(element.$$('#importantSitesDialog').open);
|
| + 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} */
|
| @@ -274,7 +360,7 @@ cr.define('settings_privacy_page', function() {
|
| Polymer.dom.flush();
|
|
|
| // Control starts checked by default
|
| - var control = page.$.safeBrowsingExtendedReportingControl;
|
| + var control = page.$$('#safeBrowsingExtendedReportingControl');
|
| assertEquals(true, control.checked);
|
|
|
| // Notification from browser can uncheck the box
|
|
|