2011-03-11 10:54:31 -07:00
|
|
|
// Copyright 2011 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.
|
|
|
|
|
|
|
|
// Tests for transport.go
|
|
|
|
|
|
|
|
package http_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
. "http"
|
|
|
|
"http/httptest"
|
|
|
|
"io/ioutil"
|
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestTransportNilURL(t *testing.T) {
|
|
|
|
ts := httptest.NewServer(HandlerFunc(func(w ResponseWriter, r *Request) {
|
|
|
|
fmt.Fprintf(w, "Hi")
|
|
|
|
}))
|
|
|
|
defer ts.Close()
|
|
|
|
|
|
|
|
req := new(Request)
|
|
|
|
req.URL = nil // what we're actually testing
|
|
|
|
req.Method = "GET"
|
|
|
|
req.RawURL = ts.URL
|
|
|
|
req.Proto = "HTTP/1.1"
|
|
|
|
req.ProtoMajor = 1
|
|
|
|
req.ProtoMinor = 1
|
|
|
|
|
|
|
|
// TODO(bradfitz): test &transport{} and not DefaultTransport
|
|
|
|
// once Transport is exported.
|
2011-03-11 12:32:33 -07:00
|
|
|
res, err := DefaultTransport.RoundTrip(req)
|
2011-03-11 10:54:31 -07:00
|
|
|
if err != nil {
|
2011-03-11 12:32:33 -07:00
|
|
|
t.Fatalf("unexpected RoundTrip error: %v", err)
|
2011-03-11 10:54:31 -07:00
|
|
|
}
|
|
|
|
body, err := ioutil.ReadAll(res.Body)
|
|
|
|
if g, e := string(body), "Hi"; g != e {
|
|
|
|
t.Fatalf("Expected response body of %q; got %q", e, g)
|
|
|
|
}
|
|
|
|
}
|