| /* |
| * 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 const Utf8Codec({bool allowMalformed: false}) |
| * Instantiates a new Utf8Codec. |
| * |
| * The optional allowMalformed argument defines how decoder (and decode) deal |
| * with invalid or unterminated character sequences. |
| * |
| * If it is true (and not overridden at the method invocation) decode and the |
| * decoder replace invalid (or unterminated) octet sequences with the Unicode |
| * Replacement character U+FFFD (�). Otherwise they throw a FormatException. |
| * @description Checks that this constructor creates valid Utf8Codec |
| * @author sgrekhov@unipro.ru |
| */ |
| import "dart:convert"; |
| import "../../../Utils/expect.dart"; |
| |
| check(Utf8Codec codec, String toEncode, var expected) { |
| var encoded = codec.encode(toEncode); |
| Expect.deepEquals(expected, encoded); |
| Expect.equals(toEncode, codec.decode(encoded)); |
| } |
| |
| main() { |
| Utf8Codec codec = new Utf8Codec(); |
| for (int i = 0; i < 128; i++) { |
| String s = new String.fromCharCode(i); |
| check(codec, s, [i]); |
| } |
| check(codec, "Кириллица ", [208, 154, 208, 184, 209, 128, 208, 184, 208, 187, |
| 208, 187, 208, 184, 209, 134, 208, 176, 32]); |
| |
| codec = new Utf8Codec(allowMalformed: false); |
| for (int i = 0; i < 128; i++) { |
| String s = new String.fromCharCode(i); |
| check(codec, s, [i]); |
| } |
| check(codec, "Кириллица ", [208, 154, 208, 184, 209, 128, 208, 184, 208, 187, |
| 208, 187, 208, 184, 209, 134, 208, 176, 32]); |
| } |