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

Unified Diff: LayoutTests/http/tests/serviceworker/resources/cache-add-worker.js

Issue 425413002: [ServiceWorker] Tests for Cache (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Enable more tests Created 6 years, 2 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/cache-add-worker.js
diff --git a/LayoutTests/http/tests/serviceworker/resources/cache-add-worker.js b/LayoutTests/http/tests/serviceworker/resources/cache-add-worker.js
new file mode 100644
index 0000000000000000000000000000000000000000..231fdc4dcfd1f9a3bcac93bb05f4868f5b156988
--- /dev/null
+++ b/LayoutTests/http/tests/serviceworker/resources/cache-add-worker.js
@@ -0,0 +1,146 @@
+importScripts('worker-testharness.js');
+importScripts('/resources/testharness-helpers.js');
+
+cache_test(function(cache) {
+ return assert_promise_rejects(
+ cache.add(),
+ new TypeError(),
+ 'Cache.add should throw a TypeError when no arguments are given.');
+ }, 'Cache.add called with no arguments');
+
+cache_test(function(cache) {
+ return cache.add('simple.txt')
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.add should resolve with undefined on success.');
+ });
+ }, 'Cache.add called with relative URL specified as a string');
+
+cache_test(function(cache) {
+ return assert_promise_rejects(
+ cache.add('javascript://this-is-not-http-mmkay'),
+ 'NetworkError',
+ 'Cache.add should throw a NetworkError for non-HTTP/HTTPS URLs.');
+ }, 'Cache.add called with non-HTTP/HTTPS URL');
+
+cache_test(function(cache) {
+ var request = new Request('simple.txt', {body: 'Hello'});
+ return cache.add(request)
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.add should resolve with undefined on success.');
+ });
+ }, 'Cache.add called with Request object');
+
+cache_test(function(cache) {
+ var request = new Request('simple.txt', {body: 'Hello'});
+ return request.text()
+ .then(function() {
+ assert_true(request.bodyUsed);
+ })
+ .then(function() {
+ return assert_promise_rejects(
+ cache.add(request),
+ new TypeError(),
+ 'Cache.add with a Request object with a used body should reject ' +
+ 'with a TypeError.');
+ });
+ }, 'Cache.add called with Request object with a used body');
+
+cache_test(function(cache) {
+ var request = new Request('simple.txt', {body: 'Hello'});
+ return cache.add(request)
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.add should resolve with undefined on success.');
+ })
+ .then(function() {
+ return assert_promise_rejects(
+ cache.add(request),
+ new TypeError(),
+ 'Cache.add should throw TypeError if same request is added twice.');
+ });
+ }, 'Cache.add called twice with the same Request object');
+
+cache_test(function(cache) {
+ return cache.add('this-does-not-exist-please-dont-create-it')
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.add should resolve with undefined on success.');
+ });
+ }, 'Cache.add with request that results in a status of 404');
+
+cache_test(function(cache) {
+ return cache.add('fetch-status.php?status=500')
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.add should resolve with undefined on success.');
+ });
+ }, 'Cache.add with request that results in a status of 500');
+
+cache_test(function(cache) {
+ return assert_promise_rejects(
+ cache.addAll(),
+ new TypeError(),
+ 'Cache.addAll with no arguments should throw TypeError.');
+ }, 'Cache.addAll with no arguments');
+
+cache_test(function(cache) {
+ // Assumes the existence of simple.txt and blank.html in the same directory
+ // as this test script.
+ var urls = ['simple.txt', undefined, 'blank.html'];
+ return assert_promise_rejects(
+ cache.addAll(),
+ new TypeError(),
+ 'Cache.addAll should throw TypeError for an undefined argument.');
+ }, 'Cache.addAll with a mix of valid and undefined arguments');
+
+cache_test(function(cache) {
+ // Assumes the existence of simple.txt and blank.html in the same directory
+ // as this test script.
+ var urls = ['simple.txt', self.location.href, 'blank.html'];
+ return cache.addAll(urls)
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.addAll should resolve with undefined on success.');
+ });
+ }, 'Cache.addAll with string URL arguments');
+
+cache_test(function(cache) {
+ // Assumes the existence of simple.txt and blank.html in the same directory
+ // as this test script.
+ var urls = ['simple.txt', self.location.href, 'blank.html'];
+ var requests = urls.map(function(url) {
+ return new Request(url);
+ });
+ return cache.addAll(requests)
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.addAll should resolve with undefined on ' +
+ 'success.');
+ });
+ }, 'Cache.addAll with Request arguments');
+
+cache_test(function(cache) {
+ // Assumes that simple.txt and blank.html exist. The second
+ // resource does not.
+ var urls = ['simple.txt', 'this-resource-should-not-exist', 'blank.html'];
+ var requests = urls.map(function(url) {
+ return new Request(url);
+ });
+ return cache.addAll(requests)
+ .then(function(result) {
+ assert_equals(result, undefined,
+ 'Cache.addAll should resolve with undefined on ' +
+ 'success.');
+ });
+ }, 'Cache.addAll with a mix of succeeding and failing requests');
+
+cache_test(function(cache) {
+ var request = new Request('simple.txt');
+ return assert_promise_rejects(
+ cache.addAll([request, request]),
+ new TypeError(),
+ 'Cache.addAll should throw TypeError if the same request is added ' +
+ 'twice.');
+ }, 'Cache.addAll called with the same Request object specified twice');

Powered by Google App Engine
This is Rietveld 408576698