Tests which types are valid for crypto.randomValues.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS 'crypto' in window is true
PASS 'getRandomValues' in window.crypto is true
PASS random = crypto.getRandomValues(new Uint8Array(3)) is defined.
PASS random is an instance of Uint8Array
PASS view = new Uint8Array(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS random = crypto.getRandomValues(new Int8Array(3)) is defined.
PASS random is an instance of Int8Array
PASS view = new Int8Array(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS random = crypto.getRandomValues(new Uint8ClampedArray(3)) is defined.
PASS random is an instance of Uint8ClampedArray
PASS view = new Uint8ClampedArray(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS random = crypto.getRandomValues(new Uint16Array(3)) is defined.
PASS random is an instance of Uint16Array
PASS view = new Uint16Array(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS random = crypto.getRandomValues(new Int16Array(3)) is defined.
PASS random is an instance of Int16Array
PASS view = new Int16Array(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS random = crypto.getRandomValues(new Uint32Array(3)) is defined.
PASS random is an instance of Uint32Array
PASS view = new Uint32Array(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS random = crypto.getRandomValues(new Int32Array(3)) is defined.
PASS random is an instance of Int32Array
PASS view = new Int32Array(3) is defined.
PASS random = crypto.getRandomValues(view) is defined.
PASS random is view
PASS crypto.getRandomValues(new Float32Array(3)) threw exception TypeMismatchError: The type of an object was incompatible with the expected type of the parameter associated to the object..
PASS crypto.getRandomValues(new Float64Array(3)) threw exception TypeMismatchError: The type of an object was incompatible with the expected type of the parameter associated to the object..
PASS buffer = new Uint8Array(32) is defined.
PASS buffer.buffer is defined.
PASS view = new DataView(buffer.buffer) is defined.
PASS crypto.getRandomValues(view) threw exception TypeMismatchError: The type of an object was incompatible with the expected type of the parameter associated to the object..
PASS successfullyParsed is true

TEST COMPLETE

