From f42ffbe9a855494c182c97f5eb641e800e562aa4 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 12 Jun 2018 14:52:54 +0300 Subject: Initial invites support + tests. --- test/web/twitter_api/twitter_api_test.exs | 65 ++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index edacb312d..ed9158bf5 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 @@ -246,6 +246,69 @@ 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", -- cgit v1.2.3 From 9c1cf1befb9905282f6b8afcfee3cf3578f41431 Mon Sep 17 00:00:00 2001 From: Henry Jameson Date: Tue, 12 Jun 2018 15:01:40 +0300 Subject: formatting --- test/web/twitter_api/twitter_api_test.exs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index ed9158bf5..bdf2f2885 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -266,8 +266,9 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do 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}) + UserView.render("show.json", %{user: fetched_user}) end @moduletag skip: "needs 'registrations_open: false' in config" -- cgit v1.2.3 From 32211c4ada3ea113fb4041ae28b884130b2f4342 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sun, 24 Jun 2018 06:31:09 +0000 Subject: tests: add default_scope where appropriate --- test/web/twitter_api/views/user_view_test.exs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index eea743b32..49f73c2fe 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -60,7 +60,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}) @@ -96,7 +97,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}) @@ -133,7 +135,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}) @@ -177,7 +180,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) -- cgit v1.2.3 From 66819ea784509fbed3f7db8056ececf150339b35 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sun, 24 Jun 2018 06:30:23 +0000 Subject: twitter api: use ActivityView.render_content() where appropriate instead of duplicating the logic --- test/web/twitter_api/representers/activity_representer_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 16c6e7b0d..7505093dd 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 = - "2hu
alert('YAY')Some 2hu content mentioning 2hu

alert('YAY')Some 2hu content mentioning
@shp" -- cgit v1.2.3 From 4fb64c1d862692bb869dd735e9772195b7cf2705 Mon Sep 17 00:00:00 2001 From: William Pitcock Date: Sun, 24 Jun 2018 06:23:19 +0000 Subject: testsuite: twitter api: add summary where necessary --- test/web/twitter_api/representers/activity_representer_test.exs | 3 ++- test/web/twitter_api/views/activity_view_test.exs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/representers/activity_representer_test.exs b/test/web/twitter_api/representers/activity_representer_test.exs index 7505093dd..3f85e028b 100644 --- a/test/web/twitter_api/representers/activity_representer_test.exs +++ b/test/web/twitter_api/representers/activity_representer_test.exs @@ -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/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 -- cgit v1.2.3 From cee63ad3f725a90fdd1a438520c33377cee8ad81 Mon Sep 17 00:00:00 2001 From: eal Date: Wed, 8 Aug 2018 08:38:25 +0300 Subject: TwitterAPI user view: add screen_name_html and description_html. --- test/web/twitter_api/views/user_view_test.exs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index 49f73c2fe..000c589af 100644 --- a/test/web/twitter_api/views/user_view_test.exs +++ b/test/web/twitter_api/views/user_view_test.exs @@ -40,7 +40,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => user.id, "name" => user.name, "screen_name" => user.nickname, + "screen_name_html" => user.nickname, "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, @@ -77,7 +79,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => user.id, "name" => user.name, "screen_name" => user.nickname, + "screen_name_html" => user.nickname, "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, @@ -115,7 +119,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => follower.id, "name" => follower.name, "screen_name" => follower.nickname, + "screen_name_html" => follower.nickname, "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, @@ -160,7 +166,9 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => user.id, "name" => user.name, "screen_name" => user.nickname, + "screen_name_html" => user.nickname, "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, -- cgit v1.2.3 From ed9738e031e02a9338bedd3a8f3ff73329c101e7 Mon Sep 17 00:00:00 2001 From: eal Date: Wed, 8 Aug 2018 09:24:50 +0300 Subject: Add tests for emoji in user profiles Also use the correct field in TwitterAPI... --- test/web/twitter_api/views/user_view_test.exs | 32 +++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) (limited to 'test/web/twitter_api') diff --git a/test/web/twitter_api/views/user_view_test.exs b/test/web/twitter_api/views/user_view_test.exs index 000c589af..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 = + "karjalanpiirakka 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,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => user.id, "name" => user.name, "screen_name" => user.nickname, - "screen_name_html" => 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(), @@ -79,7 +103,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => user.id, "name" => user.name, "screen_name" => user.nickname, - "screen_name_html" => 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(), @@ -119,7 +143,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => follower.id, "name" => follower.name, "screen_name" => follower.nickname, - "screen_name_html" => 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(), @@ -166,7 +190,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do "id" => user.id, "name" => user.name, "screen_name" => user.nickname, - "screen_name_html" => 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(), -- cgit v1.2.3