Merge branch 'develop' into feature/bulk-confirmation
[akkoma] / test / web / instances / instance_test.exs
index dc6ace843f43a69d475bc991601f4649024b6112..4f080510018d22ad827af469af29f791bcc51d23 100644 (file)
@@ -99,35 +99,54 @@ defmodule Pleroma.Instances.InstanceTest do
     end
   end
 
-  test "Scrapes favicon URLs" do
-    Tesla.Mock.mock(fn %{url: "https://favicon.example.org/"} ->
-      %Tesla.Env{
-        status: 200,
-        body: ~s[<html><head><link rel="icon" href="/favicon.png"></head></html>]
-      }
-    end)
-
-    assert "https://favicon.example.org/favicon.png" ==
-             Instance.get_or_update_favicon(URI.parse("https://favicon.example.org/"))
-  end
+  describe "get_or_update_favicon/1" do
+    test "Scrapes favicon URLs" do
+      Tesla.Mock.mock(fn %{url: "https://favicon.example.org/"} ->
+        %Tesla.Env{
+          status: 200,
+          body: ~s[<html><head><link rel="icon" href="/favicon.png"></head></html>]
+        }
+      end)
+
+      assert "https://favicon.example.org/favicon.png" ==
+               Instance.get_or_update_favicon(URI.parse("https://favicon.example.org/"))
+    end
 
-  test "Returns nil on too long favicon URLs" do
-    long_favicon_url =
-      "https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png"
-
-    Tesla.Mock.mock(fn %{url: "https://long-favicon.example.org/"} ->
-      %Tesla.Env{
-        status: 200,
-        body: ~s[<html><head><link rel="icon" href="] <> long_favicon_url <> ~s["></head></html>]
-      }
-    end)
-
-    assert capture_log(fn ->
-             assert nil ==
-                      Instance.get_or_update_favicon(
-                        URI.parse("https://long-favicon.example.org/")
-                      )
-           end) =~
-             "Instance.get_or_update_favicon(\"long-favicon.example.org\") error: %Postgrex.Error{"
+    test "Returns nil on too long favicon URLs" do
+      long_favicon_url =
+        "https://Lorem.ipsum.dolor.sit.amet/consecteturadipiscingelit/Praesentpharetrapurusutaliquamtempus/Mauriseulaoreetarcu/atfacilisisorci/Nullamporttitor/nequesedfeugiatmollis/dolormagnaefficiturlorem/nonpretiumsapienorcieurisus/Nullamveleratsem/Maecenassedaccumsanexnam/favicon.png"
+
+      Tesla.Mock.mock(fn %{url: "https://long-favicon.example.org/"} ->
+        %Tesla.Env{
+          status: 200,
+          body:
+            ~s[<html><head><link rel="icon" href="] <> long_favicon_url <> ~s["></head></html>]
+        }
+      end)
+
+      assert capture_log(fn ->
+               assert nil ==
+                        Instance.get_or_update_favicon(
+                          URI.parse("https://long-favicon.example.org/")
+                        )
+             end) =~
+               "Instance.get_or_update_favicon(\"long-favicon.example.org\") error: %Postgrex.Error{"
+    end
+
+    test "Handles not getting a favicon URL properly" do
+      Tesla.Mock.mock(fn %{url: "https://no-favicon.example.org/"} ->
+        %Tesla.Env{
+          status: 200,
+          body: ~s[<html><head><h1>I wil look down and whisper "GNO.."</h1></head></html>]
+        }
+      end)
+
+      refute capture_log(fn ->
+               assert nil ==
+                        Instance.get_or_update_favicon(
+                          URI.parse("https://no-favicon.example.org/")
+                        )
+             end) =~ "Instance.scrape_favicon(\"https://no-favicon.example.org/\") error: "
+    end
   end
 end