blob: 00650f2470fa155b9ac1fb1df4ad0de17d0c0f3b [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8">
<title>Tests the prototype Trust Token API's functionality through its XHR interface.</title>
<link rel="help" href="https://github.com/WICG/trust-token-api#trust-token-redemption" />
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
'use strict';
async_test((t) => {
let request = new XMLHttpRequest();
request.open('GET', 'https://trusttoken.test');
request.setTrustToken({
type: 'token-request'
});
request.onerror = t.step_func(() => {
assert_equals(request.trustTokenOperationError.name, "InvalidStateError");
if (window.testRunner)
window.testRunner.clearTrustTokenState(t.step_func_done(() => {}));
});
request.send();
}, 'No keys for the issuer -> expect issuance to fail');
async_test((t) => {
let request = new XMLHttpRequest();
request.open('GET', 'https://trusttoken.test');
request.setTrustToken({
type: 'token-redemption'
});
request.onerror = t.step_func(() => {
assert_equals(request.trustTokenOperationError.name, "InvalidStateError");
if (window.testRunner)
window.testRunner.clearTrustTokenState(t.step_func_done(() => {}));
});
request.send();
}, 'No keys for the issuer -> expect redemption to fail');
async_test((t) => {
let request = new XMLHttpRequest();
request.open('GET', 'https://destination.test');
request.setTrustToken({
type: 'send-redemption-record',
issuers: ['https://issuer.test']
});
request.onerror = t.step_func(() => {
assert_equals(request.trustTokenOperationError, null,
'The request should fail for a reason unrelated to its Trust Tokens ' +
' operation (namely that its destination doesn\'t exist)');
if (window.testRunner)
window.testRunner.clearTrustTokenState(t.step_func_done(() => {}));
});
request.send();
},
'No RR for the issuer -> expect signing to fail, but an error while' +
' signing shouldn\'t result in the request being aborted');
</script>