forked from web-platform-tests/wpt
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
FSA: Add WPTs testing FileSystemObserver creation
Bug: 1019297 Change-Id: Ie735d376b760aa78859b1e8c5a1fed1dee90f959 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5200909 Commit-Queue: Austin Sullivan <[email protected]> Reviewed-by: Daseul Lee <[email protected]> Cr-Commit-Position: refs/heads/main@{#1250956}
- Loading branch information
1 parent
13a239b
commit bedfcbc
Showing
3 changed files
with
80 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
// META: script=/service-workers/service-worker/resources/test-helpers.sub.js | ||
// META: script=resources/messaging-helpers.js | ||
// META: script=script-tests/FileSystemObserver.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
'use strict'; | ||
|
||
// This script depends on the following scripts: | ||
// /fs/resources/messaging-helpers.js | ||
// /service-worker/resources/test-helpers.sub.js | ||
|
||
promise_test(async t => { | ||
function dummyCallback(records, observer) {}; | ||
let success = true; | ||
try { | ||
const observer = new FileSystemObserver(dummyCallback); | ||
} catch (error) { | ||
success = false; | ||
} | ||
assert_true(success); | ||
}, 'Creating a FileSystemObserver from a window succeeds'); | ||
|
||
promise_test(async t => { | ||
const dedicated_worker = | ||
create_dedicated_worker(t, kDedicatedWorkerMessageTarget); | ||
dedicated_worker.postMessage({type: 'create-file-system-observer'}); | ||
|
||
const event_watcher = new EventWatcher(t, dedicated_worker, 'message'); | ||
const message_event = await event_watcher.wait_for('message'); | ||
const response = message_event.data; | ||
|
||
assert_true(response.createObserverSuccess); | ||
}, 'Creating a FileSystemObserver from a dedicated worker succeeds'); | ||
|
||
if (self.SharedWorker !== undefined) { | ||
promise_test(async t => { | ||
const shared_worker = new SharedWorker(kSharedWorkerMessageTarget); | ||
shared_worker.port.start(); | ||
shared_worker.port.postMessage({type: 'create-file-system-observer'}); | ||
|
||
const event_watcher = new EventWatcher(t, shared_worker.port, 'message'); | ||
const message_event = await event_watcher.wait_for('message'); | ||
const response = message_event.data; | ||
|
||
assert_true(response.createObserverSuccess); | ||
}, 'Creating a FileSystemObserver from a shared worker succeeds'); | ||
} | ||
|
||
promise_test(async t => { | ||
const scope = `${kServiceWorkerMessageTarget}?create-observer`; | ||
const registration = | ||
await create_service_worker(t, kServiceWorkerMessageTarget, scope); | ||
await wait_for_state(t, registration.installing, 'activated'); | ||
|
||
registration.active.postMessage({type: 'create-file-system-observer'}); | ||
|
||
const event_watcher = new EventWatcher(t, navigator.serviceWorker, 'message'); | ||
const message_event = await event_watcher.wait_for('message'); | ||
const response = message_event.data; | ||
|
||
assert_false(response.createObserverSuccess); | ||
}, 'Creating a FileSystemObserver from a service worker fails'); |