Index: third_party/WebKit/LayoutTests/http/tests/background_fetch/background-fetch-manager-fetch.https.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/background_fetch/background-fetch-manager-fetch.https.html b/third_party/WebKit/LayoutTests/http/tests/background_fetch/background-fetch-manager-fetch.https.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..365995f982f0c6c1e6be591bab46df9faa42ca73 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/background_fetch/background-fetch-manager-fetch.https.html |
@@ -0,0 +1,67 @@ |
+<!doctype html> |
+<meta charset="utf-8"> |
+<title>Background Fetch API: fetch() tests</title> |
+<script src="/resources/testharness.js"></script> |
+<script src="/resources/testharnessreport.js"></script> |
+<script src="/serviceworker/resources/test-helpers.js"></script> |
+ |
+<h1>BackgroundFetchManager.fetch()</h1> |
+<p>This test validates the behaviour of the fetch() method.</p> |
+ |
+<!-- TODO(peter): Move this to the WPT directory when it's merged. --> |
+ |
+<script> |
+'use strict'; |
+ |
+const workerUrl = 'resources/empty-worker.js'; |
+const scope = 'resources/scope/' + location.pathname; |
+ |
+promise_test(function(test) { |
+ return service_worker_unregister_and_register(test, workerUrl, scope) |
+ .then(registration => { |
+ assert_equals(null, registration.active); |
+ return registration.backgroundFetch.fetch('tag', ['resources/non-existing-file.png']); |
+ }) |
+ .then(unreached_fulfillment(test), error => { |
+ assert_equals(error.name, 'TypeError'); |
+ }); |
+ |
+}, 'BackgroundFetchManager.fetch() requires an activated Service Worker.'); |
+ |
+promise_test(function(test) { |
+ const tag = 'my-background-fetch'; |
+ const options = { |
+ icons: [ |
+ { |
+ src: 'resources/non-existing-large-icon.png', |
+ sizes: '256x256', |
+ type: 'image/png' |
+ }, |
+ { |
+ src: 'resources/non-existing-small-icon.jpg', |
+ sizes: '64x64', |
+ type: 'image/jpg' |
+ } |
+ ], |
+ title: 'My Background Fetch', |
+ totalDownloadSize: 1024 |
+ }; |
+ |
+ let registration = null; |
+ |
+ return service_worker_unregister_and_register(test, workerUrl, scope) |
+ .then(r => { |
+ registration = r; |
+ return wait_for_state(test, r.installing, 'activated'); |
+ }) |
+ .then(() => registration.backgroundFetch.fetch(tag, ['resources/non-existing-file.png'], options)) |
+ .then(backgroundFetchRegistration => { |
+ assert_true(backgroundFetchRegistration instanceof BackgroundFetchRegistration); |
+ assert_equals(backgroundFetchRegistration.tag, tag); |
+ assert_object_equals(backgroundFetchRegistration.icons, options.icons); |
+ assert_equals(backgroundFetchRegistration.totalDownloadSize, options.totalDownloadSize); |
+ assert_equals(backgroundFetchRegistration.title, options.title); |
+ }); |
+ |
+}, 'BackgroundFetchManager.fetch() returns a BackgroundFetchRegistration object.'); |
+</script> |