Merge branch 'no-self-notification' into 'develop'
[akkoma] / test / web / twitter_api / twitter_api_controller_test.exs
index 6084381cb099e4f9cf14731ec3be18e8bb365161..896fe246d0d42c9790be2694bf83bfcc6afc9587 100644 (file)
@@ -2,9 +2,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
   use Pleroma.Web.ConnCase
   alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter
   alias Pleroma.Builders.{ActivityBuilder, UserBuilder}
-  alias Pleroma.{Repo, Activity, User, Object}
+  alias Pleroma.{Repo, Activity, User, Object, Notification}
   alias Pleroma.Web.ActivityPub.ActivityPub
   alias Pleroma.Web.TwitterAPI.UserView
+  alias Pleroma.Web.TwitterAPI.NotificationView
   alias Pleroma.Web.CommonAPI
   alias Pleroma.Web.TwitterAPI.TwitterAPI
 
@@ -247,6 +248,37 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
     end
   end
 
+  describe "GET /api/qvitter/statuses/notifications.json" do
+    setup [:valid_user]
+
+    test "without valid credentials", %{conn: conn} do
+      conn = get(conn, "/api/qvitter/statuses/notifications.json")
+      assert json_response(conn, 403) == %{"error" => "Invalid credentials."}
+    end
+
+    test "with credentials", %{conn: conn, user: current_user} do
+      other_user = insert(:user)
+
+      {:ok, activity} =
+        ActivityBuilder.insert(%{"to" => [current_user.ap_id]}, %{user: other_user})
+
+      conn =
+        conn
+        |> with_credentials(current_user.nickname, "test")
+        |> get("/api/qvitter/statuses/notifications.json")
+
+      response = json_response(conn, 200)
+
+      assert length(response) == 1
+
+      assert response ==
+               NotificationView.render("notification.json", %{
+                 notifications: Notification.for_user(current_user),
+                 for: current_user
+               })
+    end
+  end
+
   describe "GET /statuses/user_timeline.json" do
     setup [:valid_user]
 
@@ -754,4 +786,18 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
       assert status["id"] == activity.id
     end
   end
+
+  test "Convert newlines to <br> in bio", %{conn: conn} do
+    user = insert(:user)
+
+    conn =
+      conn
+      |> assign(:user, user)
+      |> post("/api/account/update_profile.json", %{
+        "description" => "Hello,\r\nWorld! I\n am a test."
+      })
+
+    user = Repo.get!(User, user.id)
+    assert user.bio == "Hello,<br>World! I<br> am a test."
+  end
 end