Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(115)

Unified Diff: LayoutTests/crypto/resources/random-values.js

Issue 16820007: Expose crypto.getRandomValues() to workers. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebase on master Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: LayoutTests/crypto/resources/random-values.js
diff --git a/LayoutTests/crypto/resources/random-values.js b/LayoutTests/crypto/resources/random-values.js
new file mode 100644
index 0000000000000000000000000000000000000000..71f398f3c49b7c5fa69fe237531f375be397d652
--- /dev/null
+++ b/LayoutTests/crypto/resources/random-values.js
@@ -0,0 +1,40 @@
+if (self.importScripts)
+ importScripts('../../fast/js/resources/js-test-pre.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();

Powered by Google App Engine
This is Rietveld 408576698