blob: 04dcccba6d20b0a94e99247e3a7f49259a0af52c [file] [log] [blame]
<!doctype html>
<meta charset="utf-8">
<title>Background Sync API: Verifies that Periodic Background Sync works
correctly.</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../serviceworker/resources/test-helpers.js"></script>
<script src="/serviceworker/resources/shared-utils.js"></script>
<script src="../resources/permissions-helper.js"></script>
<script src="./resources/utils.js"></script>
<script>
periodicSyncTest(async (test, periodicSync) => {
await periodicSync.register('test');
}, 'register succeeds when no options are provided');
periodicSyncTest(async (test, periodicSync) => {
await periodicSync.register('test', {});
}, 'register succeeds when no minInterval is provided');
periodicSyncTest(async (test, periodicSync) => {
await promise_rejects_js(
test, TypeError,
periodicSync.register('test', { minInterval: -1000 }),
'register should have thrown an error');
}, 'register fails when invalid minInterval is provided');
periodicSyncTest(async (test, periodicSync) => {
await periodicSync.register('test');
const tags = await periodicSync.getTags();
assert_equals(tags.length, 1);
assert_equals(tags[0], 'test');
}, 'getTags works as expected');
periodicSyncTest(async (test, periodicSync) => {
await periodicSync.unregister('non-existent');
}, 'unregister succeeds when a non-existent tag is provided');
periodicSyncTest(async (test, periodicSync) => {
await periodicSync.register('test');
let tags = await periodicSync.getTags();
assert_equals(tags.length, 1);
await periodicSync.unregister('test');
tags = await periodicSync.getTags();
assert_equals(tags.length, 0);
}, 'unregister removes the specified registration');
</script>