blob: 69ca44746274c257bf37c877855c974822ea5e1b [file] [log] [blame]
if (self.importScripts) {
importScripts('/resources/testharness.js');
importScripts('../resources/testharness-helpers.js');
importScripts('../resources/test-helpers.js');
}
// TODO(b/250611661): implement complete Cache API and adhere to web spec. Once
// complete, enable the tests commented out.
// 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('../resources/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'),
// new TypeError(),
// 'Cache.add should throw a TypeError for non-HTTP/HTTPS URLs.');
// }, 'Cache.add called with non-HTTP/HTTPS URL');
cache_test(function(cache) {
var request = new Request('../resources/simple.txt');
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('../resources/simple.txt');
return cache.add(request)
.then(function(result) {
assert_equals(result, undefined,
'Cache.add should resolve with undefined on success.');
})
.then(function() {
return cache.add(request);
})
.then(function(result) {
assert_equals(result, undefined,
'Cache.add should resolve with undefined on success.');
});
}, '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('../resources/fetch-status.py?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 ../resources/simple.txt and ../resources/blank.html
// var urls = ['../resources/simple.txt', undefined, '../resources/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 ../resources/simple.txt and ../resources/blank.html
// var urls = ['../resources/simple.txt', self.location.href, '../resources/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 ../resources/simple.txt and ../resources/blank.html
// var urls = ['../resources/simple.txt', self.location.href, '../resources/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 ../resources/simple.txt and ../resources/blank.html exist. The second
// // resource does not.
// var urls = ['../resources/simple.txt', 'this-resource-should-not-exist', '../resources/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('../resources/simple.txt');
// return assert_promise_rejects(
// cache.addAll([request, request]),
// 'InvalidStateError',
// 'Cache.addAll should throw InvalidStateError if the same request is added ' +
// 'twice.');
// }, 'Cache.addAll called with the same Request object specified twice');
done();