From 4e28d403b500a5f132530d5bc03ded4c6ddfe2c3 Mon Sep 17 00:00:00 2001 From: Niko Abeler Date: Sun, 21 Aug 2022 18:15:33 +0200 Subject: [PATCH] fix aliases in single user mode --- cmd/owl-web/aliases_test.go | 39 +++++++++++++++++++++++++++++++++++++ cmd/owl-web/main.go | 1 + 2 files changed, 40 insertions(+) diff --git a/cmd/owl-web/aliases_test.go b/cmd/owl-web/aliases_test.go index 5d94d16..98c5dc4 100644 --- a/cmd/owl-web/aliases_test.go +++ b/cmd/owl-web/aliases_test.go @@ -197,3 +197,42 @@ func TestRedirectIfInvalidMediaUrl(t *testing.T) { } } + +func TestDeepAliasInSingleUserMode(t *testing.T) { + repo := getTestRepo() + user, _ := repo.CreateUser("test-1") + repo.SetSingleUser(user) + post, _ := user.CreateNewPost("post-1") + + content := "---\n" + content += "title: Create tileable textures with GIMP\n" + content += "author: h4kor\n" + content += "type: post\n" + content += "date: Tue, 13 Sep 2016 16:19:09 +0000\n" + content += "aliases:\n" + content += " - /2016/09/13/create-tileable-textures-with-gimp/\n" + content += "categories:\n" + content += " - GameDev\n" + content += "tags:\n" + content += " - gamedev\n" + content += " - textures\n" + content += "---\n" + content += "This is a test" + os.WriteFile(post.ContentFile(), []byte(content), 0644) + + // Create Request and Response + req, err := http.NewRequest("GET", "/2016/09/13/create-tileable-textures-with-gimp/", nil) + if err != nil { + t.Fatal(err) + } + rr := httptest.NewRecorder() + router := main.SingleUserRouter(&repo) + router.ServeHTTP(rr, req) + + // Check the status code is what we expect. + if status := rr.Code; status != http.StatusMovedPermanently { + t.Errorf("handler returned wrong status code: got %v want %v", + status, http.StatusMovedPermanently) + } + +} diff --git a/cmd/owl-web/main.go b/cmd/owl-web/main.go index ffdd815..8ba425d 100644 --- a/cmd/owl-web/main.go +++ b/cmd/owl-web/main.go @@ -28,6 +28,7 @@ func SingleUserRouter(repo *owl.Repository) http.Handler { router.GET("/index.xml", userRSSHandler(repo)) router.GET("/posts/:post/", postHandler(repo)) router.GET("/posts/:post/media/*filepath", postMediaHandler(repo)) + router.NotFound = http.HandlerFunc(notFoundHandler(repo)) return router }