diff --git a/src/net/http/proxy_test.go b/src/net/http/proxy_test.go
index 0dd57b41253ee6e59b8ece7d44b56722a2387236..6090506f427d96704c2c8da1821fb18a5cb5d38d 100644
--- a/src/net/http/proxy_test.go
+++ b/src/net/http/proxy_test.go
@@ -10,9 +10,6 @@ import (
 	"testing"
 )
 
-// TODO(mattn):
-//	test ProxyAuth
-
 var cacheKeysTests = []struct {
 	proxy  string
 	scheme string
@@ -48,3 +45,42 @@ func ResetProxyEnv() {
 	}
 	ResetCachedEnvironment()
 }
+
+var proxyAuthTests = []struct {
+	proxy string
+	key   string
+}{
+	{
+		"",
+		"",
+	},
+	{
+		"http://bar.com",
+		"",
+	},
+	{
+		"http://foo@bar.com",
+		"Basic Zm9vOg==",
+	},
+	{
+		"http://foo:bar@bar.com",
+		"Basic Zm9vOmJhcg==",
+	},
+}
+
+func TestProxyAuthKeys(t *testing.T) {
+	for _, tt := range proxyAuthTests {
+		var proxy *url.URL
+		if tt.proxy != "" {
+			u, err := url.Parse(tt.proxy)
+			if err != nil {
+				t.Fatal(err)
+			}
+			proxy = u
+		}
+		cm := connectMethod{proxyURL: proxy}
+		if got := cm.proxyAuth(); got != tt.key {
+			t.Fatalf("{%q} proxyAuth key = %q; want %q", tt.proxy, got, tt.key)
+		}
+	}
+}