6c8bf0d3b3
test / test (push) Has been cancelled
Name the copyright holder, ship NOTICE with the image, serve the licence from the panel footer on every page, and record the vendored htmx licence. Co-authored-by: Cursor <cursoragent@cursor.com>
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package web
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/mixeme/selfpost/internal/legal"
|
|
)
|
|
|
|
func TestLicenseHandlerServesAGPL(t *testing.T) {
|
|
s := &Server{}
|
|
rec := httptest.NewRecorder()
|
|
req := httptest.NewRequest(http.MethodGet, "/license", nil)
|
|
s.handleLicense(rec, req)
|
|
|
|
if rec.Code != http.StatusOK {
|
|
t.Fatalf("status = %d, want 200", rec.Code)
|
|
}
|
|
ct := rec.Header().Get("Content-Type")
|
|
if !strings.HasPrefix(ct, "text/plain") {
|
|
t.Errorf("Content-Type = %q, want text/plain", ct)
|
|
}
|
|
body := rec.Body.String()
|
|
if !strings.Contains(body, "GNU AFFERO GENERAL PUBLIC LICENSE") {
|
|
t.Error("response is missing the AGPL title")
|
|
}
|
|
if body != string(legal.License) {
|
|
t.Error("response body does not match legal.License")
|
|
}
|
|
}
|
|
|
|
func TestLicenseHandlerRejectsNonGET(t *testing.T) {
|
|
s := &Server{}
|
|
rec := httptest.NewRecorder()
|
|
req := httptest.NewRequest(http.MethodPost, "/license", nil)
|
|
s.handleLicense(rec, req)
|
|
if rec.Code != http.StatusMethodNotAllowed {
|
|
t.Fatalf("status = %d, want 405", rec.Code)
|
|
}
|
|
}
|