docs/server/server_test.go

59 lines
1.1 KiB
Go

package server
import (
"net"
"net/http"
"net/http/httptest"
"strings"
"testing"
_ "github.com/docker/distribution/registry/auth/silly"
"github.com/docker/notary/tuf/signed"
"github.com/stretchr/testify/assert"
"golang.org/x/net/context"
)
func TestRunBadAddr(t *testing.T) {
err := Run(
context.Background(),
"testAddr",
nil,
signed.NewEd25519(),
"",
nil,
)
if err == nil {
t.Fatal("Passed bad addr, Run should have failed")
}
}
func TestRunReservedPort(t *testing.T) {
ctx, _ := context.WithCancel(context.Background())
err := Run(
ctx,
"localhost:80",
nil,
signed.NewEd25519(),
"",
nil,
)
if _, ok := err.(*net.OpError); !ok {
t.Fatalf("Received unexpected err: %s", err.Error())
}
if !strings.Contains(err.Error(), "bind: permission denied") {
t.Fatalf("Received unexpected err: %s", err.Error())
}
}
func TestMetricsEndpoint(t *testing.T) {
handler := RootHandler(nil, context.Background(), signed.NewEd25519())
ts := httptest.NewServer(handler)
defer ts.Close()
res, err := http.Get(ts.URL + "/_notary_server/metrics")
assert.NoError(t, err)
assert.Equal(t, http.StatusOK, res.StatusCode)
}