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

Unified Diff: LayoutTests/http/tests/serviceworker/resources/worker-test-harness.js

Issue 430993002: [ServiceWorker] CacheStorage tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Allow throwing JS errors in assert_promise_throws Created 6 years, 4 months 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/resources/worker-test-harness.js
diff --git a/LayoutTests/http/tests/serviceworker/resources/worker-test-harness.js b/LayoutTests/http/tests/serviceworker/resources/worker-test-harness.js
index 1d3a5f576840015fc44df81b7e357ab7c5e76b51..399b48da8899ad2cb97db8d31d6b014f4535b779 100644
--- a/LayoutTests/http/tests/serviceworker/resources/worker-test-harness.js
+++ b/LayoutTests/http/tests/serviceworker/resources/worker-test-harness.js
@@ -84,3 +84,27 @@ function promise_test(func, name, properties) {
throw value;
}));
}
+
+// Returns a promise that fulfills after the provided |promise| is fulfilled.
+// The |test| succeeds only if |promise| throws an exception matching |code|.
+// The optional |description| describes the test being performed.
+// E.g.:
+// assert_promise_throws(
+// new Promise(...), // something that should throw an exception.
+// 'NotFoundError',
+// 'Should throw NotFoundError.');
+function assert_promise_throws(promise, code, description) {
+ return promise.then(
+ function() {
+ throw 'assert_promise_throws: ' + description + ' Promise did now throw.';
+ },
+ function(e) {
+ if (code in self) {
+ // If |code| is a JavaScript error exposed in the global object, then
+ // require that the thrown exception be of that type.
+ assert_class_string(e, code, description);
+ } else {
+ assert_throws(code, function() { throw e; }, description);
+ }
+ });
+}

Powered by Google App Engine
This is Rietveld 408576698