Commit b325bd59 authored by dpapad's avatar dpapad Committed by Commit Bot

WebUI Polymer 2: Fix runtime error preventing CBD dialog from opening.

Bug: 896585
Change-Id: Ifdb8e98e2f58e943dbf2e3ace265a5000757077d
Reviewed-on: https://chromium-review.googlesource.com/c/1289155Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Commit-Queue: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601188}
parent bcd182d4
......@@ -22,6 +22,7 @@ Polymer({
/**
* The current sync status, supplied by SyncBrowserProxy.
* TODO(dpapad): make |syncStatus| private.
* @type {?settings.SyncStatus}
*/
syncStatus: Object,
......@@ -431,6 +432,6 @@ Polymer({
* @private
*/
shouldShowFooter_: function() {
return this.diceEnabled_ && !!this.syncStatus.signedIn;
return this.diceEnabled_ && !!this.syncStatus && !!this.syncStatus.signedIn;
},
});
......@@ -268,7 +268,6 @@ cr.define('settings_privacy_page', function() {
PolymerTest.clearBody();
element = document.createElement('settings-clear-browsing-data-dialog');
element.set('prefs', getClearBrowsingDataPrefs());
element.syncStatus = {signedIn: true, hasError: false};
document.body.appendChild(element);
return testBrowserProxy.whenCalled('initialize').then(() => {
assertTrue(element.$$('#clearBrowsingDataDialog').open);
......@@ -281,19 +280,19 @@ cr.define('settings_privacy_page', function() {
test('ClearBrowsingDataSyncAccountInfoDice', function() {
// Not syncing: the footer is hidden.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: false,
hasError: false,
};
});
Polymer.dom.flush();
const footer = element.$$('#clearBrowsingDataDialog [slot=footer]');
assertTrue(footer.hidden);
// Syncing: the footer is shown, with the normal sync info.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: false,
};
});
Polymer.dom.flush();
assertFalse(footer.hidden);
assertVisible(element.$$('#sync-info'), true);
......@@ -302,11 +301,11 @@ cr.define('settings_privacy_page', function() {
assertVisible(element.$$('#sync-other-error-info'), false);
// Sync is paused.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.REAUTHENTICATE,
};
});
Polymer.dom.flush();
assertVisible(element.$$('#sync-info'), false);
assertVisible(element.$$('#sync-paused-info'), true);
......@@ -314,11 +313,11 @@ cr.define('settings_privacy_page', function() {
assertVisible(element.$$('#sync-other-error-info'), false);
// Sync passphrase error.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.ENTER_PASSPHRASE,
};
});
Polymer.dom.flush();
assertVisible(element.$$('#sync-info'), false);
assertVisible(element.$$('#sync-paused-info'), false);
......@@ -326,11 +325,11 @@ cr.define('settings_privacy_page', function() {
assertVisible(element.$$('#sync-other-error-info'), false);
// Other sync error.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.NO_ACTION,
};
});
Polymer.dom.flush();
assertVisible(element.$$('#sync-info'), false);
assertVisible(element.$$('#sync-paused-info'), false);
......@@ -339,10 +338,10 @@ cr.define('settings_privacy_page', function() {
});
test('ClearBrowsingDataPauseSyncDice', function() {
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: false,
};
});
Polymer.dom.flush();
assertFalse(
element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
......@@ -356,11 +355,11 @@ cr.define('settings_privacy_page', function() {
});
test('ClearBrowsingDataStartSignInDice', function() {
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.REAUTHENTICATE,
};
});
Polymer.dom.flush();
assertFalse(
element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
......@@ -374,11 +373,11 @@ cr.define('settings_privacy_page', function() {
});
test('ClearBrowsingDataHandlePassphraseErrorDice', function() {
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.ENTER_PASSPHRASE,
};
});
Polymer.dom.flush();
assertFalse(
element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
......@@ -412,7 +411,6 @@ cr.define('settings_privacy_page', function() {
PolymerTest.clearBody();
element = document.createElement('settings-clear-browsing-data-dialog');
element.set('prefs', getClearBrowsingDataPrefs());
element.syncStatus = {signedIn: true, hasError: false};
document.body.appendChild(element);
return testBrowserProxy.whenCalled('initialize');
});
......@@ -588,36 +586,36 @@ cr.define('settings_privacy_page', function() {
assertTrue(element.$$('#clearBrowsingDataDialog').open);
// Not syncing.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: false,
hasError: false,
};
});
Polymer.dom.flush();
assertTrue(element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
// Syncing.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: false,
};
});
Polymer.dom.flush();
assertTrue(element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
// Sync passphrase error.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.ENTER_PASSPHRASE,
};
});
Polymer.dom.flush();
assertTrue(element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
// Other sync error.
element.syncStatus = {
cr.webUIListenerCallback('sync-status-changed', {
signedIn: true,
hasError: true,
statusAction: settings.StatusAction.NO_ACTION,
};
});
Polymer.dom.flush();
assertTrue(element.$$('#clearBrowsingDataDialog [slot=footer]').hidden);
});
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment