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

Side by Side Diff: tests/lib_strong/convert/chunked_conversion_utf83_test.dart

Issue 2989993002: fix unsound cast failures in tests (Closed)
Patch Set: fix Created 3 years, 4 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
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 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 5 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
6 // for details. All rights reserved. Use of this source code is governed by a 6 // for details. All rights reserved. Use of this source code is governed by a
7 // BSD-style license that can be found in the LICENSE file. 7 // BSD-style license that can be found in the LICENSE file.
8 8
9 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
10 import 'dart:convert'; 10 import 'dart:convert';
11 11
12 String decode(List<int> bytes, int chunkSize) { 12 String decode(List<int> bytes, int chunkSize) {
13 StringBuffer buffer = new StringBuffer(); 13 StringBuffer buffer = new StringBuffer();
14 var stringSink = new StringConversionSink.fromStringSink(buffer); 14 var stringSink = new StringConversionSink.fromStringSink(buffer);
15 var byteSink = new Utf8Decoder().startChunkedConversion(stringSink); 15 var byteSink = new Utf8Decoder().startChunkedConversion(stringSink);
16 int i = 0; 16 int i = 0;
17 while (i < bytes.length) { 17 while (i < bytes.length) {
18 List nextChunk = []; 18 var nextChunk = <int>[];
19 for (int j = 0; j < chunkSize; j++) { 19 for (int j = 0; j < chunkSize; j++) {
20 if (i < bytes.length) { 20 if (i < bytes.length) {
21 nextChunk.add(bytes[i]); 21 nextChunk.add(bytes[i]);
22 i++; 22 i++;
23 } 23 }
24 } 24 }
25 byteSink.add(nextChunk); 25 byteSink.add(nextChunk);
26 } 26 }
27 byteSink.close(); 27 byteSink.close();
28 return buffer.toString(); 28 return buffer.toString();
29 } 29 }
30 30
31 String decodeAllowMalformed(List<int> bytes, int chunkSize) { 31 String decodeAllowMalformed(List<int> bytes, int chunkSize) {
32 StringBuffer buffer = new StringBuffer(); 32 StringBuffer buffer = new StringBuffer();
33 var stringSink = new StringConversionSink.fromStringSink(buffer); 33 var stringSink = new StringConversionSink.fromStringSink(buffer);
34 var decoder = new Utf8Decoder(allowMalformed: true); 34 var decoder = new Utf8Decoder(allowMalformed: true);
35 var byteSink = decoder.startChunkedConversion(stringSink); 35 var byteSink = decoder.startChunkedConversion(stringSink);
36 int i = 0; 36 int i = 0;
37 while (i < bytes.length) { 37 while (i < bytes.length) {
38 List nextChunk = []; 38 var nextChunk = <int>[];
39 for (int j = 0; j < chunkSize; j++) { 39 for (int j = 0; j < chunkSize; j++) {
40 if (i < bytes.length) { 40 if (i < bytes.length) {
41 nextChunk.add(bytes[i]); 41 nextChunk.add(bytes[i]);
42 i++; 42 i++;
43 } 43 }
44 } 44 }
45 byteSink.add(nextChunk); 45 byteSink.add(nextChunk);
46 } 46 }
47 byteSink.close(); 47 byteSink.close();
48 return buffer.toString(); 48 return buffer.toString();
(...skipping 19 matching lines...) Expand all
68 Expect.equals("", decodeAllowMalformed([0xEF, 0xBB, 0xBF], 4)); 68 Expect.equals("", decodeAllowMalformed([0xEF, 0xBB, 0xBF], 4));
69 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 1)); 69 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 1));
70 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 2)); 70 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 2));
71 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 3)); 71 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 3));
72 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 4)); 72 Expect.equals("a\u{FEFF}", decode([0x61, 0xEF, 0xBB, 0xBF], 4));
73 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 1)); 73 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 1));
74 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 2)); 74 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 2));
75 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 3)); 75 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 3));
76 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 4)); 76 Expect.equals("a\u{FEFF}", decodeAllowMalformed([0x61, 0xEF, 0xBB, 0xBF], 4));
77 } 77 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698