diff options
Diffstat (limited to 'test/web/twitter_api')
| -rw-r--r-- | test/web/twitter_api/representers/activity_representer_test.exs | 170 | ||||
| -rw-r--r-- | test/web/twitter_api/twitter_api_controller_test.exs | 63 | 
2 files changed, 46 insertions, 187 deletions
| diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs deleted file mode 100644 index d154385a0..000000000 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ /dev/null @@ -1,170 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do -  use Pleroma.DataCase -  alias Pleroma.Activity -  alias Pleroma.Object -  alias Pleroma.User -  alias Pleroma.Web.ActivityPub.ActivityPub -  alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter -  alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter -  alias Pleroma.Web.TwitterAPI.UserView -  import Pleroma.Factory - -  test "a like activity" do -    user = insert(:user) -    note_activity = insert(:note_activity) -    object = Object.get_by_ap_id(note_activity.data["object"]["id"]) - -    {:ok, like_activity, _object} = ActivityPub.like(user, object) - -    status = -      ActivityRepresenter.to_map(like_activity, %{user: user, liked_activity: note_activity}) - -    assert status["id"] == like_activity.id -    assert status["in_reply_to_status_id"] == note_activity.id - -    note_activity = Activity.get_by_ap_id(note_activity.data["id"]) -    activity_actor = Repo.get_by(User, ap_id: note_activity.data["actor"]) -    liked_status = ActivityRepresenter.to_map(note_activity, %{user: activity_actor, for: user}) -    assert liked_status["favorited"] == true -    assert status["activity_type"] == "like" -  end - -  test "an activity" do -    user = insert(:user) -    #   {:ok, mentioned_user } = UserBuilder.insert(%{nickname: "shp", ap_id: "shp"}) -    mentioned_user = insert(:user, %{nickname: "shp"}) - -    # {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]}) -    follower = insert(:user, %{following: [User.ap_followers(user)]}) - -    object = %Object{ -      data: %{ -        "type" => "Image", -        "url" => [ -          %{ -            "type" => "Link", -            "mediaType" => "image/jpg", -            "href" => "http://example.org/image.jpg" -          } -        ], -        "uuid" => 1 -      } -    } - -    content_html = -      "<script>alert('YAY')</script>Some :2hu: content mentioning <a href='#{mentioned_user.ap_id}'>@shp</shp>" - -    content = HtmlSanitizeEx.strip_tags(content_html) -    date = DateTime.from_naive!(~N[2016-05-24 13:26:08.003], "Etc/UTC") |> DateTime.to_iso8601() - -    {:ok, convo_object} = Object.context_mapping("2hu") |> Repo.insert() - -    to = [ -      User.ap_followers(user), -      "https://www.w3.org/ns/activitystreams#Public", -      mentioned_user.ap_id -    ] - -    activity = %Activity{ -      id: 1, -      data: %{ -        "type" => "Create", -        "id" => "id", -        "to" => to, -        "actor" => User.ap_id(user), -        "object" => %{ -          "published" => date, -          "type" => "Note", -          "content" => content_html, -          "summary" => "2hu :2hu:", -          "inReplyToStatusId" => 213_123, -          "attachment" => [ -            object -          ], -          "external_url" => "some url", -          "like_count" => 5, -          "announcement_count" => 3, -          "context" => "2hu", -          "tag" => ["content", "mentioning", "nsfw"], -          "emoji" => %{ -            "2hu" => "corndog.png" -          } -        }, -        "published" => date, -        "context" => "2hu" -      }, -      local: false, -      recipients: to -    } - -    corndog_emojo = ~s(<img height="32px" width="32px" alt="2hu" title="2hu" src="corndog.png" />) - -    expected_html = -      ~s(<p>2hu ) <> -        corndog_emojo <> -        ~s(</p>alert\('YAY'\)Some ) <> -        corndog_emojo <> -        ~s( content mentioning <a href=") <> mentioned_user.ap_id <> ~s(">@shp</a>) - -    expected_status = %{ -      "id" => activity.id, -      "user" => UserView.render("show.json", %{user: user, for: follower}), -      "is_local" => false, -      "statusnet_html" => expected_html, -      "text" => "2hu :2hu:" <> content, -      "is_post_verb" => true, -      "created_at" => "Tue May 24 13:26:08 +0000 2016", -      "in_reply_to_status_id" => 213_123, -      "in_reply_to_screen_name" => nil, -      "in_reply_to_user_id" => nil, -      "in_reply_to_profileurl" => nil, -      "in_reply_to_ostatus_uri" => nil, -      "statusnet_conversation_id" => convo_object.id, -      "attachments" => [ -        ObjectRepresenter.to_map(object) -      ], -      "attentions" => [ -        UserView.render("show.json", %{user: mentioned_user, for: follower}) -      ], -      "fave_num" => 5, -      "repeat_num" => 3, -      "favorited" => false, -      "repeated" => false, -      "pinned" => false, -      "external_url" => "some url", -      "tags" => ["nsfw", "content", "mentioning"], -      "activity_type" => "post", -      "possibly_sensitive" => true, -      "uri" => activity.data["object"]["id"], -      "visibility" => "direct", -      "card" => nil, -      "muted" => false, -      "summary" => "2hu :2hu:", -      "summary_html" => -        "2hu <img height=\"32px\" width=\"32px\" alt=\"2hu\" title=\"2hu\" src=\"corndog.png\" />" -    } - -    assert ActivityRepresenter.to_map(activity, %{ -             user: user, -             for: follower, -             mentioned: [mentioned_user] -           }) == expected_status -  end - -  test "a delete activity" do -    object = insert(:note) -    user = User.get_by_ap_id(object.data["actor"]) - -    {:ok, delete} = ActivityPub.delete(object) - -    map = ActivityRepresenter.to_map(delete, %{user: user}) - -    assert map["is_post_verb"] == false -    assert map["activity_type"] == "delete" -    assert map["uri"] == object.data["id"] -  end -end diff --git a/test/web/twitter_api/twitter_api_controller_test.exs b/test/web/twitter_api/twitter_api_controller_test.exs index 1b810c9a0..083540017 100644 --- a/test/web/twitter_api/twitter_api_controller_test.exs +++ b/test/web/twitter_api/twitter_api_controller_test.exs @@ -16,9 +16,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do    alias Pleroma.Web.ActivityPub.ActivityPub    alias Pleroma.Web.CommonAPI    alias Pleroma.Web.OAuth.Token +  alias Pleroma.Web.TwitterAPI.ActivityView    alias Pleroma.Web.TwitterAPI.Controller    alias Pleroma.Web.TwitterAPI.NotificationView -  alias Pleroma.Web.TwitterAPI.Representers.ActivityRepresenter    alias Pleroma.Web.TwitterAPI.TwitterAPI    alias Pleroma.Web.TwitterAPI.UserView @@ -116,7 +116,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do          |> post(request_path, %{status: "Nice meme.", visibility: "private"})        assert json_response(conn, 200) == -               ActivityRepresenter.to_map(Repo.one(Activity), %{user: user, for: user}) +               ActivityView.render("activity.json", %{ +                 activity: Repo.one(Activity), +                 user: user, +                 for: user +               })      end    end @@ -273,7 +277,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        response = json_response(conn, 200) -      assert response == ActivityRepresenter.to_map(activity, %{user: actor}) +      assert response == ActivityView.render("activity.json", %{activity: activity, user: actor})      end    end @@ -372,7 +376,8 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        assert response ==                 Enum.map(returned_activities, fn activity -> -                 ActivityRepresenter.to_map(activity, %{ +                 ActivityView.render("activity.json", %{ +                   activity: activity,                     user: User.get_cached_by_ap_id(activity.data["actor"]),                     for: current_user                   }) @@ -469,10 +474,10 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        assert length(response) == 1        assert Enum.at(response, 0) == -               ActivityRepresenter.to_map(activity, %{ +               ActivityView.render("activity.json", %{                   user: current_user,                   for: current_user, -                 mentioned: [current_user] +                 activity: activity                 })      end @@ -594,7 +599,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        conn = get(conn, "/api/statuses/user_timeline.json", %{"user_id" => user.id})        response = json_response(conn, 200)        assert length(response) == 1 -      assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user}) + +      assert Enum.at(response, 0) == +               ActivityView.render("activity.json", %{user: user, activity: activity})      end      test "with screen_name", %{conn: conn} do @@ -604,7 +611,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        conn = get(conn, "/api/statuses/user_timeline.json", %{"screen_name" => user.nickname})        response = json_response(conn, 200)        assert length(response) == 1 -      assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user}) + +      assert Enum.at(response, 0) == +               ActivityView.render("activity.json", %{user: user, activity: activity})      end      test "with credentials", %{conn: conn, user: current_user} do @@ -620,7 +629,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        assert length(response) == 1        assert Enum.at(response, 0) == -               ActivityRepresenter.to_map(activity, %{user: current_user, for: current_user}) +               ActivityView.render("activity.json", %{ +                 user: current_user, +                 for: current_user, +                 activity: activity +               })      end      test "with credentials with user_id", %{conn: conn, user: current_user} do @@ -635,7 +648,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        response = json_response(conn, 200)        assert length(response) == 1 -      assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user}) + +      assert Enum.at(response, 0) == +               ActivityView.render("activity.json", %{user: user, activity: activity})      end      test "with credentials screen_name", %{conn: conn, user: current_user} do @@ -650,7 +665,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        response = json_response(conn, 200)        assert length(response) == 1 -      assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user}) + +      assert Enum.at(response, 0) == +               ActivityView.render("activity.json", %{user: user, activity: activity})      end      test "with credentials with user_id, excluding RTs", %{conn: conn, user: current_user} do @@ -669,7 +686,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        response = json_response(conn, 200)        assert length(response) == 1 -      assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user}) + +      assert Enum.at(response, 0) == +               ActivityView.render("activity.json", %{user: user, activity: activity})        conn =          conn @@ -678,7 +697,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        response = json_response(conn, 200)        assert length(response) == 1 -      assert Enum.at(response, 0) == ActivityRepresenter.to_map(activity, %{user: user}) + +      assert Enum.at(response, 0) == +               ActivityView.render("activity.json", %{user: user, activity: activity})      end    end @@ -937,7 +958,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        activity_user = Repo.get_by(User, ap_id: note_activity.data["actor"])        assert json_response(response, 200) == -               ActivityRepresenter.to_map(activity, %{user: activity_user, for: current_user}) +               ActivityView.render("activity.json", %{ +                 user: activity_user, +                 for: current_user, +                 activity: activity +               })      end    end @@ -971,7 +996,11 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        activity_user = Repo.get_by(User, ap_id: note_activity.data["actor"])        assert json_response(response, 200) == -               ActivityRepresenter.to_map(activity, %{user: activity_user, for: current_user}) +               ActivityView.render("activity.json", %{ +                 user: activity_user, +                 for: current_user, +                 activity: activity +               })      end    end @@ -1955,7 +1984,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        user = refresh_record(user)        assert json_response(response, 200) == -               ActivityRepresenter.to_map(activity, %{user: user, for: user}) +               ActivityView.render("activity.json", %{user: user, for: user, activity: activity})      end    end @@ -1985,7 +2014,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do        user = refresh_record(user)        assert json_response(response, 200) == -               ActivityRepresenter.to_map(activity, %{user: user, for: user}) +               ActivityView.render("activity.json", %{user: user, for: user, activity: activity})      end    end | 
