#256: rename page URLs to match nav labels (/public, /saved)
This commit is contained in:
@@ -29,7 +29,7 @@ func newTestServer138(t *testing.T) *httptest.ResponseRecorder {
|
||||
globalSettingsFn = ss.get
|
||||
t.Cleanup(func() { globalSettingsFn = nil })
|
||||
a := &apiServer{store: st, cfg: cfg, ui: ui, settings: ss, adminKey: "test-admin-key"}
|
||||
req := httptest.NewRequest("GET", "/history", nil)
|
||||
req := httptest.NewRequest("GET", "/public", nil)
|
||||
rec := httptest.NewRecorder()
|
||||
a.routes().ServeHTTP(rec, req)
|
||||
return rec
|
||||
|
||||
@@ -58,7 +58,7 @@ func TestMineCreateListDelete(t *testing.T) {
|
||||
a := &apiServer{store: st, cfg: cfg, ui: ui, settings: ss, adminKey: "test-admin-key"}
|
||||
h := a.routes()
|
||||
|
||||
alice := viewerCookieFor(t, h, "/history")
|
||||
alice := viewerCookieFor(t, h, "/public")
|
||||
if alice == "" {
|
||||
t.Fatal("no viewer cookie issued")
|
||||
}
|
||||
@@ -89,7 +89,7 @@ func TestMineCreateListDelete(t *testing.T) {
|
||||
}
|
||||
|
||||
// a different browser's cookie does NOT see it
|
||||
bob := viewerCookieFor(t, h, "/history")
|
||||
bob := viewerCookieFor(t, h, "/public")
|
||||
rec = doReq(t, h, "GET", "/api/mine", bob, "")
|
||||
json.Unmarshal(rec.Body.Bytes(), &list)
|
||||
if list.Total != 0 {
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package api
|
||||
|
||||
// #256: renamed page routes; old URLs redirect.
|
||||
import (
|
||||
"palette/internal/store"
|
||||
"palette/internal/web"
|
||||
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRenamedPageRoutes(t *testing.T) {
|
||||
globalLimiter = newLimiter() // fresh rate-limit buckets
|
||||
st, err := store.OpenStore(":memory:")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
ui, err := web.New()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
cfg := Config{MaxTextBytes: 5 * 1024 * 1024}
|
||||
ss := NewTestSettingsStore(t, cfg)
|
||||
globalSettingsFn = ss.get
|
||||
t.Cleanup(func() { globalSettingsFn = nil })
|
||||
a := &apiServer{store: st, cfg: cfg, ui: ui, settings: ss, adminKey: "test-admin-key"}
|
||||
h := a.routes()
|
||||
|
||||
// new routes render pages
|
||||
for _, path := range []string{"/public", "/saved"} {
|
||||
req := httptest.NewRequest("GET", path, nil)
|
||||
rec := httptest.NewRecorder()
|
||||
h.ServeHTTP(rec, req)
|
||||
if rec.Code != http.StatusOK {
|
||||
t.Fatalf("GET %s: %d, want 200", path, rec.Code)
|
||||
}
|
||||
}
|
||||
|
||||
// old routes redirect
|
||||
for _, tc := range [][2]string{{"/history", "/public"}, {"/mine", "/saved"}, {"/", "/public"}} {
|
||||
req := httptest.NewRequest("GET", tc[0], nil)
|
||||
rec := httptest.NewRecorder()
|
||||
h.ServeHTTP(rec, req)
|
||||
if rec.Code != http.StatusMovedPermanently && rec.Code != http.StatusFound {
|
||||
t.Fatalf("GET %s: %d, want redirect", tc[0], rec.Code)
|
||||
}
|
||||
if loc := rec.Header().Get("Location"); loc != tc[1] {
|
||||
t.Fatalf("GET %s redirects to %s, want %s", tc[0], loc, tc[1])
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -118,11 +118,14 @@ func (a *apiServer) routes() http.Handler {
|
||||
r.Get("/raw/{id}", a.handleRaw)
|
||||
|
||||
// web pages
|
||||
r.Get("/", http.RedirectHandler("/history", http.StatusFound).ServeHTTP)
|
||||
r.Get("/", http.RedirectHandler("/public", http.StatusFound).ServeHTTP)
|
||||
r.Get("/new", a.ui.Handlers().HandleNewPage)
|
||||
r.Get("/history", a.ui.Handlers().HandleHistoryPage)
|
||||
r.Get("/public", a.ui.Handlers().HandleHistoryPage)
|
||||
r.Get("/saved", a.ui.Handlers().HandleMinePage)
|
||||
r.Get("/settings", a.ui.Handlers().HandleSettingsPage)
|
||||
r.Get("/mine", a.ui.Handlers().HandleMinePage)
|
||||
// #256: old URLs redirect to the renamed pages
|
||||
r.Get("/history", http.RedirectHandler("/public", http.StatusMovedPermanently).ServeHTTP)
|
||||
r.Get("/mine", http.RedirectHandler("/saved", http.StatusMovedPermanently).ServeHTTP)
|
||||
r.Handle("/static/*", a.ui.StaticHandler())
|
||||
r.Get("/unlock/{id}", a.handlePasteView)
|
||||
r.Post("/unlock/{id}", a.handlePasteView)
|
||||
|
||||
Reference in New Issue
Block a user