47 lines
1.0 KiB
HTML
47 lines
1.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../resources/js-test-pre.js"></script>
|
|
</head>
|
|
<body>
|
|
<p id="description"></p>
|
|
<div id="console"></div>
|
|
<script>
|
|
description("Tests crypto.randomValues.");
|
|
|
|
if (!window.ArrayBuffer)
|
|
debug("This test requres ArrayBuffers to run!");
|
|
|
|
shouldBe("'crypto' in window", "true");
|
|
shouldBe("'getRandomValues' in window.crypto", "true");
|
|
|
|
try {
|
|
// FIXME: This test is flaky. If we ran this test every second since the
|
|
// beginning of the universe, on average, it would have failed
|
|
// 2^{-748} times.
|
|
|
|
var reference = new Uint8Array(100);
|
|
var sample = new Uint8Array(100);
|
|
|
|
crypto.getRandomValues(reference);
|
|
crypto.getRandomValues(sample);
|
|
|
|
var matchingBytes = 0;
|
|
|
|
for (var i = 0; i < reference.length; i++) {
|
|
if (reference[i] == sample[i])
|
|
matchingBytes++;
|
|
}
|
|
|
|
shouldBe("matchingBytes < 100", "true");
|
|
} catch(ex) {
|
|
debug(ex);
|
|
}
|
|
|
|
</script>
|
|
<script src="../resources/js-test-post.js"></script>
|
|
</body>
|
|
</html>
|
|
|
|
|