Chromium Code Reviews| 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 |