43 lines
774 B
Go
Executable File
43 lines
774 B
Go
Executable File
package server
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"net/http"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
type fakeTransport struct{}
|
|
|
|
func (ft fakeTransport) RoundTrip(r *http.Request) (*http.Response, error) {
|
|
return &http.Response{
|
|
Body: r.Body,
|
|
}, nil
|
|
}
|
|
|
|
// empty url -> OK //TODO
|
|
func TestRewrite(t *testing.T) {
|
|
transport := &rewrite{
|
|
rewrites: map[string]string{
|
|
"a": "b",
|
|
},
|
|
baseTransport: fakeTransport{},
|
|
}
|
|
|
|
r, err := http.NewRequest("GET", "asdf", strings.NewReader("mary had a little lamb"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
resp, err := transport.RoundTrip(r)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
b, err := ioutil.ReadAll(resp.Body)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if string(b) != "mbry hbd b little lbmb" {
|
|
t.Errorf("failed to replace: got %q, want \"b\"", b)
|
|
}
|
|
}
|