From bbad6900ce21f6f9dc323185155e3f938ec60d27 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Thu, 10 Mar 2011 10:19:11 -0800 Subject: [PATCH] http: run tests even with DISABLE_NET_TESTS=1 All tests are now localhost only. R=rsc CC=golang-dev https://golang.org/cl/4271042 --- src/pkg/Makefile | 2 +- src/pkg/http/request_test.go | 37 ++++++++++++++++++++++++++++-------- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/pkg/Makefile b/src/pkg/Makefile index 062f7e5874..31d7e1a682 100644 --- a/src/pkg/Makefile +++ b/src/pkg/Makefile @@ -200,7 +200,7 @@ NOBENCH=\ # Disable tests that depend on an external network. ifeq ($(DISABLE_NET_TESTS),1) -NOTEST+=http net syslog +NOTEST+=net syslog endif # Disable tests that windows cannot run yet. diff --git a/src/pkg/http/request_test.go b/src/pkg/http/request_test.go index ae1c4e9824..19083adf62 100644 --- a/src/pkg/http/request_test.go +++ b/src/pkg/http/request_test.go @@ -2,10 +2,15 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -package http +package http_test import ( "bytes" + "fmt" + . "http" + "http/httptest" + "io" + "os" "reflect" "regexp" "strings" @@ -141,17 +146,33 @@ func TestMultipartReader(t *testing.T) { } func TestRedirect(t *testing.T) { - const ( - start = "http://google.com/" - endRe = "^http://www\\.google\\.[a-z.]+/$" - ) - var end = regexp.MustCompile(endRe) - r, url, err := Get(start) + ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) { + switch r.URL.Path { + case "/": + w.Header().Set("Location", "/foo/") + w.WriteHeader(StatusSeeOther) + case "/foo/": + fmt.Fprintf(w, "foo") + default: + w.WriteHeader(StatusBadRequest) + } + })) + defer ts.Close() + + var end = regexp.MustCompile("/foo/$") + r, url, err := Get(ts.URL) if err != nil { t.Fatal(err) } r.Body.Close() if r.StatusCode != 200 || !end.MatchString(url) { - t.Fatalf("Get(%s) got status %d at %q, want 200 matching %q", start, r.StatusCode, url, endRe) + t.Fatalf("Get got status %d at %q, want 200 matching /foo/$", r.StatusCode, url) } } + +// TODO: stop copy/pasting this around. move to io/ioutil? +type nopCloser struct { + io.Reader +} + +func (nopCloser) Close() os.Error { return nil } -- 2.50.0