summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pkg/http/client.go1
-rw-r--r--src/pkg/http/request_test.go15
2 files changed, 16 insertions, 0 deletions
diff --git a/src/pkg/http/client.go b/src/pkg/http/client.go
index 6ac602f27..698c5c7f4 100644
--- a/src/pkg/http/client.go
+++ b/src/pkg/http/client.go
@@ -198,6 +198,7 @@ func Get(url string) (r *Response, finalURL string, err os.Error) {
err = os.ErrorString(fmt.Sprintf("%d response missing Location header", r.StatusCode));
break;
}
+ continue;
}
finalURL = url;
return;
diff --git a/src/pkg/http/request_test.go b/src/pkg/http/request_test.go
index 94da01521..7bddda3db 100644
--- a/src/pkg/http/request_test.go
+++ b/src/pkg/http/request_test.go
@@ -100,3 +100,18 @@ func TestPostContentTypeParsing(t *testing.T) {
}
}
}
+
+func TestRedirect(t *testing.T) {
+ const (
+ start = "http://codesearch.google.com/";
+ end = "http://www.google.com/codesearch";
+ )
+ r, url, err := Get(start);
+ if err != nil {
+ t.Fatal(err);
+ }
+ r.Body.Close();
+ if r.StatusCode != 200 || url != end {
+ t.Fatalf("Get(%s) got status %d at %s, want 200 at %s", start, r.StatusCode, url, end)
+ }
+}