github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/gmhttp/proxy_test.go (about) 1 // Copyright 2009 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package gmhttp 6 7 import ( 8 "net/url" 9 "os" 10 "testing" 11 ) 12 13 // TODO(mattn): 14 // test ProxyAuth 15 16 var cacheKeysTests = []struct { 17 proxy string 18 scheme string 19 addr string 20 key string 21 }{ 22 {"", "http", "foo.com", "|http|foo.com"}, 23 {"", "https", "foo.com", "|https|foo.com"}, 24 {"http://foo.com", "http", "foo.com", "http://foo.com|http|"}, 25 {"http://foo.com", "https", "foo.com", "http://foo.com|https|foo.com"}, 26 } 27 28 func TestCacheKeys(t *testing.T) { 29 for _, tt := range cacheKeysTests { 30 var proxy *url.URL 31 if tt.proxy != "" { 32 u, err := url.Parse(tt.proxy) 33 if err != nil { 34 t.Fatal(err) 35 } 36 proxy = u 37 } 38 cm := connectMethod{proxyURL: proxy, targetScheme: tt.scheme, targetAddr: tt.addr} 39 if got := cm.key().String(); got != tt.key { 40 t.Fatalf("{%q, %q, %q} cache key = %q; want %q", tt.proxy, tt.scheme, tt.addr, got, tt.key) 41 } 42 } 43 } 44 45 func ResetProxyEnv() { 46 for _, v := range []string{"HTTP_PROXY", "http_proxy", "NO_PROXY", "no_proxy", "REQUEST_METHOD"} { 47 os.Unsetenv(v) 48 } 49 ResetCachedEnvironment() 50 }