forked from hswaw/hscloud
Serge Bazanski
ec7e0a9dc2
This is in preparation for spinning up a staging/QA matrix instance, where the MXID domain is under control by hscloud machinery (and not a top-level organizational domain). Change-Id: I10505615ebb407b3b2eac0c1b87ad5625e2009c0
44 lines
1,005 B
Go
44 lines
1,005 B
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/go-test/deep"
|
|
)
|
|
|
|
func TestServing(t *testing.T) {
|
|
s := server{
|
|
domain: "example.com",
|
|
}
|
|
mux := http.NewServeMux()
|
|
s.register(mux)
|
|
|
|
for i, te := range []struct {
|
|
url string
|
|
want wellKnown
|
|
}{
|
|
{"/.well-known/matrix/client", wellKnown{
|
|
Homeserver: wellKnownHomeserver{"https://example.com"},
|
|
}},
|
|
{"/.well-known/matrix/server", wellKnown{
|
|
Server: "example.com:443",
|
|
}},
|
|
} {
|
|
req, _ := http.NewRequest("GET", te.url, nil)
|
|
rr := httptest.NewRecorder()
|
|
mux.ServeHTTP(rr, req)
|
|
if want, got := http.StatusOK, rr.Code; want != got {
|
|
t.Fatalf("%d: handler returned wrong status code: want %v got %v", i, want, got)
|
|
}
|
|
got := wellKnown{}
|
|
if err := json.Unmarshal(rr.Body.Bytes(), &got); err != nil {
|
|
t.Fatalf("%d: handler returned unparseable JSON: %v", i, err)
|
|
}
|
|
if diff := deep.Equal(te.want, got); diff != nil {
|
|
t.Errorf("%d: response diff: %s", i, diff)
|
|
}
|
|
}
|
|
}
|