]> Cypherpunks repositories - gostls13.git/commitdiff
http: don't hit external network in client_test.go
authorBrad Fitzpatrick <bradfitz@golang.org>
Thu, 10 Mar 2011 16:46:57 +0000 (08:46 -0800)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 10 Mar 2011 16:46:57 +0000 (08:46 -0800)
More reliable.

R=rsc
CC=golang-dev
https://golang.org/cl/4249068

src/pkg/http/client_test.go

index c89ecbce2d0d1a1a8fe422e775857adaebfa3bc9..3d71707881a3cb649cecfba6429d7936aedf3f00 100644 (file)
@@ -4,20 +4,28 @@
 
 // Tests for client.go
 
-package http
+package http_test
 
 import (
+       "fmt"
+       . "http"
+       "http/httptest"
        "io/ioutil"
        "os"
        "strings"
        "testing"
 )
 
+var robotsTxtHandler = HandlerFunc(func(w ResponseWriter, r *Request) {
+       w.Header().Set("Last-Modified", "sometime")
+       fmt.Fprintf(w, "User-agent: go\nDisallow: /something/")
+})
+
 func TestClient(t *testing.T) {
-       // TODO: add a proper test suite.  Current test merely verifies that
-       // we can retrieve the Google robots.txt file.
+       ts := httptest.NewServer(robotsTxtHandler)
+       defer ts.Close()
 
-       r, _, err := Get("http://www.google.com/robots.txt")
+       r, _, err := Get(ts.URL)
        var b []byte
        if err == nil {
                b, err = ioutil.ReadAll(r.Body)
@@ -31,7 +39,10 @@ func TestClient(t *testing.T) {
 }
 
 func TestClientHead(t *testing.T) {
-       r, err := Head("http://www.google.com/robots.txt")
+       ts := httptest.NewServer(robotsTxtHandler)
+       defer ts.Close()
+
+       r, err := Head(ts.URL)
        if err != nil {
                t.Fatal(err)
        }