RedirectController: Don't replace title, but inject into the meta
authorlain <lain@soykaf.club>
Wed, 11 Nov 2020 16:10:59 +0000 (17:10 +0100)
committerlain <lain@soykaf.club>
Wed, 11 Nov 2020 16:10:59 +0000 (17:10 +0100)
lib/pleroma/web/fallback/redirect_controller.ex
test/pleroma/web/fallback_test.exs

index 712991c1888d3e4deca00ac90502e47ffeb43c7e..1ac1319f815d8441e6181b9c965a1e1a8fc16f87 100644 (file)
@@ -41,8 +41,7 @@ defmodule Pleroma.Web.Fallback.RedirectController do
 
     response =
       index_content
-      |> String.replace(~r/<title>.+?<\/title>/, title)
-      |> String.replace("<!--server-generated-meta-->", tags <> preloads)
+      |> String.replace("<!--server-generated-meta-->", tags <> preloads <> title)
 
     conn
     |> put_resp_content_type("text/html")
@@ -60,8 +59,7 @@ defmodule Pleroma.Web.Fallback.RedirectController do
 
     response =
       index_content
-      |> String.replace(~r/<title>.+?<\/title>/, title)
-      |> String.replace("<!--server-generated-meta-->", preloads)
+      |> String.replace("<!--server-generated-meta-->", preloads <> title)
 
     conn
     |> put_resp_content_type("text/html")
index a658658603fcb0efce803a0bf52b92f5a5285d31..46c7bad1cf55037d5ceb777e138892944bfba1cd 100644 (file)
@@ -20,15 +20,26 @@ defmodule Pleroma.Web.FallbackTest do
     end
   end
 
+  test "GET /*path adds a title", %{conn: conn} do
+    clear_config([:instance, :name], "a cool title")
+
+    assert conn
+           |> get("/")
+           |> html_response(200) =~ "<title>a cool title</title>"
+  end
+
   describe "preloaded data and metadata attached to" do
     test "GET /:maybe_nickname_or_id", %{conn: conn} do
+      clear_config([:instance, :name], "a cool title")
+
       user = insert(:user)
       user_missing = get(conn, "/foo")
       user_present = get(conn, "/#{user.nickname}")
 
-      assert(html_response(user_missing, 200) =~ "<!--server-generated-meta-->")
+      assert html_response(user_missing, 200) =~ "<!--server-generated-meta-->"
       refute html_response(user_present, 200) =~ "<!--server-generated-meta-->"
       assert html_response(user_present, 200) =~ "initial-results"
+      assert html_response(user_present, 200) =~ "<title>a cool title</title>"
     end
 
     test "GET /*path", %{conn: conn} do
@@ -44,10 +55,13 @@ defmodule Pleroma.Web.FallbackTest do
 
   describe "preloaded data is attached to" do
     test "GET /main/public", %{conn: conn} do
+      clear_config([:instance, :name], "a cool title")
+
       public_page = get(conn, "/main/public")
 
       refute html_response(public_page, 200) =~ "<!--server-generated-meta-->"
       assert html_response(public_page, 200) =~ "initial-results"
+      assert html_response(public_page, 200) =~ "<title>a cool title</title>"
     end
 
     test "GET /main/all", %{conn: conn} do