github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgNet/kmgHttp/goHttp_test.go (about) 1 package kmgHttp 2 3 import ( 4 "bytes" 5 "net/http" 6 "testing" 7 8 "net/http/httptest" 9 10 . "github.com/bronze1man/kmg/kmgTest" 11 ) 12 13 func TestMustRequestToStringCanRead(ot *testing.T) { 14 body := bytes.NewReader([]byte("123")) 15 req, err := http.NewRequest("POST", "http://foo.com", body) 16 Equal(err, nil) 17 s1 := MustRequestToStringCanRead(req) 18 Equal(s1, "POST / HTTP/1.1\r\n"+ 19 "Host: foo.com\r\n"+ 20 "User-Agent: Go 1.1 package http\r\n"+ 21 "Content-Length: 3\r\n"+ 22 "\r\n"+ 23 "123") 24 s2 := MustRequestToStringCanRead(req) 25 Equal(s1, s2) 26 req2 := MustRequestFromString(s1) 27 Equal(req2.Host, req.Host) 28 } 29 30 func TestAddFileToHttpPathToServeMux(t *testing.T) { 31 { 32 mux := http.NewServeMux() 33 MustAddFileToHttpPathToServeMux(mux, "/test/", "test") 34 MustAddFileToHttpPathToServeMux(mux, "/test3", "test") 35 MustAddFileToHttpPathToServeMux(mux, "test4", "test") 36 MustAddFileToHttpPathToServeMux(mux, "/test2/2.html", "test/1.html") 37 mux.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { 38 panic("should not run to here " + req.URL.String()) 39 }) 40 ts := httptest.NewServer(mux) 41 defer ts.Close() 42 43 b := MustUrlGetContent(ts.URL + "/test/1.html") 44 Equal(b, []byte("1.html")) 45 46 b = MustUrlGetContent(ts.URL + "/test2/2.html") 47 Equal(b, []byte("1.html")) 48 49 b = MustUrlGetContent(ts.URL + "/test3/1.html") 50 Equal(b, []byte("1.html")) 51 52 b = MustUrlGetContent(ts.URL + "/test4/1.html") 53 Equal(b, []byte("1.html")) 54 55 resp, err := http.Get(ts.URL + "/test/2.html") 56 Equal(err, nil) 57 Equal(resp.StatusCode, 404) 58 } 59 60 { 61 mux := http.NewServeMux() 62 MustAddFileToHttpPathToServeMux(mux, "/test/1.html", "test/1.html") 63 ts := httptest.NewServer(mux) 64 defer ts.Close() 65 66 b := MustUrlGetContent(ts.URL + "/test/1.html") 67 Equal(b, []byte("1.html")) 68 } 69 }