| /* |
| * Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @assertion String decode(List<int> codeUnits, {bool allowMalformed}) |
| * Decodes the UTF-8 codeUnits (a list of unsigned 8-bit integers) to the |
| * corresponding string. |
| * |
| * If the [codeUnits] start with the encoding of a [unicodeBomCharacterRune], |
| * that character is discarded. |
| * ... |
| * @description Checks that if the [codeUnits] start with the encoding of a |
| * [unicodeBomCharacterRune], that character is discarded |
| * @issue 28834 |
| * @author sgrekhov@unipro.ru |
| */ |
| import "dart:convert"; |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| Utf8Codec codec = new Utf8Codec(); |
| for (int i = 0; i < 128; i++) { |
| String s = new String.fromCharCode(i); |
| List<int> toDecode = []; |
| toDecode.addAll(codec.encode( |
| new String.fromCharCodes([unicodeBomCharacterRune]))); |
| toDecode.add(i); |
| Expect.equals(s, codec.decode(toDecode)); |
| |
| } |
| |
| List<int> toDecode = []; |
| toDecode.addAll(codec.encode( |
| new String.fromCharCodes([unicodeBomCharacterRune]))); |
| toDecode.addAll([208, 154, 208, 184, 209, 128, |
| 208, 184, 208, 187, 208, 187, 208, 184, 209, 134, 208, 176, 32]); |
| Expect.equals("Кириллица ", codec.decode(toDecode)); |
| } |