blob: 35f8edc776ef230abe4d9124aeeeb3918f701111 [file] [log] [blame]
// Copyright (c) 2013, 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.
//
import "dart:io";
import "package:expect/async_helper.dart";
import "package:expect/expect.dart";
void testInvalidUrl() {
HttpClient client = new HttpClient();
Expect.throws(
() => client.getUrl(Uri.parse('ftp://www.google.com')),
(e) => e.toString().contains("Unsupported scheme"),
);
Expect.throws(
() => client.getUrl(Uri.parse('httpx://www.google.com')),
(e) => e.toString().contains("Unsupported scheme"),
);
Expect.throwsFormatException(() => client.getUrl(Uri.parse('http://::1')));
Expect.throws(
() => client.getUrl(Uri.parse('http://user@:1')),
(e) => e.toString().contains("No host specified"),
);
Expect.throws(
() => client.getUrl(Uri.parse('http:///')),
(e) => e.toString().contains("No host specified"),
);
Expect.throws(
() => client.getUrl(Uri.parse('http:///index.html')),
(e) => e.toString().contains("No host specified"),
);
Expect.throws(
() => client.getUrl(Uri.parse('///')),
(e) => e.toString().contains("No host specified"),
);
Expect.throws(
() => client.getUrl(Uri.parse('///index.html')),
(e) => e.toString().contains("No host specified"),
);
}
void testBadHostName() {
asyncStart();
HttpClient client = new HttpClient();
client
.get("some.bad.host.name.7654321", 0, "/")
.then((request) {
Expect.fail("Should not open a request on bad hostname");
})
.catchError((error) {
asyncEnd(); // We expect onError to be called, due to bad host name.
}, test: (error) => error is! String);
}
void main() {
testInvalidUrl();
testBadHostName();
}