// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview Fake implementation of Personalization SearchHandler for
* testing.
*/
import {personalizationSearchMojom} from 'chrome://os-settings/os_settings.js';
import {String16} from 'chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-webui.js';
type SearchResult = personalizationSearchMojom.SearchResult;
type SearchHandlerInterface = personalizationSearchMojom.SearchHandlerInterface;
type SearchResultsObserverInterface =
personalizationSearchMojom.SearchResultsObserverInterface;
export class FakePersonalizationSearchHandler implements
SearchHandlerInterface {
private fakeResults_: SearchResult[] = [];
private observer_: SearchResultsObserverInterface|null = null;
setFakeResults(results: SearchResult[]): void {
this.fakeResults_ = results;
}
async search(_query: String16, _maxNumResults: number):
Promise<{results: SearchResult[]}> {
return {results: this.fakeResults_};
}
addObserver(observer: SearchResultsObserverInterface): void {
this.observer_ = observer;
}
simulateSearchResultsChanged(): void {
if (this.observer_) {
this.observer_.onSearchResultsChanged();
}
}
}