]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: unify the confusingly-named serve_test and server_test
authorBrad Fitzpatrick <bradfitz@golang.org>
Thu, 15 Aug 2013 23:47:31 +0000 (16:47 -0700)
committerBrad Fitzpatrick <bradfitz@golang.org>
Thu, 15 Aug 2013 23:47:31 +0000 (16:47 -0700)
One was tiny. One was gigantic. Now one is gone and one is giganticer.

No code changes.

R=golang-dev, adg
CC=golang-dev
https://golang.org/cl/13025043

src/pkg/net/http/serve_test.go
src/pkg/net/http/server_test.go [deleted file]

index 70b7e0f103e36d3d274e49190d4847ba68789169..8c793df591ad8a2d35209003a18236574c21493f 100644 (file)
@@ -247,6 +247,81 @@ func TestHostHandlers(t *testing.T) {
        }
 }
 
+var serveMuxRegister = []struct {
+       pattern string
+       h       Handler
+}{
+       {"/dir/", serve(200)},
+       {"/search", serve(201)},
+       {"codesearch.google.com/search", serve(202)},
+       {"codesearch.google.com/", serve(203)},
+}
+
+// serve returns a handler that sends a response with the given code.
+func serve(code int) HandlerFunc {
+       return func(w ResponseWriter, r *Request) {
+               w.WriteHeader(code)
+       }
+}
+
+var serveMuxTests = []struct {
+       method  string
+       host    string
+       path    string
+       code    int
+       pattern string
+}{
+       {"GET", "google.com", "/", 404, ""},
+       {"GET", "google.com", "/dir", 301, "/dir/"},
+       {"GET", "google.com", "/dir/", 200, "/dir/"},
+       {"GET", "google.com", "/dir/file", 200, "/dir/"},
+       {"GET", "google.com", "/search", 201, "/search"},
+       {"GET", "google.com", "/search/", 404, ""},
+       {"GET", "google.com", "/search/foo", 404, ""},
+       {"GET", "codesearch.google.com", "/search", 202, "codesearch.google.com/search"},
+       {"GET", "codesearch.google.com", "/search/", 203, "codesearch.google.com/"},
+       {"GET", "codesearch.google.com", "/search/foo", 203, "codesearch.google.com/"},
+       {"GET", "codesearch.google.com", "/", 203, "codesearch.google.com/"},
+       {"GET", "images.google.com", "/search", 201, "/search"},
+       {"GET", "images.google.com", "/search/", 404, ""},
+       {"GET", "images.google.com", "/search/foo", 404, ""},
+       {"GET", "google.com", "/../search", 301, "/search"},
+       {"GET", "google.com", "/dir/..", 301, ""},
+       {"GET", "google.com", "/dir/..", 301, ""},
+       {"GET", "google.com", "/dir/./file", 301, "/dir/"},
+
+       // The /foo -> /foo/ redirect applies to CONNECT requests
+       // but the path canonicalization does not.
+       {"CONNECT", "google.com", "/dir", 301, "/dir/"},
+       {"CONNECT", "google.com", "/../search", 404, ""},
+       {"CONNECT", "google.com", "/dir/..", 200, "/dir/"},
+       {"CONNECT", "google.com", "/dir/..", 200, "/dir/"},
+       {"CONNECT", "google.com", "/dir/./file", 200, "/dir/"},
+}
+
+func TestServeMuxHandler(t *testing.T) {
+       mux := NewServeMux()
+       for _, e := range serveMuxRegister {
+               mux.Handle(e.pattern, e.h)
+       }
+
+       for _, tt := range serveMuxTests {
+               r := &Request{
+                       Method: tt.method,
+                       Host:   tt.host,
+                       URL: &url.URL{
+                               Path: tt.path,
+                       },
+               }
+               h, pattern := mux.Handler(r)
+               rr := httptest.NewRecorder()
+               h.ServeHTTP(rr, r)
+               if pattern != tt.pattern || rr.Code != tt.code {
+                       t.Errorf("%s %s %s = %d, %q, want %d, %q", tt.method, tt.host, tt.path, rr.Code, pattern, tt.code, tt.pattern)
+               }
+       }
+}
+
 // Tests for http://code.google.com/p/go/issues/detail?id=900
 func TestMuxRedirectLeadingSlashes(t *testing.T) {
        paths := []string{"//foo.txt", "///foo.txt", "/../../foo.txt"}
@@ -981,6 +1056,23 @@ func TestRedirectMunging(t *testing.T) {
        }
 }
 
