blob: 7a645578b35e610cb9cfa580a3692399e9689786 [file] [log] [blame]
// Copyright 2016 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.
cr.define('settings_search', function() {
/**
* A test version of SearchEnginesBrowserProxy. Provides helper methods
* for allowing tests to know when a method was called, as well as
* specifying mock responses.
*
* @implements {settings.SearchEnginesBrowserProxy}
*/
class TestSearchEnginesBrowserProxy extends TestBrowserProxy {
constructor() {
super([
'getSearchEnginesList',
'removeSearchEngine',
'searchEngineEditCancelled',
'searchEngineEditCompleted',
'searchEngineEditStarted',
'setDefaultSearchEngine',
'validateSearchEngineInput',
]);
/** @private {!SearchEnginesInfo} */
this.searchEnginesInfo_ = {defaults: [], others: [], extensions: []};
}
/** @override */
setDefaultSearchEngine(modelIndex) {
this.methodCalled('setDefaultSearchEngine', modelIndex);
}
/** @override */
removeSearchEngine(modelIndex) {
this.methodCalled('removeSearchEngine', modelIndex);
}
/** @override */
searchEngineEditStarted(modelIndex) {
this.methodCalled('searchEngineEditStarted', modelIndex);
}
/** @override */
searchEngineEditCancelled() {
this.methodCalled('searchEngineEditCancelled');
}
/** @override */
searchEngineEditCompleted(searchEngine, keyword, queryUrl) {
this.methodCalled('searchEngineEditCompleted');
}
/** @override */
getSearchEnginesList() {
this.methodCalled('getSearchEnginesList');
return Promise.resolve(this.searchEnginesInfo_);
}
/** @override */
validateSearchEngineInput(fieldName, fieldValue) {
this.methodCalled('validateSearchEngineInput');
return Promise.resolve(true);
}
/**
* Sets the response to be returned by |getSearchEnginesList|.
* @param {!SearchEnginesInfo} searchEnginesInfo
*/
setSearchEnginesInfo(searchEnginesInfo) {
this.searchEnginesInfo_ = searchEnginesInfo;
}
}
/**
* @param {boolean} canBeDefault
* @param {boolean} canBeEdited
* @param {boolean} canBeRemoved
* @return {!SearchEngine}
*/
function createSampleSearchEngine(canBeDefault, canBeEdited, canBeRemoved) {
return {
canBeDefault: canBeDefault,
canBeEdited: canBeEdited,
canBeRemoved: canBeRemoved,
default: false,
displayName: 'Google',
iconURL: 'http://www.google.com/favicon.ico',
isOmniboxExtension: false,
keyword: 'google.com',
modelIndex: 0,
name: 'Google',
url: 'https://search.foo.com/search?p=%s',
urlLocked: false,
};
}
return {
createSampleSearchEngine: createSampleSearchEngine,
TestSearchEnginesBrowserProxy: TestSearchEnginesBrowserProxy,
};
});