X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fweb%2Ftwitter_api%2Ftwitter_api_test.exs;h=3a1745a1bc671a9892d18f81718531a738628fed;hb=d952b6cd7bd54f6d10d4f71e0ffb25b5f0e20582;hp=4993da3edee9a6be4d2ae1381a462362d264f009;hpb=369be708b2126e15fd870977810b3e71514d9979;p=akkoma diff --git a/test/web/twitter_api/twitter_api_test.exs b/test/web/twitter_api/twitter_api_test.exs index 4993da3ed..3a1745a1b 100644 --- a/test/web/twitter_api/twitter_api_test.exs +++ b/test/web/twitter_api/twitter_api_test.exs @@ -102,6 +102,38 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do assert Enum.at(statuses, 1) == ActivityRepresenter.to_map(direct_activity, %{user: direct_activity_user, mentioned: [user]}) end + test "get a user by params" do + user1_result = {:ok, user1} = UserBuilder.insert(%{ap_id: "some id", email: "test@pleroma"}) + {:ok, user2} = UserBuilder.insert(%{ap_id: "some other id", nickname: "testname2", email: "test2@pleroma"}) + + assert {:error, "You need to specify screen_name or user_id"} == TwitterAPI.get_user(nil, nil) + assert user1_result == TwitterAPI.get_user(nil, %{"user_id" => user1.id}) + assert user1_result == TwitterAPI.get_user(nil, %{"screen_name" => user1.nickname}) + assert user1_result == TwitterAPI.get_user(user1, nil) + assert user1_result == TwitterAPI.get_user(user2, %{"user_id" => user1.id}) + assert user1_result == TwitterAPI.get_user(user2, %{"screen_name" => user1.nickname}) + assert {:error, "No user with such screen_name"} == TwitterAPI.get_user(nil, %{"screen_name" => "Satan"}) + assert {:error, "No user with such user_id"} == TwitterAPI.get_user(nil, %{"user_id" => 666}) + end + + test "fetch user's statuses" do + {:ok, user1} = UserBuilder.insert(%{ap_id: "some id", email: "test@pleroma"}) + {:ok, user2} = UserBuilder.insert(%{ap_id: "some other id", nickname: "testname2", email: "test2@pleroma"}) + + {:ok, status1} = ActivityBuilder.insert(%{"id" => 1}, %{user: user1}) + {:ok, status2} = ActivityBuilder.insert(%{"id" => 2}, %{user: user2}) + + user1_statuses = TwitterAPI.fetch_user_statuses(user1, %{"actor_id" => user1.ap_id}) + + assert length(user1_statuses) == 1 + assert Enum.at(user1_statuses, 0) == ActivityRepresenter.to_map(status1, %{user: user1}) + + user2_statuses = TwitterAPI.fetch_user_statuses(user1, %{"actor_id" => user2.ap_id}) + + assert length(user2_statuses) == 1 + assert Enum.at(user2_statuses, 0) == ActivityRepresenter.to_map(status2, %{user: user2}) + end + test "fetch a single status" do {:ok, activity} = ActivityBuilder.insert() {:ok, user} = UserBuilder.insert() @@ -114,31 +146,37 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do test "Follow another user using user_id" do user = insert(:user) - following = insert(:user) + followed = insert(:user) - {:ok, user, following, activity } = TwitterAPI.follow(user, %{"user_id" => following.id}) + {:ok, user, followed, _activity } = TwitterAPI.follow(user, %{"user_id" => followed.id}) + assert user.following == [User.ap_followers(followed)] - assert user.following == [User.ap_followers(following)] + { :error, msg } = TwitterAPI.follow(user, %{"user_id" => followed.id}) + assert msg == "Could not follow user: #{followed.nickname} is already on your list." end test "Follow another user using screen_name" do user = insert(:user) - following = insert(:user) + followed = insert(:user) - {:ok, user, following, activity } = TwitterAPI.follow(user, %{"screen_name" => following.nickname}) + {:ok, user, followed, _activity } = TwitterAPI.follow(user, %{"screen_name" => followed.nickname}) + assert user.following == [User.ap_followers(followed)] - assert user.following == [User.ap_followers(following)] + { :error, msg } = TwitterAPI.follow(user, %{"screen_name" => followed.nickname}) + assert msg == "Could not follow user: #{followed.nickname} is already on your list." end test "Unfollow another user" do - following = insert(:user) - user = insert(:user, %{following: [User.ap_followers(following)]}) + followed = insert(:user) + user = insert(:user, %{following: [User.ap_followers(followed)]}) - {:ok, user, _following } = TwitterAPI.unfollow(user, following.id) + { :ok, user, _followed } = TwitterAPI.unfollow(user, followed.id) user = Repo.get(User, user.id) assert user.following == [] + { :error, msg } = TwitterAPI.unfollow(user, followed.id) + assert msg == "Not subscribed!" end test "fetch statuses in a context using the conversation id" do @@ -257,8 +295,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do end setup do - Supervisor.terminate_child(Pleroma.Supervisor, ConCache) - Supervisor.restart_child(Pleroma.Supervisor, ConCache) + Supervisor.terminate_child(Pleroma.Supervisor, Cachex) + Supervisor.restart_child(Pleroma.Supervisor, Cachex) :ok end end