| // 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. |
| // |
| |
| // @dart = 2.9 |
| |
| 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(); |
| } |