1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-01-22 06:09:25 -05:00

fix: createSecKey logic (#4063)

This commit is contained in:
Suguru Motegi 2020-02-24 13:37:15 -08:00 committed by GitHub
parent f4fd433e1a
commit 79c6e052ed
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 1 deletions

View file

@ -20,6 +20,7 @@ mod tests {
cwd.push("std");
let mut deno = deno_cmd
.current_dir(cwd) // note: std tests expect to run from "std" dir
.arg("--seed=86") // Some tests rely on specific random numbers.
.arg("-A")
// .arg("-Ldebug")
.arg("./testing/runner.ts")

View file

@ -457,7 +457,7 @@ const kSecChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-.~_";
export function createSecKey(): string {
let key = "";
for (let i = 0; i < 16; i++) {
const j = Math.round(Math.random() * kSecChars.length);
const j = Math.floor(Math.random() * kSecChars.length);
key += kSecChars[j];
}
return btoa(key);

View file

@ -8,6 +8,7 @@ import {
acceptable,
connectWebSocket,
createSecAccept,
createSecKey,
handshake,
OpCode,
readFrame,
@ -328,6 +329,13 @@ test("WebSocket.send(), WebSocket.ping() should be exclusive", async (): Promise
assertEquals(bytes.equal(third.payload, new Uint8Array([3])), true);
});
test(function createSecKeyHasCorrectLength(): void {
// Note: relies on --seed=86 being passed to deno to reproduce failure in
// #4063.
const secKey = createSecKey();
assertEquals(atob(secKey).length, 16);
});
test("WebSocket should throw SocketClosedError when peer closed connection without close frame", async () => {
const buf = new Buffer();
const eofReader: Deno.Reader = {