Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test has a WPT meta file that expects 2 subtest issues.
- This WPT test may be referenced by the following Test IDs:
- /subapps/list-success.tentative.https.html - WPT Dashboard Interop Dashboard
<!DOCTYPE html>
<title>Sub Apps: Valid calls for list()</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/subapps-helpers.js"></script>
<script>
promise_test(async t => {
t.add_cleanup(async () => {
await mockSubAppsService.reset();
mockSubAppsService = null;
});
const url_1 = '/sub-app-1';
const url_2 = '/sub-app-2';
const mocked_response = [
{ "manifestIdPath": url_1, "appName": "App 1" },
{ "manifestIdPath": url_2, "appName": "App 2" },
];
let expected_results = {
[url_1]: { "app_name": "App 1" },
[url_2]: { "app_name": "App 2" },
};
await createMockSubAppsService(Status.SUCCESS, [], mocked_response);
await navigator.subApps.list()
.catch(e => {
assert_unreached("Should not have rejected.");
})
.then(result => {
for (const app_id in expected_results) {
assert_own_property(result, app_id, "Return results are missing entry for subapp.")
assert_equals(JSON.stringify(result[app_id]), JSON.stringify(expected_results[app_id]), "Return results are not as expected.")
}
})
}, 'List API call works with 2 sub apps.');
promise_test(async t => {
t.add_cleanup(async () => {
await mockSubAppsService.reset();
mockSubAppsService = null;
});
let mocked_response = [];
await createMockSubAppsService(Status.SUCCESS, [], mocked_response);
await navigator.subApps.list()
.catch(e => {
assert_unreached("Should not have rejected.");
})
.then(result => {
assert_equals(Object.keys(result).length, 0);
})
}, 'List API call works with no sub apps.');
</script>