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

Side by Side Diff: tests/standalone/io/web_socket_compression_test.dart

Issue 1890973003: pkg/analyzer: support latest pkg/crypto version (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: nits Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « tests/standalone/io/http_proxy_test.dart ('k') | tests/standalone/io/web_socket_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // 4 //
5 // VMOptions= 5 // VMOptions=
6 // VMOptions=--short_socket_read 6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write 7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write 8 // VMOptions=--short_socket_read --short_socket_write
9 9
10 import "dart:async"; 10 import "dart:async";
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 Future<HttpClientResponse> createWebsocket(String url, String headerValue) { 50 Future<HttpClientResponse> createWebsocket(String url, String headerValue) {
51 HttpClient _httpClient = new HttpClient(); 51 HttpClient _httpClient = new HttpClient();
52 Uri uri = Uri.parse(url); 52 Uri uri = Uri.parse(url);
53 53
54 Random random = new Random(); 54 Random random = new Random();
55 // Generate 16 random bytes. 55 // Generate 16 random bytes.
56 Uint8List nonceData = new Uint8List(16); 56 Uint8List nonceData = new Uint8List(16);
57 for (int i = 0; i < 16; i++) { 57 for (int i = 0; i < 16; i++) {
58 nonceData[i] = random.nextInt(256); 58 nonceData[i] = random.nextInt(256);
59 } 59 }
60 String nonce = CryptoUtils.bytesToBase64(nonceData); 60 String nonce = BASE64.encode(nonceData);
61 61
62 uri = new Uri( 62 uri = new Uri(
63 scheme: uri.scheme == "wss" ? "https" : "http", 63 scheme: uri.scheme == "wss" ? "https" : "http",
64 userInfo: uri.userInfo, 64 userInfo: uri.userInfo,
65 host: uri.host, 65 host: uri.host,
66 port: uri.port, 66 port: uri.port,
67 path: uri.path, 67 path: uri.path,
68 query: uri.query, 68 query: uri.query,
69 fragment: uri.fragment); 69 fragment: uri.fragment);
70 return _httpClient.openUrl("GET", uri).then((request) { 70 return _httpClient.openUrl("GET", uri).then((request) {
71 if (uri.userInfo != null && !uri.userInfo.isEmpty) { 71 if (uri.userInfo != null && !uri.userInfo.isEmpty) {
72 // If the URL contains user information use that for basic 72 // If the URL contains user information use that for basic
73 // authorization. 73 // authorization.
74 String auth = CryptoUtils.bytesToBase64(UTF8.encode(uri.userInfo)); 74 String auth = BASE64.encode(UTF8.encode(uri.userInfo));
75 request.headers.set(HttpHeaders.AUTHORIZATION, "Basic $auth"); 75 request.headers.set(HttpHeaders.AUTHORIZATION, "Basic $auth");
76 } 76 }
77 // Setup the initial handshake. 77 // Setup the initial handshake.
78 request.headers 78 request.headers
79 ..set(HttpHeaders.CONNECTION, "Upgrade") 79 ..set(HttpHeaders.CONNECTION, "Upgrade")
80 ..set(HttpHeaders.UPGRADE, "websocket") 80 ..set(HttpHeaders.UPGRADE, "websocket")
81 ..set("Sec-WebSocket-Key", nonce) 81 ..set("Sec-WebSocket-Key", nonce)
82 ..set("Cache-Control", "no-cache") 82 ..set("Cache-Control", "no-cache")
83 ..set("Sec-WebSocket-Version", "13") 83 ..set("Sec-WebSocket-Version", "13")
84 ..set("Sec-WebSocket-Extensions", headerValue); 84 ..set("Sec-WebSocket-Extensions", headerValue);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 } 168 }
169 169
170 void testCompressionHeaders() { 170 void testCompressionHeaders() {
171 asyncStart(); 171 asyncStart();
172 createServer().then((server) { 172 createServer().then((server) {
173 server.listen((request) { 173 server.listen((request) {
174 Expect.equals('Upgrade', request.headers.value(HttpHeaders.CONNECTION)); 174 Expect.equals('Upgrade', request.headers.value(HttpHeaders.CONNECTION));
175 Expect.equals('websocket', request.headers.value(HttpHeaders.UPGRADE)); 175 Expect.equals('websocket', request.headers.value(HttpHeaders.UPGRADE));
176 176
177 var key = request.headers.value('Sec-WebSocket-Key'); 177 var key = request.headers.value('Sec-WebSocket-Key');
178 var sha1 = new SHA1()..add("$key$WEB_SOCKET_GUID".codeUnits); 178 var digest = sha1.convert("$key$WEB_SOCKET_GUID".codeUnits);
179 var accept = CryptoUtils.bytesToBase64(sha1.close()); 179 var accept = BASE64.encode(digest.bytes);
180 request.response 180 request.response
181 ..statusCode = HttpStatus.SWITCHING_PROTOCOLS 181 ..statusCode = HttpStatus.SWITCHING_PROTOCOLS
182 ..headers.add(HttpHeaders.CONNECTION, "Upgrade") 182 ..headers.add(HttpHeaders.CONNECTION, "Upgrade")
183 ..headers.add(HttpHeaders.UPGRADE, "websocket") 183 ..headers.add(HttpHeaders.UPGRADE, "websocket")
184 ..headers.add("Sec-WebSocket-Accept", accept) 184 ..headers.add("Sec-WebSocket-Accept", accept)
185 ..headers.add("Sec-WebSocket-Extensions", 185 ..headers.add("Sec-WebSocket-Extensions",
186 "permessage-deflate;" 186 "permessage-deflate;"
187 // Test quoted values and space padded = 187 // Test quoted values and space padded =
188 'server_max_window_bits="10"; client_max_window_bits = 12' 188 'server_max_window_bits="10"; client_max_window_bits = 12'
189 'client_no_context_takeover; server_no_context_takeover'); 189 'client_no_context_takeover; server_no_context_takeover');
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 serverMaxWindowBits: 8); 376 serverMaxWindowBits: 8);
377 testClientRequestHeaders(compression); 377 testClientRequestHeaders(compression);
378 } 378 }
379 } 379 }
380 380
381 main() { 381 main() {
382 new SecurityConfiguration(secure: false).runTests(); 382 new SecurityConfiguration(secure: false).runTests();
383 // TODO(whesse): Make WebSocket.connect() take an optional context: parameter. 383 // TODO(whesse): Make WebSocket.connect() take an optional context: parameter.
384 // new SecurityConfiguration(secure: true).runTests(); 384 // new SecurityConfiguration(secure: true).runTests();
385 } 385 }
OLDNEW
« no previous file with comments | « tests/standalone/io/http_proxy_test.dart ('k') | tests/standalone/io/web_socket_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698