user: make User.delete() return data consistent with Object.delete()
[akkoma] / test / user_test.exs
index 58fe6eedad8647f48c23960f275015bb70d99d11..05da24f8d22e534ce5781a25f74d65c6d3c349f9 100644 (file)
@@ -55,6 +55,15 @@ defmodule Pleroma.UserTest do
     {:error, _} = User.follow(blockee, blocker)
   end
 
+  test "local users do not automatically follow local locked accounts" do
+    follower = insert(:user, info: %{"locked" => true})
+    followed = insert(:user, info: %{"locked" => true})
+
+    {:ok, follower} = User.maybe_direct_follow(follower, followed)
+
+    refute User.following?(follower, followed)
+  end
+
   # This is a somewhat useless test.
   # test "following a remote user will ensure a websub subscription is present" do
   #   user = insert(:user)
@@ -478,11 +487,13 @@ defmodule Pleroma.UserTest do
     assert addressed in recipients
   end
 
-  test ".deactivate deactivates a user" do
+  test ".deactivate can de-activate then re-activate a user" do
     user = insert(:user)
     assert false == !!user.info["deactivated"]
     {:ok, user} = User.deactivate(user)
     assert true == user.info["deactivated"]
+    {:ok, user} = User.deactivate(user, false)
+    assert false == !!user.info["deactivated"]
   end
 
   test ".delete deactivates a user, all follow relationships and all create activities" do
@@ -526,4 +537,18 @@ defmodule Pleroma.UserTest do
 
     assert {:ok, %User{}} = User.insert_or_update_user(data)
   end
+
+  describe "per-user rich-text filtering" do
+    test "html_filter_policy returns nil when rich-text is enabled" do
+      user = insert(:user)
+
+      assert nil == User.html_filter_policy(user)
+    end
+
+    test "html_filter_policy returns TwitterText scrubber when rich-text is disabled" do
+      user = insert(:user, %{info: %{"no_rich_text" => true}})
+
+      assert Pleroma.HTML.Scrubber.TwitterText == User.html_filter_policy(user)
+    end
+  end
 end