blob: 65ba80e1d75fa2f9100db1a20edfe815c5e5f23c [file] [log] [blame]
/*
* 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 Latin1Decoder({bool allowInvalid: false})
* Instantiates a new Latin1Decoder.
*
* The optional allowInvalid argument defines how convert deals with invalid
* bytes.
*
* If it is true, convert replaces invalid bytes with the Unicode Replacement
* character U+FFFD (�). Otherwise it throws a FormatException.
*
* @description Checks that this constructor creates valid Latin1Decoder
* @author sgrekhov@unipro.ru
*/
import "dart:convert";
import "../../../Utils/expect.dart";
main() {
Latin1Decoder decoder = new Latin1Decoder();
for (int i = 0; i < 256; i++) {
String s = new String.fromCharCode(i);
Expect.equals(s, decoder.convert([i]));
}
for (int i = 256; i < 65536; i++) {
Expect.throws(() {decoder.convert([i]);}, (e) => e is FormatException);
}
decoder = new Latin1Decoder(allowInvalid: false);
for (int i = 0; i < 256; i++) {
String s = new String.fromCharCode(i);
Expect.equals(s, decoder.convert([i]));
}
for (int i = 256; i < 65536; i++) {
Expect.throws(() {decoder.convert([i]);}, (e) => e is FormatException);
}
}