blob: 1012764e87b1694a452088a545b55bf4a201f977 [file]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/** @implements {settings.SyncBrowserProxy} */
class TestSyncBrowserProxy extends TestBrowserProxy {
constructor() {
const methodNames = [
'didNavigateAwayFromSyncPage',
'didNavigateToSyncPage',
'getPromoImpressionCount',
'getStoredAccounts',
'getSyncStatus',
'incrementPromoImpressionCount',
'setSyncDatatypes',
'setSyncEncryption',
'signOut',
'pauseSync',
'sendSyncPrefsChanged',
'startSignIn',
'startSyncingWithEmail',
'queryIsHistoryRecordingEnabled',
];
if (cr.isChromeOS) {
methodNames.push('turnOnSync', 'turnOffSync');
}
super(methodNames);
/** @private {number} */
this.impressionCount_ = 0;
/** @type {!HistoryRecordingEnabled} */
this.historyRecordingEnabled_ = {
requestSucceeded: true,
historyRecordingEnabled: true
};
/** @type {!settings.PageStatus} */
this.encryptionResponse = settings.PageStatus.CONFIGURE;
}
/** @override */
getSyncStatus() {
this.methodCalled('getSyncStatus');
return Promise.resolve({signedIn: true, signedInUsername: 'fakeUsername'});
}
/** @override */
getStoredAccounts() {
this.methodCalled('getStoredAccounts');
return Promise.resolve([]);
}
/** @override */
signOut(deleteProfile) {
this.methodCalled('signOut', deleteProfile);
}
/** @override */
pauseSync() {
this.methodCalled('pauseSync');
}
/** @override */
startSignIn() {
this.methodCalled('startSignIn');
}
/** @override */
startSyncingWithEmail(email, isDefaultPromoAccount) {
this.methodCalled('startSyncingWithEmail', [email, isDefaultPromoAccount]);
}
setImpressionCount(count) {
this.impressionCount_ = count;
}
/** @override */
getPromoImpressionCount() {
this.methodCalled('getPromoImpressionCount');
return this.impressionCount_;
}
/** @override */
incrementPromoImpressionCount() {
this.methodCalled('incrementPromoImpressionCount');
}
/** @override */
didNavigateToSyncPage() {
this.methodCalled('didNavigateToSyncPage');
}
/** @override */
didNavigateAwayFromSyncPage(abort) {
this.methodCalled('didNavigateAwayFromSyncPage', abort);
}
/** @override */
setSyncDatatypes(syncPrefs) {
this.methodCalled('setSyncDatatypes', syncPrefs);
return Promise.resolve(settings.PageStatus.CONFIGURE);
}
/** @override */
setSyncEncryption(syncPrefs) {
this.methodCalled('setSyncEncryption', syncPrefs);
return Promise.resolve(this.encryptionResponse);
}
/** @override */
sendSyncPrefsChanged() {
this.methodCalled('sendSyncPrefsChanged');
}
/**
* @param {!HistoryRecordingEnabled} historyRecordingEnabled
*/
setHistoryRecordingEnabled(historyRecordingEnabled) {
this.historyRecordingEnabled_ = historyRecordingEnabled;
}
/** @override */
queryIsHistoryRecordingEnabled() {
this.methodCalled('queryIsHistoryRecordingEnabled');
return Promise.resolve(this.historyRecordingEnabled_);
}
}
if (cr.isChromeOS) {
/** @override */
TestSyncBrowserProxy.prototype.turnOnSync = function() {
this.methodCalled('turnOnSync');
};
/** @override */
TestSyncBrowserProxy.prototype.turnOffSync = function() {
this.methodCalled('turnOffSync');
};
}