| /* |
| * 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 Future<String> decodeStream(Stream<List<int>> byteStream) |
| * @description Checks that this method decodes stream to proper string |
| * @author sgrekhov@unipro.ru |
| */ |
| import "dart:async"; |
| import "dart:convert"; |
| import "../../../Utils/expect.dart"; |
| |
| Future check(Encoding? encoding, String str) async { |
| List<int> data = encoding?.encode(str) as List<int>; |
| Stream<List<int>> byteStream = new Stream.fromIterable([data as List<int>]); |
| encoding?.decodeStream(byteStream).then((String s) { |
| Expect.equals(str, s); |
| }); |
| } |
| |
| main() { |
| asyncStart(); |
| Future.wait([ |
| check(Encoding.getByName("us-ascii"), ""), |
| check(Encoding.getByName("us-ascii"), "123abs!#?"), |
| check(Encoding.getByName("iso-8859-1"), ""), |
| check(Encoding.getByName("iso-8859-1"), "âã"), |
| check(Encoding.getByName("utf-8"), ""), |
| check(Encoding.getByName("utf-8"), "Кириллица прекрасна"), |
| ]).then( |
| (_) => asyncEnd() |
| ); |
| } |