blob: 8e8358aca68c04367ba7659f5f9ee22149c81654 [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 UriData.fromUri(Uri uri)
* Creates a DataUri from a Uri which must have data as Uri.scheme.
*
* The uri must have scheme data and no authority or fragment, and the path
* (concatenated with the query, if there is one) must be valid as data URI
* content with the same rules as parse.
* @description Checks that this constructor creates an expected UriData. Test
* Uri, which is not valid for data Uri
* @author sgrekhov@unipro.ru
*/
import "dart:convert";
import "../../../Utils/expect.dart";
main() {
// no scheme
Expect.throws(() {
new UriData.fromUri(new Uri(path: "text/plain,some data", query: "a=b"));
});
// wrong scheme
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", path: "text/plain,some data",
query: "a=b"));
});
// uri has authority
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", userInfo: "user:pass",
path: "text/plain,some data", query: "a=b"));
});
// uri has authority
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", userInfo: "user",
path: "text/plain,some data", query: "a=b"));
});
// uri has authority
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", userInfo: ":pass",
path: "text/plain,some data", query: "a=b"));
});
// uri has authority
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", host: "host",
path: "text/plain,some data", query: "a=b"));
});
// uri has authority
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", port: 8080,
path: "text/plain,some data", query: "a=b"));
});
// uri has fragment
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", fragment: "frgmt",
path: "text/plain,some data", query: "a=b"));
});
// path has wrong content
Expect.throws(() {
new UriData.fromUri(new Uri(scheme: "http", userInfo: "user:pass",
path: "text/plain,some data", query: "a=b"));
});
}