blob: c005d655b7631aef3e6047b4ee7dde2c5ddef01c [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 String contentAsString({Encoding encoding})
/// Returns a string created from the content of the data URI.
///
/// If the content is Base64 encoded, it will be decoded to bytes and then
/// decoded to a string using encoding. If encoding is omitted, the value of a
/// charset parameter is used if it is recognized by Encoding.getByName,
/// otherwise it defaults to the ASCII encoding, which is the default encoding
/// for data URIs that do not specify an encoding.
///
/// If the content is not Base64 encoded, it will first have percent-escapes
/// converted to bytes and then the character codes and byte values are decoded
/// using encoding
/// @description Checks that this method returns a string created from the
/// content of the data URI. Test Base64 encoded content
/// @author sgrekhov@unipro.ru
import "dart:convert";
import "../../../Utils/expect.dart";
import "../Uri/UriDataEncoder.lib.dart";
check(String content, [Encoding? encoding]) {
UriData uriData = new UriData.fromString(content, encoding: encoding,
base64: true);
String expected = content;
Expect.equals(expected, uriData.contentAsString(encoding: encoding));
Expect.equals(expected, uriData.contentAsString());
if (encoding != null) {
uriData = new UriData.fromString(content,
parameters: {"charset": encoding.name });
expected = content;
Expect.equals(expected, uriData.contentAsString(encoding: encoding));
Expect.equals(expected, uriData.contentAsString());
}
}
main() {
check("Some data");
check("Non-ASCII: Кириллица прекрасна", Encoding.getByName("utf-8"));
}