Pleroma.Web.RelMeTest: Add test against Pleroma.Web.RelMe
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Sat, 2 Mar 2019 05:13:04 +0000 (06:13 +0100)
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Sat, 2 Mar 2019 05:31:33 +0000 (06:31 +0100)
test/fixtures/rel_me_anchor.html [new file with mode: 0644]
test/fixtures/rel_me_link.html [new file with mode: 0644]
test/fixtures/rel_me_null.html [new file with mode: 0644]
test/web/rel_me_test.exs [new file with mode: 0644]

diff --git a/test/fixtures/rel_me_anchor.html b/test/fixtures/rel_me_anchor.html
new file mode 100644 (file)
index 0000000..5abcce1
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+       <head>
+               <meta charset="utf-8"/>
+               <title>Blog</title>
+       </head>
+       <body>
+       <article>
+               <h1>Lorem ipsum</h1>
+               <p>Lorem ipsum dolor sit ameph, …</p>
+               <a rel="me" href="https://social.example.org/users/lain">lain’s account</a>
+       </article>
+       </body>
+</html>
diff --git a/test/fixtures/rel_me_link.html b/test/fixtures/rel_me_link.html
new file mode 100644 (file)
index 0000000..b9ff18f
--- /dev/null
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+       <head>
+               <meta charset="utf-8"/>
+               <title>Blog</title>
+               <link rel="me" href="https://social.example.org/users/lain"/>
+       </head>
+       <body>
+       <article>
+               <h1>Lorem ipsum</h1>
+               <p>Lorem ipsum dolor sit ameph, …</p>
+       </article>
+       </body>
+</html>
diff --git a/test/fixtures/rel_me_null.html b/test/fixtures/rel_me_null.html
new file mode 100644 (file)
index 0000000..57d424b
--- /dev/null
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+       <head>
+               <meta charset="utf-8"/>
+               <title>Blog</title>
+       </head>
+       <body>
+       <article>
+               <h1>Lorem ipsum</h1>
+               <p>Lorem ipsum dolor sit ameph, …</p>
+       </article>
+       </body>
+</html>
diff --git a/test/web/rel_me_test.exs b/test/web/rel_me_test.exs
new file mode 100644 (file)
index 0000000..94cc017
--- /dev/null
@@ -0,0 +1,54 @@
+defmodule Pleroma.Web.RelMeTest do
+  use ExUnit.Case, async: true
+
+  setup do
+    Tesla.Mock.mock(fn
+      %{
+        method: :get,
+        url: "http://example.com/rel_me/anchor"
+      } ->
+        %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_anchor.html")}
+
+      %{
+        method: :get,
+        url: "http://example.com/rel_me/link"
+      } ->
+        %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_link.html")}
+
+      %{
+        method: :get,
+        url: "http://example.com/rel_me/null"
+      } ->
+        %Tesla.Env{status: 200, body: File.read!("test/fixtures/rel_me_null.html")}
+    end)
+
+    :ok
+  end
+
+  test "parse/1" do
+    hrefs = ["https://social.example.org/users/lain"]
+
+    assert Pleroma.Web.RelMe.parse("http://example.com/rel_me/null") == {:ok, []}
+    assert {:error, _} = Pleroma.Web.RelMe.parse("http://example.com/rel_me/error")
+
+    assert Pleroma.Web.RelMe.parse("http://example.com/rel_me/link") == {:ok, hrefs}
+    assert Pleroma.Web.RelMe.parse("http://example.com/rel_me/anchor") == {:ok, hrefs}
+  end
+
+  test "maybe_put_rel_me/2" do
+    profile_urls = ["https://social.example.org/users/lain"]
+    attr = "rel=\"me\" "
+
+    assert Pleroma.Web.RelMe.maybe_put_rel_me("http://example.com/rel_me/null", profile_urls) ==
+             ""
+
+    assert Pleroma.Web.RelMe.maybe_put_rel_me("http://example.com/rel_me/error", profile_urls) ==
+             ""
+
+    assert Pleroma.Web.RelMe.maybe_put_rel_me("http://example.com/rel_me/anchor", profile_urls) ==
+             attr
+
+    assert Pleroma.Web.RelMe.maybe_put_rel_me("http://example.com/rel_me/link", profile_urls) ==
+             attr
+  end
+end