blob: 890dd55ea0b2a7e792061810867f41406f45d1c9 [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"));
});
}