OLD | NEW |
(Empty) | |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 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) { |
| 11 Expect.equals( |
| 12 SYSTEM_ENCODING.decoder.convert( |
| 13 SYSTEM_ENCODING.encoder.convert(str)), str); |
| 14 } |
| 15 |
| 16 void testDecodeEncode(List<int> bytes) { |
| 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'), |
| 48 UTF8.encoder.convert('\u1234\u5678\u9abc')); |
| 49 } |
| 50 } |
OLD | NEW |