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 @@
disabled$="[[hideActivityControlsUrl_]]">
<div class="start settings-box-text">
$i18n{personalizeGoogleServicesTitle}
<div class="secondary" hidden$="[[!isSWAAFetched_(sWAA_)]]">
[[getHistoryUsageHint_(sWAA_)]]
<div id="history-usage-hint"
class="secondary" hidden$="[[!isSWAAFetched_(sWAA_)]]">
[[getHistoryUsageHint_(sWAA_, syncPrefs.encryptAllData,
syncPrefs.typedUrlsSynced)]]
</div>
</div>
<div id="history-usage-state"
......
......@@ -9,6 +9,18 @@ cr.define('settings_people_page_sync_page', function() {
let encryptWithGoogle = null;
let encryptWithPassphrase = null;
suiteSetup(function() {
loadTimeData.overrideValues({
syncSetupFriendlySettings: true,
sWAAOn: 'On',
sWAAOff: 'Off',
sWAAOnHint: 'sWAAOnHint',
sWAAOffHint: 'sWAAOffHint',
historySyncOffHint: 'historySyncOffHint',
dataEncryptedHint: 'dataEncryptedHint'
});
});
setup(function() {
browserProxy = new TestSyncBrowserProxy();
settings.SyncBrowserProxyImpl.instance_ = browserProxy;
......@@ -508,6 +520,85 @@ cr.define('settings_people_page_sync_page', function() {
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
// ##################################
......
......@@ -19,11 +19,18 @@ class TestSyncBrowserProxy extends TestBrowserProxy {
'sendSyncPrefsChanged',
'startSignIn',
'startSyncingWithEmail',
'queryIsHistoryRecordingEnabled',
]);
/** @private {number} */
this.impressionCount_ = 0;
/** @type {!HistoryRecordingEnabled} */
this.historyRecordingEnabled_ = {
requestSucceeded: true,
historyRecordingEnabled: true
};
/** @type {!settings.PageStatus} */
this.encryptionResponse = settings.PageStatus.CONFIGURE;
}
......@@ -101,4 +108,17 @@ class TestSyncBrowserProxy extends TestBrowserProxy {
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