if (self.importScripts)
    importScripts('../../resources/js-test.js');

description("Tests crypto.randomValues.");

if (!self.ArrayBuffer)
    debug("This test requres ArrayBuffers to run!");

shouldBe("'crypto' in self", "true");
shouldBe("'getRandomValues' in self.crypto", "true");

// Although the spec defines Crypto in terms of "RandomSource", it is NOT
// inheritance. The RandomSource interface should not be visible to
// javascript.
shouldBe("self.crypto.__proto__.hasOwnProperty('getRandomValues')", "true");

try {
    // NOTE: 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);
}

finishJSTest();