+func TestRedirectBadPath(t *testing.T) {
+       // This used to crash. It's not valid input (bad path), but it
+       // shouldn't crash.
+       rr := httptest.NewRecorder()
+       req := &Request{
+               Method: "GET",
+               URL: &url.URL{
+                       Scheme: "http",
+                       Path:   "not-empty-but-no-leading-slash", // bogus
+               },
+       }
+       Redirect(rr, req, "", 304)
+       if rr.Code != 304 {
+               t.Errorf("Code = %d; want 304", rr.Code)
+       }
+}
+
 // TestZeroLengthPostAndResponse exercises an optimization done by the Transport:
 // when there is no body (either because the method doesn't permit a body, or an
 // explicit Content-Length of zero is present), then the transport can re-use the
diff --git a/src/pkg/net/http/server_test.go b/src/pkg/net/http/server_test.go
deleted file mode 100644 (file)
index e8b69f7..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2012 The Go Authors.  All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package http_test
-
-import (
-       . "net/http"
-       "net/http/httptest"
-       "net/url"
-       "testing"
-)
-
-var serveMuxRegister = []struct {
-       pattern string
-       h       Handler
-}{
-       {"/dir/", serve(200)},
-       {"/search", serve(201)},
-       {"codesearch.google.com/search", serve(202)},
-       {"codesearch.google.com/", serve(203)},
-}
-
-// serve returns a handler that sends a response with the given code.
-func serve(code int) HandlerFunc {
-       return func(w ResponseWriter, r *Request) {
-               w.WriteHeader(code)
-       }
-}
-
-var serveMuxTests = []struct {
-       method  string
-       host    string
-       path    string
-       code    int
-       pattern string
-}{
-       {"GET", "google.com", "/", 404, ""},
-       {"GET", "google.com", "/dir", 301, "/dir/"},
-       {"GET", "google.com", "/dir/", 200, "/dir/"},
-       {"GET", "google.com", "/dir/file", 200, "/dir/"},
-       {"GET", "google.com", "/search", 201, "/search"},
-       {"GET", "google.com", "/search/", 404, ""},
-       {"GET", "google.com", "/search/foo", 404, ""},
-       {"GET", "codesearch.google.com", "/search", 202, "codesearch.google.com/search"},
-       {"GET", "codesearch.google.com", "/search/", 203, "codesearch.google.com/"},
-       {"GET", "codesearch.google.com", "/search/foo", 203, "codesearch.google.com/"},
-       {"GET", "codesearch.google.com", "/", 203, "codesearch.google.com/"},
-       {"GET", "images.google.com", "/search", 201, "/search"},
-       {"GET", "images.google.com", "/search/", 404, ""},
-       {"GET", "images.google.com", "/search/foo", 404, ""},
-       {"GET", "google.com", "/../search", 301, "/search"},
-       {"GET", "google.com", "/dir/..", 301, ""},
-       {"GET", "google.com", "/dir/..", 301, ""},
-       {"GET", "google.com", "/dir/./file", 301, "/dir/"},
-
-       // The /foo -> /foo/ redirect applies to CONNECT requests
-       // but the path canonicalization does not.
-       {"CONNECT", "google.com", "/dir", 301, "/dir/"},
-       {"CONNECT", "google.com", "/../search", 404, ""},
-       {"CONNECT", "google.com", "/dir/..", 200, "/dir/"},
-       {"CONNECT", "google.com", "/dir/..", 200, "/dir/"},
-       {"CONNECT", "google.com", "/dir/./file", 200, "/dir/"},
-}
-
-func TestServeMuxHandler(t *testing.T) {
-       mux := NewServeMux()
-       for _, e := range serveMuxRegister {
-               mux.Handle(e.pattern, e.h)
-       }
-
-       for _, tt := range serveMuxTests {
-               r := &Request{
-                       Method: tt.method,
-                       Host:   tt.host,
-                       URL: &url.URL{
-                               Path: tt.path,
-                       },
-               }
-               h, pattern := mux.Handler(r)
-               rr := httptest.NewRecorder()
-               h.ServeHTTP(rr, r)
-               if pattern != tt.pattern || rr.Code != tt.code {
-                       t.Errorf("%s %s %s = %d, %q, want %d, %q", tt.method, tt.host, tt.path, rr.Code, pattern, tt.code, tt.pattern)
-               }
-       }
-}
-
-func TestServerRedirect(t *testing.T) {
-       // This used to crash. It's not valid input (bad path), but it
-       // shouldn't crash.
-       rr := httptest.NewRecorder()
-       req := &Request{
-               Method: "GET",
-               URL: &url.URL{
-                       Scheme: "http",
-                       Path:   "not-empty-but-no-leading-slash", // bogus
-               },
-       }
-       Redirect(rr, req, "", 304)
-       if rr.Code != 304 {
-               t.Errorf("Code = %d; want 304", rr.Code)
-       }
-}