blob: e7926282a34cd1b00c35ef1e0141714fbc648824 [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 not 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);
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"));
}