2015-01-09 18:55:44 +00:00
|
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
|
|
|
|
function run_test() {
|
|
|
|
let sb = new Cu.Sandbox('https://www.example.com',
|
|
|
|
{ wantGlobalProperties:
|
|
|
|
["crypto", "TextEncoder", "TextDecoder"]
|
|
|
|
});
|
|
|
|
sb.ok = ok;
|
|
|
|
Cu.evalInSandbox('ok(this.crypto);', sb);
|
|
|
|
Cu.evalInSandbox('ok(this.crypto.subtle);', sb);
|
2017-12-21 10:11:57 +00:00
|
|
|
sb.equal = equal;
|
2015-01-09 18:55:44 +00:00
|
|
|
let innerPromise = new Promise(r => (sb.test_done = r));
|
|
|
|
Cu.evalInSandbox('crypto.subtle.digest("SHA-256", ' +
|
|
|
|
' new TextEncoder("utf-8").encode("abc"))' +
|
2017-12-21 10:11:57 +00:00
|
|
|
' .then(h => equal(new Uint16Array(h)[0], 30906))' +
|
2015-01-09 18:55:44 +00:00
|
|
|
' .then(test_done);', sb);
|
|
|
|
|
|
|
|
Cu.importGlobalProperties(["crypto"]);
|
|
|
|
ok(crypto);
|
|
|
|
ok(crypto.subtle);
|
|
|
|
let outerPromise = crypto.subtle.digest("SHA-256", new TextEncoder("utf-8").encode("abc"))
|
2017-12-21 10:08:17 +00:00
|
|
|
.then(h => Assert.equal(new Uint16Array(h)[0], 30906));
|
2015-01-09 18:55:44 +00:00
|
|
|
|
|
|
|
do_test_pending();
|
|
|
|
Promise.all([innerPromise, outerPromise]).then(() => do_test_finished());
|
|
|
|
}
|