Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: LayoutTests/http/tests/serviceworker/chromium/resources/fetch-error-messages-worker.js

Issue 728713003: [ServiceWorker] Provide more descriptive error messages when fetch API fails. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: use t.unreached_func instead of unreached_rejection Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/http/tests/serviceworker/chromium/resources/fetch-error-messages-worker.js
diff --git a/LayoutTests/http/tests/serviceworker/chromium/resources/fetch-error-messages-worker.js b/LayoutTests/http/tests/serviceworker/chromium/resources/fetch-error-messages-worker.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5d55a95d5724bba6ebd3805934491aabdde68be
--- /dev/null
+++ b/LayoutTests/http/tests/serviceworker/chromium/resources/fetch-error-messages-worker.js
@@ -0,0 +1,104 @@
+importScripts('../../resources/worker-testharness.js');
+importScripts('../../resources/test-helpers.js');
+
+async_test(function(t) {
+ var url = get_host_info()['HTTP_REMOTE_ORIGIN'] + '/dummy.html';
+ fetch(new Request(url, {mode: 'same-origin'}))
+ .then(
+ t.unreached_func('Fetching must fail.'),
+ function(e) {
+ assert_equals(
+ e.message,
+ 'Fetch API cannot load ' + url + '. ' +
+ 'Request mode is "same-origin" but the URL\'s origin is not same ' +
+ 'as the request origin ' + get_host_info()['HTTP_ORIGIN'] + '.');
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Fetch API error message - not same origin request');
+
+async_test(function(t) {
+ var url = 'ftp://example.com/dummy.html';
+ fetch(new Request(url, {mode: 'cors'}))
+ .then(
+ t.unreached_func('Fetching must fail.'),
+ function(e) {
+ assert_equals(
+ e.message,
+ 'Fetch API cannot load ' + url + '. ' +
+ 'URL scheme must be "http" or "https" for CORS request.');
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Fetch API error message - non http cors request');
+
+async_test(function(t) {
+ var url = 'about://blank';
+ fetch(new Request(url))
+ .then(
+ t.unreached_func('Fetching must fail.'),
+ function(e) {
+ assert_equals(
+ e.message,
+ 'Fetch API cannot load ' + url + '. ' +
+ 'URL scheme "about" is not supported.');
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Fetch API error message - unsupported scheme.');
+
+async_test(function(t) {
+ var url =
+ new URL(get_host_info()['HTTP_ORIGIN'] + base_path() +
+ '../../resources/invalid-chunked-encoding.php').toString();
+ fetch(new Request(url))
+ .then(
+ t.unreached_func('Fetching must fail.'),
+ function(e) {
+ assert_equals(
+ e.message,
+ 'Fetch API cannot load ' + url + '. ' +
+ 'net::ERR_INVALID_CHUNKED_ENCODING');
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Fetch API error message - invalid chunked encoding.');
+
+async_test(function(t) {
+ var url =
+ new URL(get_host_info()['HTTP_REMOTE_ORIGIN'] + base_path() +
+ '../../resources/fetch-access-control.php').toString();
+ fetch(new Request(url))
+ .then(
+ t.unreached_func('Fetching must fail.'),
+ function(e) {
+ assert_equals(
+ e.message,
+ 'Fetch API cannot load ' + url + '. ' +
+ 'No \'Access-Control-Allow-Origin\' header is present on the ' +
+ 'requested resource. Origin \'' + get_host_info()['HTTP_ORIGIN'] +
+ '\' is therefore not allowed access.');
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Fetch API error message - cors error.');
+
+async_test(function(t) {
+ // FIXME: When we support the redirection in Fech API, we have to change
+ // this test case.
+ var redirect = 'http://www.example.com';
+ var url =
+ new URL(get_host_info()['HTTP_REMOTE_ORIGIN'] + base_path() +
+ '../../resources/redirect.php?Redirect=' + redirect).toString();
+ fetch(new Request(url))
+ .then(
+ t.unreached_func('Fetching must fail.'),
+ function(e) {
+ assert_equals(
+ e.message,
+ 'Fetch API cannot load ' + url + '. ' +
+ 'Redirects are not yet supported.');
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Fetch API error message - redirect error.');

Powered by Google App Engine
This is Rietveld 408576698