blob: 1bceb40e656e80c1b03732aeb709fad9a8f5b1c4 [file] [log] [blame]
<!DOCTYPE html>
<meta charset=utf-8>
<title>Cache Storage: Verify credential are respected by Cache operations</title>
<link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#cache-storage">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../../serviceworker/resources/test-helpers.js"></script>
<style>iframe { display: none; }</style>
<script>
var worker = "../resources/credentials-worker.js";
var scope = "../resources/credentials-iframe.html";
promise_test(function(t) {
return self.caches.delete('credentials')
.then(function() {
return service_worker_unregister_and_register(t, worker, scope)
})
.then(function(reg) {
return wait_for_state(t, reg.installing, 'activated');
})
.then(function() {
return with_iframe(scope);
})
.then(function(frame) {
frame.contentWindow.postMessage([
{name: 'file.txt', username: 'aa', password: 'bb'},
{name: 'file.txt', username: 'cc', password: 'dd'},
{name: 'file.txt'}
], '*');
return new Promise(function(resolve, reject) {
window.onmessage = t.step_func(function(e) {
resolve(e.data);
});
});
})
.then(function(data) {
assert_equals(data.length, 3, 'three entries should be present');
assert_equals(data.filter(function(url) { return /@/.test(url); }).length, 2,
'two entries should contain credentials');
assert_true(data.some(function(url) { return /aa:bb@/.test(url); }),
'entry with credentials aa:bb should be present');
assert_true(data.some(function(url) { return /cc:dd@/.test(url); }),
'entry with credentials cc:dd should be present');
});
});
</script>