Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1145792 - Add a test for the Cache.keys method;
- Loading branch information
Showing
3 changed files
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<!-- Any copyright is dedicated to the Public Domain. | ||
- http://creativecommons.org/publicdomain/zero/1.0/ --> | ||
<!DOCTYPE HTML> | ||
<html> | ||
<head> | ||
<title>Validate the Cache.keys() method</title> | ||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> | ||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" /> | ||
<script type="text/javascript" src="driver.js"></script> | ||
</head> | ||
<body> | ||
<iframe id="frame"></iframe> | ||
<script class="testbody" type="text/javascript"> | ||
runTests("test_cache_keys.js") | ||
.then(function() { | ||
SimpleTest.finish(); | ||
}); | ||
</script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
var name = "keys" + context; | ||
var c; | ||
|
||
var tests = [ | ||
"//mochi.test:8888/?page" + context, | ||
"//mochi.test:8888/?another" + context, | ||
]; | ||
|
||
caches.open(name).then(function(cache) { | ||
c = cache; | ||
return c.addAll(tests); | ||
}).then(function() { | ||
// Add another cache entry using Cache.add | ||
var another = "//mochi.test:8888/?yetanother" + context; | ||
tests.push(another); | ||
return c.add(another); | ||
}).then(function() { | ||
return c.keys(); | ||
}).then(function(keys) { | ||
is(keys.length, tests.length, "Same number of elements"); | ||
// Verify both the insertion order of the requests and their validity. | ||
keys.forEach(function(r, i) { | ||
ok(r instanceof Request, "Valid request object"); | ||
ok(r.url.indexOf(tests[i]) >= 0, "Valid URL"); | ||
}); | ||
// Try searching for just one request | ||
return c.keys(tests[1]); | ||
}).then(function(keys) { | ||
is(keys.length, 1, "One match should be found"); | ||
ok(keys[0].url.indexOf(tests[1]) >= 0, "Valid URL"); | ||
// Try to see if ignoreSearch works as expected. | ||
return c.keys(new Request("//mochi.test:8888/?foo"), {ignoreSearch: true}); | ||
}).then(function(keys) { | ||
is(keys.length, tests.length, "Same number of elements"); | ||
keys.forEach(function(r, i) { | ||
ok(r instanceof Request, "Valid request object"); | ||
ok(r.url.indexOf(tests[i]) >= 0, "Valid URL"); | ||
}); | ||
// Try to see if ignoreMethod works as expected | ||
return Promise.all( | ||
["POST", "PUT", "DELETE", "OPTIONS"] | ||
.map(function(method) { | ||
var req = new Request(tests[2], {method: method}); | ||
return c.keys(req) | ||
.then(function(keys) { | ||
is(keys.length, 0, "No request should be matched without ignoreMethod"); | ||
return c.keys(req, {ignoreMethod: true}); | ||
}).then(function(keys) { | ||
is(keys.length, 1, "One match should be found"); | ||
ok(keys[0].url.indexOf(tests[2]) >= 0, "Valid URL"); | ||
}); | ||
}) | ||
); | ||
}).then(function() { | ||
// But HEAD should be allowed even without ignoreMethod | ||
return c.keys(new Request(tests[0], {method: "HEAD"})); | ||
}).then(function(keys) { | ||
is(keys.length, 1, "One match should be found"); | ||
ok(keys[0].url.indexOf(tests[0]) >= 0, "Valid URL"); | ||
// TODO: Add tests for ignoreVary | ||
|
||
// Make sure cacheName is ignored. | ||
return c.keys(tests[0], {cacheName: "non-existing-cache"}); | ||
}).then(function(keys) { | ||
is(keys.length, 1, "One match should be found"); | ||
ok(keys[0].url.indexOf(tests[0]) >= 0, "Valid URL"); | ||
return caches.delete(name); | ||
}).then(function(deleted) { | ||
ok(deleted, "The cache should be successfully deleted"); | ||
testDone(); | ||
}); |