// 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:async_helper/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(); }