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

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

Issue 16125005: Make new StreamController be async by default. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 import "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 import "dart:utf"; 6 import "dart:utf";
7 import "dart:math"; 7 import "dart:math";
8 import "dart:async"; 8 import "dart:async";
9 import "dart:collection"; 9 import "dart:collection";
10 import "dart:typed_data"; 10 import "dart:typed_data";
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 return frame; 94 return frame;
95 } 95 }
96 96
97 97
98 // Test processing messages which are sent in a single frame. 98 // Test processing messages which are sent in a single frame.
99 void testFullMessages() { 99 void testFullMessages() {
100 void testMessage(int opcode, List<int> message) { 100 void testMessage(int opcode, List<int> message) {
101 int messageCount = 0; 101 int messageCount = 0;
102 // Use the same web socket protocol transformer for all frames. 102 // Use the same web socket protocol transformer for all frames.
103 var transformer = new _WebSocketProtocolTransformer(); 103 var transformer = new _WebSocketProtocolTransformer();
104 var controller = new StreamController(); 104 var controller = new StreamController(sync: true);
105 WebSocketMessageCollector mc = new WebSocketMessageCollector( 105 WebSocketMessageCollector mc = new WebSocketMessageCollector(
106 controller.stream.transform(transformer), 106 controller.stream.transform(transformer),
107 message); 107 message);
108 108
109 List<int> frame = createFrame( 109 List<int> frame = createFrame(
110 true, opcode, null, message, 0, message.length); 110 true, opcode, null, message, 0, message.length);
111 111
112 // Update the transformer with one big chunk. 112 // Update the transformer with one big chunk.
113 messageCount++; 113 messageCount++;
114 controller.add(frame); 114 controller.add(frame);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 runTest(120, 130, 1); 158 runTest(120, 130, 1);
159 runTest(0, 1000, 100); 159 runTest(0, 1000, 100);
160 runTest(65534, 65537, 1); 160 runTest(65534, 65537, 1);
161 } 161 }
162 162
163 163
164 // Test processing of frames which are split into fragments. 164 // Test processing of frames which are split into fragments.
165 void testFragmentedMessages() { 165 void testFragmentedMessages() {
166 // Use the same web socket protocol transformer for all frames. 166 // Use the same web socket protocol transformer for all frames.
167 var transformer = new _WebSocketProtocolTransformer(); 167 var transformer = new _WebSocketProtocolTransformer();
168 var controller = new StreamController(); 168 var controller = new StreamController(sync: true);
169 WebSocketMessageCollector mc = new WebSocketMessageCollector( 169 WebSocketMessageCollector mc = new WebSocketMessageCollector(
170 controller.stream.transform(transformer)); 170 controller.stream.transform(transformer));
171 171
172 int messageCount = 0; 172 int messageCount = 0;
173 int frameCount = 0; 173 int frameCount = 0;
174 174
175 void testFragmentMessage(int opcode, List<int> message, int fragmentSize) { 175 void testFragmentMessage(int opcode, List<int> message, int fragmentSize) {
176 messageCount++; 176 messageCount++;
177 int messageIndex = 0; 177 int messageIndex = 0;
178 int remaining = message.length; 178 int remaining = message.length;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 runTest(0, 10, 1); 223 runTest(0, 10, 1);
224 runTest(120, 130, 1); 224 runTest(120, 130, 1);
225 runTest(0, 1000, 100); 225 runTest(0, 1000, 100);
226 runTest(65534, 65537, 1); 226 runTest(65534, 65537, 1);
227 print("Fragment messages test, messages $messageCount, frames $frameCount"); 227 print("Fragment messages test, messages $messageCount, frames $frameCount");
228 Expect.equals(messageCount, mc.messageCount); 228 Expect.equals(messageCount, mc.messageCount);
229 } 229 }
230 230
231 void testUnmaskedMessage() { 231 void testUnmaskedMessage() {
232 var transformer = new _WebSocketProtocolTransformer(true); 232 var transformer = new _WebSocketProtocolTransformer(true);
233 var controller = new StreamController(); 233 var controller = new StreamController(sync: true);
234 var port = new ReceivePort(); 234 var port = new ReceivePort();
235 controller.stream.transform(transformer).listen((_) {}, onError: (e) { 235 controller.stream.transform(transformer).listen((_) {}, onError: (e) {
236 port.close(); 236 port.close();
237 }); 237 });
238 var message = new Uint8List(10); 238 var message = new Uint8List(10);
239 List<int> frame = createFrame( 239 List<int> frame = createFrame(
240 true, FRAME_OPCODE_BINARY, null, message, 0, message.length); 240 true, FRAME_OPCODE_BINARY, null, message, 0, message.length);
241 controller.add(frame); 241 controller.add(frame);
242 } 242 }
243 243
244 244
245 void main() { 245 void main() {
246 testFullMessages(); 246 testFullMessages();
247 testFragmentedMessages(); 247 testFragmentedMessages();
248 testUnmaskedMessage(); 248 testUnmaskedMessage();
249 } 249 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698