2021-12-29 21:08:09 +00:00
|
|
|
package http_test
|
|
|
|
|
|
|
|
import (
|
2022-01-13 20:49:08 +00:00
|
|
|
"sync"
|
2021-12-29 21:08:09 +00:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/fasthttp/router"
|
|
|
|
http "github.com/valyala/fasthttp"
|
|
|
|
"golang.org/x/text/language"
|
|
|
|
"golang.org/x/text/message"
|
|
|
|
|
2022-01-04 17:31:33 +00:00
|
|
|
delivery "source.toby3d.me/website/indieauth/internal/client/delivery/http"
|
|
|
|
"source.toby3d.me/website/indieauth/internal/domain"
|
2022-01-13 20:49:08 +00:00
|
|
|
sessionrepo "source.toby3d.me/website/indieauth/internal/session/repository/memory"
|
2022-01-04 17:31:33 +00:00
|
|
|
"source.toby3d.me/website/indieauth/internal/testing/httptest"
|
2022-01-13 20:49:08 +00:00
|
|
|
tokenrepo "source.toby3d.me/website/indieauth/internal/token/repository/memory"
|
|
|
|
tokenucase "source.toby3d.me/website/indieauth/internal/token/usecase"
|
2021-12-29 21:08:09 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestRead(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
2022-01-13 20:49:08 +00:00
|
|
|
store := new(sync.Map)
|
|
|
|
config := domain.TestConfig(t)
|
|
|
|
|
2022-02-01 17:27:48 +00:00
|
|
|
router := router.New()
|
2022-01-13 20:49:08 +00:00
|
|
|
delivery.NewRequestHandler(delivery.NewRequestHandlerOptions{
|
|
|
|
Client: domain.TestClient(t),
|
|
|
|
Config: config,
|
|
|
|
Matcher: language.NewMatcher(message.DefaultCatalog.Languages()),
|
|
|
|
Tokens: tokenucase.NewTokenUseCase(tokenrepo.NewMemoryTokenRepository(store),
|
|
|
|
sessionrepo.NewMemorySessionRepository(config, store), config),
|
2022-02-01 17:27:48 +00:00
|
|
|
}).Register(router)
|
2021-12-29 21:08:09 +00:00
|
|
|
|
2022-02-01 17:27:48 +00:00
|
|
|
client, _, cleanup := httptest.New(t, router.Handler)
|
2021-12-29 21:08:09 +00:00
|
|
|
t.Cleanup(cleanup)
|
|
|
|
|
2022-02-01 19:03:08 +00:00
|
|
|
const requestURI string = "https://app.example.com/"
|
|
|
|
|
|
|
|
req := httptest.NewRequest(http.MethodGet, requestURI, nil)
|
2021-12-29 21:08:09 +00:00
|
|
|
defer http.ReleaseRequest(req)
|
|
|
|
|
|
|
|
resp := http.AcquireResponse()
|
|
|
|
defer http.ReleaseResponse(resp)
|
|
|
|
|
2022-02-01 19:03:08 +00:00
|
|
|
if err := client.Do(req, resp); err != nil {
|
|
|
|
t.Error(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if resp.StatusCode() != http.StatusOK {
|
|
|
|
t.Errorf("GET %s = %d, want %d", requestURI, resp.StatusCode(), http.StatusOK)
|
|
|
|
}
|
2021-12-29 21:08:09 +00:00
|
|
|
}
|