diff options
| author | kaniini <nenolod@gmail.com> | 2018-08-16 15:23:04 +0000 | 
|---|---|---|
| committer | kaniini <nenolod@gmail.com> | 2018-08-16 15:23:04 +0000 | 
| commit | f2fa09c50fde8db4e619872ef6121e90a69324a6 (patch) | |
| tree | 4d34037c5fc6d1a3c05a0b061f5279caef1bd671 /test/web | |
| parent | 718882b326f00c8315bca5acc439b92aa37bf021 (diff) | |
| parent | 5fbb14f5ecbbd9feeed2a303c2619fbbba07d70e (diff) | |
| download | pleroma-f2fa09c50fde8db4e619872ef6121e90a69324a6.tar.gz pleroma-f2fa09c50fde8db4e619872ef6121e90a69324a6.zip  | |
Merge branch 'develop' into 'patch-2'
# Conflicts:
#   mix.exs
Diffstat (limited to 'test/web')
| -rw-r--r-- | test/web/activity_pub/activity_pub_controller_test.exs | 26 | ||||
| -rw-r--r-- | test/web/activity_pub/activity_pub_test.exs | 9 | ||||
| -rw-r--r-- | test/web/activity_pub/transmogrifier_test.exs | 9 | ||||
| -rw-r--r-- | test/web/activity_pub/views/user_view_test.exs | 2 | ||||
| -rw-r--r-- | test/web/mastodon_api/account_view_test.exs | 22 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 5 | ||||
| -rw-r--r-- | test/web/mastodon_api/status_view_test.exs | 3 | ||||
| -rw-r--r-- | test/web/ostatus/ostatus_controller_test.exs | 25 | ||||
| -rw-r--r-- | test/web/twitter_api/representers/activity_representer_test.exs | 5 | ||||
| -rw-r--r-- | test/web/twitter_api/twitter_api_test.exs | 66 | ||||
| -rw-r--r-- | test/web/twitter_api/views/activity_view_test.exs | 3 | ||||
| -rw-r--r-- | test/web/twitter_api/views/user_view_test.exs | 44 | 
12 files changed, 206 insertions, 13 deletions
diff --git a/test/web/activity_pub/activity_pub_controller_test.exs b/test/web/activity_pub/activity_pub_controller_test.exs index bbf89136b..3ed7be402 100644 --- a/test/web/activity_pub/activity_pub_controller_test.exs +++ b/test/web/activity_pub/activity_pub_controller_test.exs @@ -62,6 +62,32 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do      end    end +  describe "/users/:nickname/outbox" do +    test "it returns a note activity in a collection", %{conn: conn} do +      note_activity = insert(:note_activity) +      user = User.get_cached_by_ap_id(note_activity.data["actor"]) + +      conn = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get("/users/#{user.nickname}/outbox") + +      assert response(conn, 200) =~ note_activity.data["object"]["content"] +    end + +    test "it returns an announce activity in a collection", %{conn: conn} do +      announce_activity = insert(:announce_activity) +      user = User.get_cached_by_ap_id(announce_activity.data["actor"]) + +      conn = +        conn +        |> put_req_header("accept", "application/activity+json") +        |> get("/users/#{user.nickname}/outbox") + +      assert response(conn, 200) =~ announce_activity.data["object"] +    end +  end +    describe "/users/:nickname/followers" do      test "it returns the followers in a collection", %{conn: conn} do        user = insert(:user) diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index bc33b4dfc..90c0bd768 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -476,6 +476,15 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do      end    end +  test "it can fetch plume articles" do +    {:ok, object} = +      ActivityPub.fetch_object_from_id( +        "https://baptiste.gelez.xyz/~/PlumeDevelopment/this-month-in-plume-june-2018/" +      ) + +    assert object +  end +    describe "update" do      test "it creates an update activity with the new user data" do        user = insert(:user) diff --git a/test/web/activity_pub/transmogrifier_test.exs b/test/web/activity_pub/transmogrifier_test.exs index 838ae169d..e455da39f 100644 --- a/test/web/activity_pub/transmogrifier_test.exs +++ b/test/web/activity_pub/transmogrifier_test.exs @@ -112,6 +112,15 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do                 "<p><span class=\"h-card\"><a href=\"http://localtesting.pleroma.lol/users/lain\" class=\"u-url mention\">@<span>lain</span></a></span></p>"      end +    test "it works for incoming notices with to/cc not being an array (kroeg)" do +      data = File.read!("test/fixtures/kroeg-post-activity.json") |> Poison.decode!() + +      {:ok, %Activity{data: data, local: false}} = Transmogrifier.handle_incoming(data) + +      assert data["object"]["content"] == +               "<p>henlo from my Psion netBook</p><p>message sent from my Psion netBook</p>" +    end +      test "it works for incoming follow requests" do        user = insert(:user) diff --git a/test/web/activity_pub/views/user_view_test.exs b/test/web/activity_pub/views/user_view_test.exs index 0c64e62c3..7fc870e96 100644 --- a/test/web/activity_pub/views/user_view_test.exs +++ b/test/web/activity_pub/views/user_view_test.exs @@ -13,6 +13,6 @@ defmodule Pleroma.Web.ActivityPub.UserViewTest do      assert result["id"] == user.ap_id      assert result["preferredUsername"] == user.nickname -    assert String.contains?(result["publicKey"]["publicKeyPem"], "BEGIN RSA PUBLIC KEY") +    assert String.contains?(result["publicKey"]["publicKeyPem"], "BEGIN PUBLIC KEY")    end  end diff --git a/test/web/mastodon_api/account_view_test.exs b/test/web/mastodon_api/account_view_test.exs index b93418b3f..8bf194e6b 100644 --- a/test/web/mastodon_api/account_view_test.exs +++ b/test/web/mastodon_api/account_view_test.exs @@ -5,10 +5,21 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do    alias Pleroma.User    test "Represent a user account" do +    source_data = %{ +      "tag" => [ +        %{ +          "type" => "Emoji", +          "icon" => %{"url" => "/file.png"}, +          "name" => ":karjalanpiirakka:" +        } +      ] +    } +      user =        insert(:user, %{ -        info: %{"note_count" => 5, "follower_count" => 3}, +        info: %{"note_count" => 5, "follower_count" => 3, "source_data" => source_data},          nickname: "shp@shitposter.club", +        name: ":karjalanpiirakka: shp",          inserted_at: ~N[2017-08-15 15:47:06.597036]        }) @@ -28,7 +39,14 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do        avatar_static: "http://localhost:4001/images/avi.png",        header: "http://localhost:4001/images/banner.png",        header_static: "http://localhost:4001/images/banner.png", -      emojis: [], +      emojis: [ +        %{ +          "static_url" => "/file.png", +          "url" => "/file.png", +          "shortcode" => "karjalanpiirakka", +          "visible_in_picker" => false +        } +      ],        fields: [],        source: %{          note: "", diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index d1812457d..9e33c1d04 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -736,16 +736,19 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do        filename: "an_image.jpg"      } +    desc = "Description of the image" +      user = insert(:user)      conn =        conn        |> assign(:user, user) -      |> post("/api/v1/media", %{"file" => file}) +      |> post("/api/v1/media", %{"file" => file, "description" => desc})      assert media = json_response(conn, 200)      assert media["type"] == "image" +    assert media["description"] == desc    end    test "hashtag timeline", %{conn: conn} do diff --git a/test/web/mastodon_api/status_view_test.exs b/test/web/mastodon_api/status_view_test.exs index d28c3cbad..03c798bef 100644 --- a/test/web/mastodon_api/status_view_test.exs +++ b/test/web/mastodon_api/status_view_test.exs @@ -102,7 +102,8 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do        url: "someurl",        remote_url: "someurl",        preview_url: "someurl", -      text_url: "someurl" +      text_url: "someurl", +      description: nil      }      assert expected == StatusView.render("attachment.json", %{attachment: object}) diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs index d5adf3bf3..c23b175e8 100644 --- a/test/web/ostatus/ostatus_controller_test.exs +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -155,6 +155,31 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do      assert response(conn, 200)    end +  test "gets a notice in AS2 format", %{conn: conn} do +    note_activity = insert(:note_activity) +    url = "/notice/#{note_activity.id}" + +    conn = +      conn +      |> put_req_header("accept", "application/activity+json") +      |> get(url) + +    assert json_response(conn, 200) +  end + +  test "gets an activity in AS2 format", %{conn: conn} do +    note_activity = insert(:note_activity) +    [_, uuid] = hd(Regex.scan(~r/.+\/([\w-]+)$/, note_activity.data["id"])) +    url = "/activities/#{uuid}" + +    conn = +      conn +      |> put_req_header("accept", "application/activity+json") +      |> get(url) + +    assert json_response(conn, 200) +  end +    test "404s a private notice", %{conn: conn} do      note_activity = insert(:direct_note_activity)      url = "/notice/#{note_activity.id}" diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 16c6e7b0d..3f85e028b 100644 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ b/test/web/twitter_api/representers/activity_representer_test.exs @@ -126,7 +126,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do      }      expected_html = -      "<span>2hu</span><br />alert('YAY')Some <img height='32px' width='32px' alt='2hu' title='2hu' src='corndog.png' /> content mentioning <a href=\"#{ +      "<p>2hu</p>alert('YAY')Some <img height='32px' width='32px' alt='2hu' title='2hu' src='corndog.png' /> content mentioning <a href=\"#{          mentioned_user.ap_id        }\">@shp</a>" @@ -155,7 +155,8 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do        "activity_type" => "post",        "possibly_sensitive" => true,        "uri" => activity.data["object"]["id"], -      "visibility" => "direct" +      "visibility" => "direct", +      "summary" => "2hu"      }      assert ActivityRepresenter.to_map(activity, %{ diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index 06c1ba6ec..6486540f8 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -2,7 +2,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do    use Pleroma.DataCase    alias Pleroma.Builders.UserBuilder    alias Pleroma.Web.TwitterAPI.{TwitterAPI, UserView} -  alias Pleroma.{Activity, User, Object, Repo} +  alias Pleroma.{Activity, User, Object, Repo, UserInviteToken}    alias Pleroma.Web.ActivityPub.ActivityPub    alias Pleroma.Web.TwitterAPI.ActivityView @@ -257,6 +257,70 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do               UserView.render("show.json", %{user: fetched_user})    end +  @moduletag skip: "needs 'registrations_open: false' in config" +  test "it registers a new user via invite token and returns the user." do +    {:ok, token} = UserInviteToken.create_token() + +    data = %{ +      "nickname" => "vinny", +      "email" => "pasta@pizza.vs", +      "fullname" => "Vinny Vinesauce", +      "bio" => "streamer", +      "password" => "hiptofbees", +      "confirm" => "hiptofbees", +      "token" => token.token +    } + +    {:ok, user} = TwitterAPI.register_user(data) + +    fetched_user = Repo.get_by(User, nickname: "vinny") +    token = Repo.get_by(UserInviteToken, token: token.token) + +    assert token.used == true + +    assert UserView.render("show.json", %{user: user}) == +             UserView.render("show.json", %{user: fetched_user}) +  end + +  @moduletag skip: "needs 'registrations_open: false' in config" +  test "it returns an error if invalid token submitted" do +    data = %{ +      "nickname" => "GrimReaper", +      "email" => "death@reapers.afterlife", +      "fullname" => "Reaper Grim", +      "bio" => "Your time has come", +      "password" => "scythe", +      "confirm" => "scythe", +      "token" => "DudeLetMeInImAFairy" +    } + +    {:error, msg} = TwitterAPI.register_user(data) + +    assert msg == "Invalid token" +    refute Repo.get_by(User, nickname: "GrimReaper") +  end + +  @moduletag skip: "needs 'registrations_open: false' in config" +  test "it returns an error if expired token submitted" do +    {:ok, token} = UserInviteToken.create_token() +    UserInviteToken.mark_as_used(token.token) + +    data = %{ +      "nickname" => "GrimReaper", +      "email" => "death@reapers.afterlife", +      "fullname" => "Reaper Grim", +      "bio" => "Your time has come", +      "password" => "scythe", +      "confirm" => "scythe", +      "token" => token.token +    } + +    {:error, msg} = TwitterAPI.register_user(data) + +    assert msg == "Expired token" +    refute Repo.get_by(User, nickname: "GrimReaper") +  end +    test "it returns the error on registration problems" do      data = %{        "nickname" => "lain", diff --git a/test/web/twitter_api/views/activity_view_test.exs b/test/web/twitter_api/views/activity_view_test.exs index 5b2a7466b..a101e4ae8 100644 --- a/test/web/twitter_api/views/activity_view_test.exs +++ b/test/web/twitter_api/views/activity_view_test.exs @@ -48,7 +48,8 @@ defmodule Pleroma.Web.TwitterAPI.ActivityViewTest do        "text" => "Hey @shp!",        "uri" => activity.data["object"]["id"],        "user" => UserView.render("show.json", %{user: user}), -      "visibility" => "direct" +      "visibility" => "direct", +      "summary" => nil      }      assert result == expected diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index eea743b32..fefb6bdcc 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -20,6 +20,30 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do      assert represented["profile_image_url"] == image    end +  test "A user with emoji in username", %{user: user} do +    expected = +      "<img height='32px' width='32px' alt='karjalanpiirakka' title='karjalanpiirakka' src='/file.png' /> man" + +    user = %{ +      user +      | info: %{ +          "source_data" => %{ +            "tag" => [ +              %{ +                "type" => "Emoji", +                "icon" => %{"url" => "/file.png"}, +                "name" => ":karjalanpiirakka:" +              } +            ] +          } +        } +    } + +    user = %{user | name: ":karjalanpiirakka: man"} +    represented = UserView.render("show.json", %{user: user}) +    assert represented["name_html"] == expected +  end +    test "A user" do      note_activity = insert(:note_activity)      user = User.get_cached_by_ap_id(note_activity.data["actor"]) @@ -40,7 +64,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "id" => user.id,        "name" => user.name,        "screen_name" => user.nickname, +      "name_html" => user.name,        "description" => HtmlSanitizeEx.strip_tags(user.bio), +      "description_html" => HtmlSanitizeEx.strip_tags(user.bio),        "created_at" => user.inserted_at |> Utils.format_naive_asctime(),        "favourites_count" => 0,        "statuses_count" => 1, @@ -60,7 +86,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      assert represented == UserView.render("show.json", %{user: user}) @@ -76,7 +103,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "id" => user.id,        "name" => user.name,        "screen_name" => user.nickname, +      "name_html" => user.name,        "description" => HtmlSanitizeEx.strip_tags(user.bio), +      "description_html" => HtmlSanitizeEx.strip_tags(user.bio),        "created_at" => user.inserted_at |> Utils.format_naive_asctime(),        "favourites_count" => 0,        "statuses_count" => 0, @@ -96,7 +125,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      assert represented == UserView.render("show.json", %{user: user, for: follower}) @@ -113,7 +143,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "id" => follower.id,        "name" => follower.name,        "screen_name" => follower.nickname, +      "name_html" => follower.name,        "description" => HtmlSanitizeEx.strip_tags(follower.bio), +      "description_html" => HtmlSanitizeEx.strip_tags(follower.bio),        "created_at" => follower.inserted_at |> Utils.format_naive_asctime(),        "favourites_count" => 0,        "statuses_count" => 0, @@ -133,7 +165,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      assert represented == UserView.render("show.json", %{user: follower, for: user}) @@ -157,7 +190,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "id" => user.id,        "name" => user.name,        "screen_name" => user.nickname, +      "name_html" => user.name,        "description" => HtmlSanitizeEx.strip_tags(user.bio), +      "description_html" => HtmlSanitizeEx.strip_tags(user.bio),        "created_at" => user.inserted_at |> Utils.format_naive_asctime(),        "favourites_count" => 0,        "statuses_count" => 0, @@ -177,7 +212,8 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do        "cover_photo" => banner,        "background_image" => nil,        "is_local" => true, -      "locked" => false +      "locked" => false, +      "default_scope" => "public"      }      blocker = Repo.get(User, blocker.id)  | 
