Chromium Code Reviews| 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..d6fc89d34f4758a4b56c77dae3cac5035c1763a7 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_ = {importantSites: []}; |
|
Dan Beam
2017/05/16 19:46:09
if we change to just an array all of this codes ge
dullweber
2017/05/17 09:57:37
Done.
|
| } |
| 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', ''); |
| + return test_util.whenAttributeIs( |
| + dialog.$.clearBrowsingDataDialog, 'open', ''); |
| }); |
| }); |
| } |
| @@ -113,13 +130,14 @@ 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') |
| }); |
| 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 +154,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 +169,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,7 +206,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 +219,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 +227,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. |
| @@ -251,6 +273,74 @@ 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} |
| + ]; |
| + |
| + setup(function() { |
| + loadTimeData.overrideValues({importantSitesInCbd: true}); |
| + 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.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} */ |