| Index: tests/standalone/io/string_decoder_test.dart
|
| diff --git a/tests/standalone/io/string_decoder_test.dart b/tests/standalone/io/string_decoder_test.dart
|
| deleted file mode 100644
|
| index 049173c63e3218baf5a27794e71d01b870e690ea..0000000000000000000000000000000000000000
|
| --- a/tests/standalone/io/string_decoder_test.dart
|
| +++ /dev/null
|
| @@ -1,94 +0,0 @@
|
| -// Copyright (c) 2013, 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.
|
| -
|
| -import "package:expect/expect.dart";
|
| -import "dart:async";
|
| -import "dart:io";
|
| -
|
| -const UNICODE_REPLACEMENT_CHARACTER_RUNE = 0xFFFD;
|
| -
|
| -void testTransform() {
|
| - // Code point U+10FFFF is the largest code point supported by Dart.
|
| - var controller = new StreamController(sync: true);
|
| - controller.add([0xf0, 0x90, 0x80, 0x80]); // U+10000
|
| - controller.add([0xf4, 0x8f, 0xbf, 0xbf]); // U+10FFFF
|
| - controller.add([0xf4, 0x90, 0x80, 0x80]); // U+110000
|
| - controller.add([0xfa, 0x80, 0x80, 0x80, 0x80]); // U+2000000
|
| - controller.add([0xfd, 0x80, 0x80, 0x80, 0x80, 0x80]); // U+40000000
|
| - controller.close();
|
| -
|
| - var decoder = new StringDecoder(Encoding.UTF_8);
|
| - var stream = controller.stream.transform(decoder);
|
| - stream.fold(
|
| - new StringBuffer(),
|
| - (b, e) {
|
| - b.write(e);
|
| - return b;
|
| - })
|
| - .then((b) => b.toString())
|
| - .then((decoded) {
|
| - Expect.equals(16, decoded.length);
|
| -
|
| - var replacementChar = UNICODE_REPLACEMENT_CHARACTER_RUNE;
|
| - Expect.equals(0xd800, decoded.codeUnitAt(0));
|
| - Expect.equals(0xdc00, decoded.codeUnitAt(1));
|
| - Expect.equals(0xdbff, decoded.codeUnitAt(2));
|
| - Expect.equals(0xdfff, decoded.codeUnitAt(3));
|
| - for (int i = 4; i < 16; i++) {
|
| - Expect.equals(replacementChar, decoded.codeUnitAt(i));
|
| - }
|
| - });
|
| -}
|
| -
|
| -void testDecode() {
|
| - // Code point U+10FFFF is the largest code point supported by Dart.
|
| - var controller = new StreamController(sync: true);
|
| - controller.add([0xf0, 0x90, 0x80, 0x80]); // U+10000
|
| - controller.add([0xf4, 0x8f, 0xbf, 0xbf]); // U+10FFFF
|
| - controller.add([0xf4, 0x90, 0x80, 0x80]); // U+110000
|
| - controller.add([0xfa, 0x80, 0x80, 0x80, 0x80]); // U+2000000
|
| - controller.add([0xfd, 0x80, 0x80, 0x80, 0x80, 0x80]); // U+40000000
|
| - controller.close();
|
| -
|
| - StringDecoder.decode(controller.stream, Encoding.UTF_8)
|
| - .then((decoded) {
|
| - Expect.equals(16, decoded.length);
|
| -
|
| - var replacementChar = UNICODE_REPLACEMENT_CHARACTER_RUNE;
|
| - Expect.equals(0xd800, decoded.codeUnitAt(0));
|
| - Expect.equals(0xdc00, decoded.codeUnitAt(1));
|
| - Expect.equals(0xdbff, decoded.codeUnitAt(2));
|
| - Expect.equals(0xdfff, decoded.codeUnitAt(3));
|
| - for (int i = 4; i < 16; i++) {
|
| - Expect.equals(replacementChar, decoded.codeUnitAt(i));
|
| - }
|
| - });
|
| -}
|
| -
|
| -void testInvalid() {
|
| - void invalid(var bytes, var outputLength) {
|
| - var controller = new StreamController(sync: true);
|
| - controller.add(bytes);
|
| - controller.close();
|
| - controller.stream.transform(new StringDecoder()).listen((string) {
|
| - Expect.equals(outputLength, string.length);
|
| - for (var i = 0; i < outputLength; i++) {
|
| - Expect.equals(UNICODE_REPLACEMENT_CHARACTER_RUNE,
|
| - string.codeUnitAt(i));
|
| - }
|
| - });
|
| - }
|
| -
|
| - invalid([0x80], 1);
|
| - invalid([0xff], 1);
|
| - invalid([0xf0, 0xc0], 1);
|
| - invalid([0xc0, 0x80], 1);
|
| - invalid([0xfd, 0x80, 0x80], 3); // Unfinished encoding.
|
| -}
|
| -
|
| -void main() {
|
| - testTransform();
|
| - testDecode();
|
| - testInvalid();
|
| -}
|
|
|