Commit 4dff7197 authored by Monica Basta's avatar Monica Basta Committed by Commit Bot

[SyncSetup]: Tests for communicating the sWAA in settings.

This CL adds tests for communicating the sWAA bit in sync setup
settings.

Bug: 1035421
Change-Id: I40f3c5304b04e433a2cac571a715299459a565c4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1991624
Commit-Queue: Monica Basta <msalama@chromium.org>
Reviewed-by: default avatarDan Beam <dbeam@chromium.org>
Cr-Commit-Position: refs/heads/master@{#730146}
parent 23cfa332
...@@ -202,8 +202,10 @@ ...@@ -202,8 +202,10 @@
disabled$="[[hideActivityControlsUrl_]]"> disabled$="[[hideActivityControlsUrl_]]">
<div class="start settings-box-text"> <div class="start settings-box-text">
$i18n{personalizeGoogleServicesTitle} $i18n{personalizeGoogleServicesTitle}
<div class="secondary" hidden$="[[!isSWAAFetched_(sWAA_)]]"> <div id="history-usage-hint"
[[getHistoryUsageHint_(sWAA_)]] class="secondary" hidden$="[[!isSWAAFetched_(sWAA_)]]">
[[getHistoryUsageHint_(sWAA_, syncPrefs.encryptAllData,
syncPrefs.typedUrlsSynced)]]
</div> </div>
</div> </div>
<div id="history-usage-state" <div id="history-usage-state"
......
...@@ -9,6 +9,18 @@ cr.define('settings_people_page_sync_page', function() { ...@@ -9,6 +9,18 @@ cr.define('settings_people_page_sync_page', function() {
let encryptWithGoogle = null; let encryptWithGoogle = null;
let encryptWithPassphrase = null; let encryptWithPassphrase = null;
suiteSetup(function() {
loadTimeData.overrideValues({
syncSetupFriendlySettings: true,
sWAAOn: 'On',
sWAAOff: 'Off',
sWAAOnHint: 'sWAAOnHint',
sWAAOffHint: 'sWAAOffHint',
historySyncOffHint: 'historySyncOffHint',
dataEncryptedHint: 'dataEncryptedHint'
});
});
setup(function() { setup(function() {
browserProxy = new TestSyncBrowserProxy(); browserProxy = new TestSyncBrowserProxy();
settings.SyncBrowserProxyImpl.instance_ = browserProxy; settings.SyncBrowserProxyImpl.instance_ = browserProxy;
...@@ -508,6 +520,85 @@ cr.define('settings_people_page_sync_page', function() { ...@@ -508,6 +520,85 @@ cr.define('settings_people_page_sync_page', function() {
assertTrue(dashboardLink.hidden); assertTrue(dashboardLink.hidden);
}); });
test('sWAA', async function() {
function verifyResults(hidden, sWAA, sWAAHint, hideActivityControlsUrl) {
const sWAAText = syncPage.$$('#history-usage-state .secondary');
const historyUsageHint = syncPage.$$('#history-usage-hint');
assertEquals(sWAAText.hidden, hidden);
assertEquals(historyUsageHint.hidden, hidden);
assertEquals(
syncPage.$$('#history-usage-row')
.querySelector('.icon-external')
.hidden,
hideActivityControlsUrl);
if (!hidden) {
assertEquals(sWAAText.textContent.trim(), sWAA);
assertEquals(historyUsageHint.textContent.trim(), sWAAHint);
}
}
/** @param {Object=} syncPrefOverrides */
function setSyncPrefs(syncPrefOverrides = {}) {
const defaults = sync_test_util.getSyncAllPrefs();
const syncPrefs = Object.assign({}, defaults, syncPrefOverrides);
cr.webUIListenerCallback('sync-prefs-changed', syncPrefs);
Polymer.dom.flush();
}
const syncSection = syncPage.$$('#sync-section');
assertTrue(syncSection.hidden);
syncPage.syncStatus = {
signedIn: true,
disabled: false,
hasError: false,
statusAction: settings.StatusAction.NO_ACTION,
};
Polymer.dom.flush();
assertFalse(syncSection.hidden);
await browserProxy.whenCalled('queryIsHistoryRecordingEnabled');
verifyResults(
/*hidden=*/ false, 'On', 'sWAAOnHint',
/*hideActivityControlsUrl=*/ false);
// Data encrypted with custom passphrase.
setSyncPrefs({encryptAllData: true});
verifyResults(
/*hidden=*/ false, 'Off', 'dataEncryptedHint',
/*hideActivityControlsUrl=*/ true);
// sWAA off.
browserProxy.setHistoryRecordingEnabled({
requestSucceeded: true,
historyRecordingEnabled: /*hideActivityControlsUrl=*/ false
});
setSyncPrefs();
await browserProxy.whenCalled('queryIsHistoryRecordingEnabled');
verifyResults(
/*hidden=*/ false, 'Off', 'sWAAOffHint',
/*hideActivityControlsUrl=*/ false);
// Turn history sync off.
setSyncPrefs({syncAllDataTypes: false, typedUrlsSynced: false});
verifyResults(
/*hidden=*/ false, 'Off', 'historySyncOffHint',
/*hideActivityControlsUrl=*/ true);
// Verify hint is updated.
setSyncPrefs({encryptAllData: true});
verifyResults(
/*hidden=*/ false, 'Off', 'dataEncryptedHint',
/*hideActivityControlsUrl=*/ true);
// Failed to fetch |historyRecordingEnabled|.
browserProxy.setHistoryRecordingEnabled(
{requestSucceeded: false, historyRecordingEnabled: false});
setSyncPrefs();
await browserProxy.whenCalled('queryIsHistoryRecordingEnabled');
verifyResults(
/*hidden=*/ true, '', '', /*hideActivityControlsUrl=*/ false);
});
// ################################## // ##################################
// TESTS THAT ARE SKIPPED ON CHROMEOS // TESTS THAT ARE SKIPPED ON CHROMEOS
// ################################## // ##################################
......
...@@ -19,11 +19,18 @@ class TestSyncBrowserProxy extends TestBrowserProxy { ...@@ -19,11 +19,18 @@ class TestSyncBrowserProxy extends TestBrowserProxy {
'sendSyncPrefsChanged', 'sendSyncPrefsChanged',
'startSignIn', 'startSignIn',
'startSyncingWithEmail', 'startSyncingWithEmail',
'queryIsHistoryRecordingEnabled',
]); ]);
/** @private {number} */ /** @private {number} */
this.impressionCount_ = 0; this.impressionCount_ = 0;
/** @type {!HistoryRecordingEnabled} */
this.historyRecordingEnabled_ = {
requestSucceeded: true,
historyRecordingEnabled: true
};
/** @type {!settings.PageStatus} */ /** @type {!settings.PageStatus} */
this.encryptionResponse = settings.PageStatus.CONFIGURE; this.encryptionResponse = settings.PageStatus.CONFIGURE;
} }
...@@ -101,4 +108,17 @@ class TestSyncBrowserProxy extends TestBrowserProxy { ...@@ -101,4 +108,17 @@ class TestSyncBrowserProxy extends TestBrowserProxy {
sendSyncPrefsChanged() { sendSyncPrefsChanged() {
this.methodCalled('sendSyncPrefsChanged'); this.methodCalled('sendSyncPrefsChanged');
} }
/**
* @param {!HistoryRecordingEnabled} historyRecordingEnabled
*/
setHistoryRecordingEnabled(historyRecordingEnabled) {
this.historyRecordingEnabled_ = historyRecordingEnabled;
}
/** @override */
queryIsHistoryRecordingEnabled() {
this.methodCalled('queryIsHistoryRecordingEnabled');
return Promise.resolve(this.historyRecordingEnabled_);
}
} }
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