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

Side by Side Diff: tests/standalone/io/string_transformer_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:async"; 6 import "dart:async";
7 import "dart:io"; 7 import "dart:io";
8 import "dart:isolate"; 8 import "dart:isolate";
9 import "dart:utf"; 9 import "dart:utf";
10 10
11 void testUtf8() { 11 void testUtf8() {
12 List<int> data = [0x01, 12 List<int> data = [0x01,
13 0x7f, 13 0x7f,
14 0xc2, 0x80, 14 0xc2, 0x80,
15 0xdf, 0xbf, 15 0xdf, 0xbf,
16 0xe0, 0xa0, 0x80, 16 0xe0, 0xa0, 0x80,
17 0xef, 0xbf, 0xbf, 17 0xef, 0xbf, 0xbf,
18 0xf0, 0x9d, 0x84, 0x9e, 18 0xf0, 0x9d, 0x84, 0x9e,
19 0x100, -0x1, -0xFF]; 19 0x100, -0x1, -0xFF];
20 var controller = new StreamController(); 20 var controller = new StreamController(sync: true);
21 controller.add(data); 21 controller.add(data);
22 controller.close(); 22 controller.close();
23 var stringStream = controller.stream 23 var stringStream = controller.stream
24 .transform(new StringDecoder(Encoding.UTF_8)); 24 .transform(new StringDecoder(Encoding.UTF_8));
25 stringStream.listen( 25 stringStream.listen(
26 (s) { 26 (s) {
27 Expect.equals(11, s.length); 27 Expect.equals(11, s.length);
28 Expect.equals(new String.fromCharCodes([0x01]), s[0]); 28 Expect.equals(new String.fromCharCodes([0x01]), s[0]);
29 Expect.equals(new String.fromCharCodes([0x7f]), s[1]); 29 Expect.equals(new String.fromCharCodes([0x7f]), s[1]);
30 Expect.equals(new String.fromCharCodes([0x80]), s[2]); 30 Expect.equals(new String.fromCharCodes([0x80]), s[2]);
(...skipping 14 matching lines...) Expand all
45 }); 45 });
46 } 46 }
47 47
48 void testLatin1() { 48 void testLatin1() {
49 List<int> data = [0x01, 49 List<int> data = [0x01,
50 0x7f, 50 0x7f,
51 0x44, 0x61, 0x72, 0x74, 51 0x44, 0x61, 0x72, 0x74,
52 0x80, 52 0x80,
53 0xff, 53 0xff,
54 0x100, -0x1, -0xff]; 54 0x100, -0x1, -0xff];
55 var controller = new StreamController(); 55 var controller = new StreamController(sync: true);
56 controller.add(data); 56 controller.add(data);
57 controller.close(); 57 controller.close();
58 var stream = controller.stream 58 var stream = controller.stream
59 .transform(new StringDecoder(Encoding.ISO_8859_1)); 59 .transform(new StringDecoder(Encoding.ISO_8859_1));
60 stream.listen((s) { 60 stream.listen((s) {
61 Expect.equals(11, s.length); 61 Expect.equals(11, s.length);
62 Expect.equals(new String.fromCharCodes([0x01]), s[0]); 62 Expect.equals(new String.fromCharCodes([0x01]), s[0]);
63 Expect.equals(new String.fromCharCodes([0x7f]), s[1]); 63 Expect.equals(new String.fromCharCodes([0x7f]), s[1]);
64 Expect.equals("Dart", s.substring(2, 6)); 64 Expect.equals("Dart", s.substring(2, 6));
65 Expect.equals(new String.fromCharCodes([0x80]), s[6]); 65 Expect.equals(new String.fromCharCodes([0x80]), s[6]);
66 Expect.equals(new String.fromCharCodes([0xff]), s[7]); 66 Expect.equals(new String.fromCharCodes([0xff]), s[7]);
67 Expect.equals('???', s.substring(8, 11)); 67 Expect.equals('???', s.substring(8, 11));
68 }); 68 });
69 } 69 }
70 70
71 void testAscii() { 71 void testAscii() {
72 List<int> data = [0x01, 72 List<int> data = [0x01,
73 0x44, 0x61, 0x72, 0x74, 73 0x44, 0x61, 0x72, 0x74,
74 0x7f, 74 0x7f,
75 0xf4, 0x100, -0x1, -0xff]; 75 0xf4, 0x100, -0x1, -0xff];
76 var controller = new StreamController(); 76 var controller = new StreamController(sync: true);
77 controller.add(data); 77 controller.add(data);
78 controller.close(); 78 controller.close();
79 var stream = controller.stream 79 var stream = controller.stream
80 .transform(new StringDecoder(Encoding.ASCII)); 80 .transform(new StringDecoder(Encoding.ASCII));
81 stream.listen((s) { 81 stream.listen((s) {
82 Expect.equals(10, s.length); 82 Expect.equals(10, s.length);
83 Expect.equals(new String.fromCharCodes([0x01]), s[0]); 83 Expect.equals(new String.fromCharCodes([0x01]), s[0]);
84 Expect.equals("Dart", s.substring(1, 5)); 84 Expect.equals("Dart", s.substring(1, 5));
85 Expect.equals(new String.fromCharCodes([0x7f]), s[5]); 85 Expect.equals(new String.fromCharCodes([0x7f]), s[5]);
86 Expect.equals('????', s.substring(6, 10)); 86 Expect.equals('????', s.substring(6, 10));
87 }); 87 });
88 } 88 }
89 89
90 void testReadLine1() { 90 void testReadLine1() {
91 var controller = new StreamController(); 91 var controller = new StreamController(sync: true);
92 var stream = controller.stream 92 var stream = controller.stream
93 .transform(new StringDecoder()) 93 .transform(new StringDecoder())
94 .transform(new LineTransformer()); 94 .transform(new LineTransformer());
95 95
96 var stage = 0; 96 var stage = 0;
97 97
98 void stringData(line) { 98 void stringData(line) {
99 var line; 99 var line;
100 if (stage == 0) { 100 if (stage == 0) {
101 Expect.equals(null, line); 101 Expect.equals(null, line);
(...skipping 10 matching lines...) Expand all
112 } 112 }
113 113
114 stream.listen( 114 stream.listen(
115 stringData, 115 stringData,
116 onDone: streamClosed); 116 onDone: streamClosed);
117 117
118 controller.add("Line".codeUnits); 118 controller.add("Line".codeUnits);
119 } 119 }
120 120
121 void testReadLine2() { 121 void testReadLine2() {
122 var controller = new StreamController(); 122 var controller = new StreamController(sync: true);
123 123
124 var stream = controller.stream 124 var stream = controller.stream
125 .transform(new StringDecoder()) 125 .transform(new StringDecoder())
126 .transform(new LineTransformer()); 126 .transform(new LineTransformer());
127 127
128 var stage = 0; 128 var stage = 0;
129 var subStage = 0; 129 var subStage = 0;
130 stream.listen((line) { 130 stream.listen((line) {
131 if (stage == 0) { 131 if (stage == 0) {
132 if (subStage == 0) { 132 if (subStage == 0) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 }); 180 });
181 181
182 controller.add("Line1\nLine2\r\nLine3\rLi".codeUnits); 182 controller.add("Line1\nLine2\r\nLine3\rLi".codeUnits);
183 } 183 }
184 184
185 class TestException implements Exception { 185 class TestException implements Exception {
186 TestException(); 186 TestException();
187 } 187 }
188 188
189 testErrorHandler() { 189 testErrorHandler() {
190 var controller = new StreamController(); 190 var controller = new StreamController(sync: true);
191 var errors = 0; 191 var errors = 0;
192 var stream = controller.stream 192 var stream = controller.stream
193 .transform(new StringDecoder()) 193 .transform(new StringDecoder())
194 .transform(new LineTransformer()); 194 .transform(new LineTransformer());
195 stream.listen( 195 stream.listen(
196 (_) {}, 196 (_) {},
197 onDone: () { 197 onDone: () {
198 Expect.equals(1, errors); 198 Expect.equals(1, errors);
199 }, 199 },
200 onError: (error) { 200 onError: (error) {
201 errors++; 201 errors++;
202 Expect.isTrue(error is TestException); 202 Expect.isTrue(error is TestException);
203 }); 203 });
204 controller.addError(new TestException()); 204 controller.addError(new TestException());
205 controller.close(); 205 controller.close();
206 } 206 }
207 207
208 testLatin1EncoderError() { 208 testLatin1EncoderError() {
209 List<int> data = [0x01, 209 List<int> data = [0x01,
210 0x7f, 210 0x7f,
211 0x44, 0x61, 0x72, 0x74, 211 0x44, 0x61, 0x72, 0x74,
212 0x80, 212 0x80,
213 0xff, 213 0xff,
214 0x100]; 214 0x100];
215 var controller = new StreamController(); 215 var controller = new StreamController(sync: true);
216 controller.add(new String.fromCharCodes(data)); 216 controller.add(new String.fromCharCodes(data));
217 controller.close(); 217 controller.close();
218 var stream = controller.stream 218 var stream = controller.stream
219 .transform(new StringEncoder(Encoding.ISO_8859_1)); 219 .transform(new StringEncoder(Encoding.ISO_8859_1));
220 stream.listen( 220 stream.listen(
221 (s) { 221 (s) {
222 Expect.fail("data not expected"); 222 Expect.fail("data not expected");
223 }, 223 },
224 onError: (error) { 224 onError: (error) {
225 Expect.isTrue(error is FormatException); 225 Expect.isTrue(error is FormatException);
226 }); 226 });
227 227
228 } 228 }
229 229
230 main() { 230 main() {
231 testUtf8(); 231 testUtf8();
232 testLatin1(); 232 testLatin1();
233 testAscii(); 233 testAscii();
234 testReadLine1(); 234 testReadLine1();
235 testReadLine2(); 235 testReadLine2();
236 testErrorHandler(); 236 testErrorHandler();
237 testLatin1EncoderError(); 237 testLatin1EncoderError();
238 } 238 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698