|  | // 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 "package:expect/expect.dart"; | 
|  | import "dart:io"; | 
|  |  | 
|  | expect(expected, String uri, environment) { | 
|  | Expect.equals(expected, | 
|  | HttpClient.findProxyFromEnvironment(Uri.parse(uri), | 
|  | environment: environment)); | 
|  | } | 
|  |  | 
|  | expectDirect(String uri, environment) { | 
|  | Expect.equals("DIRECT", | 
|  | HttpClient.findProxyFromEnvironment(Uri.parse(uri), | 
|  | environment: environment)); | 
|  | } | 
|  |  | 
|  | main() { | 
|  | expectDirect("http://www.google.com", {}); | 
|  |  | 
|  | expect("PROXY www.proxy.com:1080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com"}); | 
|  | expect("PROXY www.proxys.com:1080", | 
|  | "https://www.google.com", | 
|  | {"https_proxy": "www.proxys.com"}); | 
|  | expect("PROXY www.proxy.com:8080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080"}); | 
|  | expect("PROXY www.proxys.com:8080", | 
|  | "https://www.google.com", | 
|  | {"https_proxy": "www.proxys.com:8080"}); | 
|  | expect("PROXY www.proxy.com:8080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "https_proxy": "www.proxy.com:8080"}); | 
|  | expect("PROXY www.proxys.com:8080", | 
|  | "https://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "https_proxy": "www.proxys.com:8080"}); | 
|  |  | 
|  | expect("PROXY www.proxy.com:1080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com"}); | 
|  | expect("PROXY www.proxy.com:1080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com/"}); | 
|  | expect("PROXY www.proxy.com:8080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com:8080/"}); | 
|  | expect("PROXY www.proxy.com:8080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com:8080/index.html"}); | 
|  | expect("PROXY www.proxy.com:8080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com:8080/", | 
|  | "https_proxy": "http://www.proxy.com:8080/"}); | 
|  | expect("PROXY www.proxys.com:8080", | 
|  | "https://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com:8080/", | 
|  | "https_proxy": "http://www.proxys.com:8080/"}); | 
|  | expect("PROXY www.proxy.com:8080", | 
|  | "http://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com:8080/", | 
|  | "https_proxy": "http://www.proxy.com:8080/index.html"}); | 
|  | expect("PROXY www.proxys.com:8080", | 
|  | "https://www.google.com", | 
|  | {"http_proxy": "http://www.proxy.com:8080/", | 
|  | "https_proxy": "http://www.proxys.com:8080/index.html"}); | 
|  |  | 
|  | expectDirect("http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "no_proxy": "www.google.com"}); | 
|  | expectDirect("http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "no_proxy": "google.com"}); | 
|  | expectDirect("http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "no_proxy": ".com"}); | 
|  | expectDirect("http://www.google.com", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "no_proxy": ",,  , www.google.edu,,.com    "}); | 
|  | expectDirect("http://www.google.edu", | 
|  | {"http_proxy": "www.proxy.com:8080", | 
|  | "no_proxy": ",,  , www.google.edu,,.com    "}); | 
|  | expectDirect("http://www.google.com", | 
|  | {"https_proxy": "www.proxy.com:8080"}); | 
|  | } |