blob: ce687e7b3316974aa61d70bad8f03fcdf4504ff4 [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import {WebUITsMojoTestCache} from './web_ui_ts_test.test-mojom-webui.js';
const TEST_DATA: Array<{url: string, contents: string}> = [
{ url: 'https://google.com/', contents: 'i am in fact feeling lucky' },
{ url: 'https://youtube.com/', contents: 'probably cat videos?' },
{ url: 'https://example.com/', contents: 'internets wow' },
];
async function doTest(): Promise<boolean> {
const cache = WebUITsMojoTestCache.getRemote();
for (const entry of TEST_DATA) {
cache.put({ url: entry.url }, entry.contents);
}
const {items} = await cache.getAll();
if (items.length != TEST_DATA.length) {
return false;
}
const entries: {[key: string]: string } = {};
for (const item of items) {
entries[item.url.url] = item.contents;
}
for (const entry of TEST_DATA) {
if (!(entry.url in entries)) {
return false;
}
if (entries[entry.url] != entry.contents) {
return false;
}
}
return true;
}
type WindowWithDomAutomationController = Window & {
domAutomationController: {
send: (success: boolean) => void;
}
};
async function runTest() {
(window as unknown as WindowWithDomAutomationController)
.domAutomationController.send(await doTest());
}
Object.assign(window, {runTest});