OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | |
Lasse Reichstein Nielsen
2015/06/23 13:08:51
2015?
Søren Gjesse
2015/06/24 07:58:26
Done.
| |
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. | |
4 | |
5 import 'dart:io'; | |
6 import 'dart:convert'; | |
7 | |
8 import "package:expect/expect.dart"; | |
9 | |
10 void testEncodeDecode(String str) { | |
Lasse Reichstein Nielsen
2015/06/23 13:08:50
Document that this only works for ASCII.
Søren Gjesse
2015/06/24 07:58:26
Done.
| |
11 Expect.equals( | |
12 SYSTEM_ENCODING.decoder.convert( | |
13 SYSTEM_ENCODING.encoder.convert(str)), str); | |
14 } | |
15 | |
16 void testDecodeEncode(List<int> bytes) { | |
Lasse Reichstein Nielsen
2015/06/23 13:08:50
... and this should work for all bytes.
Søren Gjesse
2015/06/24 07:58:26
No, only 0..127, as on all platforms but Windows t
| |
17 Expect.listEquals( | |
18 SYSTEM_ENCODING.encoder.convert( | |
19 SYSTEM_ENCODING.decoder.convert(bytes)), bytes); | |
20 } | |
21 | |
22 void test(List<int> bytes) { | |
23 var str = new String.fromCharCodes(bytes); | |
24 Expect.equals(SYSTEM_ENCODING.decoder.convert(bytes), str); | |
25 Expect.listEquals(SYSTEM_ENCODING.encoder.convert(str), bytes); | |
26 testDecodeEncode(bytes); | |
27 testEncodeDecode(str); | |
28 } | |
29 | |
30 main() { | |
31 test([65, 66, 67]); | |
32 test([65, 0, 67]); | |
33 test([0, 65, 0, 67, 0]); | |
34 test([0, 0, 0]); | |
35 test(new Iterable.generate(128, (i) => i).toList()); | |
36 testEncodeDecode('\u00c6\u00d8\u00c5'); | |
37 if (Platform.isWindows) { | |
38 // On Windows the default Windows code page cannot encode these | |
39 // Unicode characters and the ? character is used. | |
40 Expect.listEquals( | |
41 SYSTEM_ENCODING.encoder.convert('\u1234\u5678\u9abc'), | |
42 '???'.codeUnits); | |
43 } else { | |
44 // On all systems except for Windows UTF-8 is used as the system | |
45 // encoding. | |
46 Expect.listEquals( | |
47 SYSTEM_ENCODING.encoder.convert('\u1234\u5678\u9abc'), | |
Lasse Reichstein Nielsen
2015/06/23 13:08:51
.encoder.convert(...) -> .encode(...)
Simlar abov
Søren Gjesse
2015/06/24 07:58:26
Done.
| |
48 UTF8.encoder.convert('\u1234\u5678\u9abc')); | |
49 } | |
50 } | |
OLD | NEW |