blob: af5eadbabfbb6eab6f9ecad2b216e5e085f18358 [file] [log] [blame]
<!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 which types are valid for crypto.randomValues.");
if (!window.ArrayBuffer)
debug("This test requres ArrayBuffers to run!");
shouldBe("'crypto' in window", "true");
shouldBe("'getRandomValues' in window.crypto", "true");
function checkIntegerTypes() {
var integerTypes = [
"Uint8Array", "Int8Array", "Uint8ClampedArray",
"Uint16Array", "Int16Array",
"Uint32Array", "Int32Array",
];
integerTypes.forEach(function(arrayType) {
shouldBeDefined("random = crypto.getRandomValues(new "+arrayType+"(3))");
shouldBeType("random", arrayType);
shouldBeDefined("view = new "+arrayType+"(3)");
shouldBeDefined("random = crypto.getRandomValues(view)");
shouldBe("random", "view");
});
}
function checkNonIntegerTypes() {
var floatTypes = [
"Float32Array", "Float64Array",
];
floatTypes.forEach(function(arrayType) {
shouldThrow("crypto.getRandomValues(new "+arrayType+"(3))");
});
shouldBeDefined("buffer = new Uint8Array(32)");
shouldBeDefined("buffer.buffer");
shouldBeDefined("view = new DataView(buffer.buffer)");
shouldThrow("crypto.getRandomValues(view)");
}
checkIntegerTypes();
checkNonIntegerTypes();
</script>
<script src="../resources/js-test-post.js"></script>
</body>
</html>