Merge remote-tracking branch 'origin' into follower-hiding
This commit is contained in:
commit
76d6b1c6ab
65 changed files with 1358 additions and 1041 deletions
|
|
@ -5,6 +5,11 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do
|
|||
alias Pleroma.{Repo, User}
|
||||
alias Pleroma.Activity
|
||||
|
||||
setup_all do
|
||||
Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "/relay" do
|
||||
test "with the relay active, it returns the relay user", %{conn: conn} do
|
||||
res =
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
|
|||
alias Pleroma.Builders.ActivityBuilder
|
||||
|
||||
import Pleroma.Factory
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "building a user from his ap id" do
|
||||
test "it returns a user" do
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
|
|||
import Pleroma.Factory
|
||||
alias Pleroma.Web.CommonAPI
|
||||
|
||||
setup_all do
|
||||
Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "handle_incoming" do
|
||||
test "it ignores an incoming notice if we already have it" do
|
||||
activity = insert(:note_activity)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,11 @@ defmodule Pleroma.Web.FederatorTest do
|
|||
import Pleroma.Factory
|
||||
import Mock
|
||||
|
||||
setup_all do
|
||||
Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "enqueues an element according to priority" do
|
||||
queue = [%{item: 1, priority: 2}]
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,12 @@ defmodule Pleroma.Web.HTTPSignaturesTest do
|
|||
use Pleroma.DataCase
|
||||
alias Pleroma.Web.HTTPSignatures
|
||||
import Pleroma.Factory
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
@private_key hd(:public_key.pem_decode(File.read!("test/web/http_sigs/priv.key")))
|
||||
|> :public_key.pem_entry_decode()
|
||||
|
|
|
|||
|
|
@ -8,6 +8,12 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
|||
|
||||
import Pleroma.Factory
|
||||
import ExUnit.CaptureLog
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "the home timeline", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
|
@ -1303,14 +1309,21 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
|||
describe "updating credentials" do
|
||||
test "updates the user's bio", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
user2 = insert(:user)
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> assign(:user, user)
|
||||
|> patch("/api/v1/accounts/update_credentials", %{"note" => "I drink #cofe"})
|
||||
|> patch("/api/v1/accounts/update_credentials", %{
|
||||
"note" => "I drink #cofe with @#{user2.nickname}"
|
||||
})
|
||||
|
||||
assert user = json_response(conn, 200)
|
||||
assert user["note"] == "I drink #cofe"
|
||||
|
||||
assert user["note"] ==
|
||||
"I drink <a href=\"http://localhost:4001/tag/cofe\">#cofe</a> with <span><a href=\"#{
|
||||
user2.ap_id
|
||||
}\">@<span>#{user2.nickname}</span></a></span>"
|
||||
end
|
||||
|
||||
test "updates the user's locking status", %{conn: conn} do
|
||||
|
|
|
|||
|
|
@ -6,6 +6,12 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do
|
|||
alias Pleroma.Web.OStatus
|
||||
alias Pleroma.Web.CommonAPI
|
||||
import Pleroma.Factory
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "a note with null content" do
|
||||
note = insert(:note_activity)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,12 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do
|
|||
alias Pleroma.Web.OStatus
|
||||
|
||||
import Pleroma.Factory
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "an external note activity" do
|
||||
incoming = File.read!("test/fixtures/mastodon-note-cw.xml")
|
||||
|
|
|
|||
|
|
@ -5,6 +5,11 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
|||
alias Pleroma.Web.CommonAPI
|
||||
alias Pleroma.Web.OStatus.ActivityRepresenter
|
||||
|
||||
setup_all do
|
||||
Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "decodes a salmon", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
salmon = File.read!("test/fixtures/salmon.xml")
|
||||
|
|
|
|||
|
|
@ -6,6 +6,11 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
import Pleroma.Factory
|
||||
import ExUnit.CaptureLog
|
||||
|
||||
setup_all do
|
||||
Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "don't insert create notes twice" do
|
||||
incoming = File.read!("test/fixtures/incoming_note_activity.xml")
|
||||
{:ok, [activity]} = OStatus.handle_incoming(incoming)
|
||||
|
|
@ -337,7 +342,7 @@ defmodule Pleroma.Web.OStatusTest do
|
|||
%Pleroma.User.Info{
|
||||
id: user.info.id,
|
||||
ap_enabled: false,
|
||||
background: nil,
|
||||
background: %{},
|
||||
banner: %{},
|
||||
blocks: [],
|
||||
deactivated: false,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ defmodule Pleroma.Web.Salmon.SalmonTest do
|
|||
alias Pleroma.Web.Salmon
|
||||
alias Pleroma.{Repo, Activity, User}
|
||||
import Pleroma.Factory
|
||||
import Tesla.Mock
|
||||
|
||||
@magickey "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwQhh-1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAB"
|
||||
|
||||
|
|
@ -10,6 +11,11 @@ defmodule Pleroma.Web.Salmon.SalmonTest do
|
|||
|
||||
@magickey_friendica "RSA.AMwa8FUs2fWEjX0xN7yRQgegQffhBpuKNC6fa5VNSVorFjGZhRrlPMn7TQOeihlc9lBz2OsHlIedbYn2uJ7yCs0.AQAB"
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "decodes a salmon" do
|
||||
{:ok, salmon} = File.read("test/fixtures/salmon.xml")
|
||||
{:ok, doc} = Salmon.decode_and_validate(@magickey, salmon)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||
|> assign(:user, user)
|
||||
|> post(authenticated_twitter_api__path(conn, :update_banner), %{"banner" => new_banner})
|
||||
|> json_response(200)
|
||||
|
||||
user = Repo.get(User, user.id)
|
||||
assert user.info.banner["type"] == "Image"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -39,6 +42,9 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||
|> assign(:user, user)
|
||||
|> post(authenticated_twitter_api__path(conn, :update_background), %{"img" => new_bg})
|
||||
|> json_response(200)
|
||||
|
||||
user = Repo.get(User, user.id)
|
||||
assert user.info.background["type"] == "Image"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -1046,18 +1052,21 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
|||
describe "POST /api/account/update_profile.json" do
|
||||
test "it updates a user's profile", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
user2 = insert(:user)
|
||||
|
||||
conn =
|
||||
conn
|
||||
|> assign(:user, user)
|
||||
|> post("/api/account/update_profile.json", %{
|
||||
"name" => "new name",
|
||||
"description" => "new description"
|
||||
"description" => "hi @#{user2.nickname}"
|
||||
})
|
||||
|
||||
user = Repo.get!(User, user.id)
|
||||
assert user.name == "new name"
|
||||
assert user.bio == "new description"
|
||||
|
||||
assert user.bio ==
|
||||
"hi <span><a class='mention' href='#{user2.ap_id}'>@<span>#{user2.nickname}</span></a></span>"
|
||||
|
||||
assert json_response(conn, 200) == UserView.render("user.json", %{user: user, for: user})
|
||||
end
|
||||
|
|
|
|||
|
|
@ -257,6 +257,35 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
|
|||
UserView.render("show.json", %{user: fetched_user})
|
||||
end
|
||||
|
||||
test "it registers a new user and parses mentions in the bio" do
|
||||
data1 = %{
|
||||
"nickname" => "john",
|
||||
"email" => "john@gmail.com",
|
||||
"fullname" => "John Doe",
|
||||
"bio" => "test",
|
||||
"password" => "bear",
|
||||
"confirm" => "bear"
|
||||
}
|
||||
|
||||
{:ok, user1} = TwitterAPI.register_user(data1)
|
||||
|
||||
data2 = %{
|
||||
"nickname" => "lain",
|
||||
"email" => "lain@wired.jp",
|
||||
"fullname" => "lain iwakura",
|
||||
"bio" => "@john test",
|
||||
"password" => "bear",
|
||||
"confirm" => "bear"
|
||||
}
|
||||
|
||||
{:ok, user2} = TwitterAPI.register_user(data2)
|
||||
|
||||
expected_text =
|
||||
"<span><a class='mention' href='#{user1.ap_id}'>@<span>john</span></a></span> test"
|
||||
|
||||
assert user2.bio == expected_text
|
||||
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()
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@ defmodule Pleroma.Web.WebFingerTest do
|
|||
use Pleroma.DataCase
|
||||
alias Pleroma.Web.WebFinger
|
||||
import Pleroma.Factory
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
describe "host meta" do
|
||||
test "returns a link to the xml lrdd" do
|
||||
|
|
|
|||
|
|
@ -10,6 +10,12 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
alias Pleroma.Web.Websub.{WebsubServerSubscription, WebsubClientSubscription}
|
||||
import Pleroma.Factory
|
||||
alias Pleroma.Web.Router.Helpers
|
||||
import Tesla.Mock
|
||||
|
||||
setup do
|
||||
mock(fn env -> apply(HttpRequestMock, :request, [env]) end)
|
||||
:ok
|
||||
end
|
||||
|
||||
test "a verification of a request that is accepted" do
|
||||
sub = insert(:websub_subscription)
|
||||
|
|
@ -26,8 +32,8 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
assert String.to_integer(seconds) > 0
|
||||
|
||||
{:ok,
|
||||
%HTTPoison.Response{
|
||||
status_code: 200,
|
||||
%Tesla.Env{
|
||||
status: 200,
|
||||
body: challenge
|
||||
}}
|
||||
end
|
||||
|
|
@ -41,8 +47,8 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
|
||||
getter = fn _path, _headers, _options ->
|
||||
{:ok,
|
||||
%HTTPoison.Response{
|
||||
status_code: 500,
|
||||
%Tesla.Env{
|
||||
status: 500,
|
||||
body: ""
|
||||
}}
|
||||
end
|
||||
|
|
@ -113,12 +119,7 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
test "discovers the hub and canonical url" do
|
||||
topic = "https://mastodon.social/users/lambadalambda.atom"
|
||||
|
||||
getter = fn ^topic ->
|
||||
doc = File.read!("test/fixtures/lambadalambda.atom")
|
||||
{:ok, %{status_code: 200, body: doc}}
|
||||
end
|
||||
|
||||
{:ok, discovered} = Websub.gather_feed_data(topic, getter)
|
||||
{:ok, discovered} = Websub.gather_feed_data(topic)
|
||||
|
||||
expected = %{
|
||||
"hub" => "https://mastodon.social/api/push",
|
||||
|
|
@ -158,7 +159,7 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
websub.id
|
||||
)
|
||||
|
||||
{:ok, %{status_code: 202}}
|
||||
{:ok, %{status: 202}}
|
||||
end
|
||||
|
||||
task = Task.async(fn -> Websub.request_subscription(websub, poster) end)
|
||||
|
|
@ -177,7 +178,7 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
websub = insert(:websub_client_subscription, %{hub: hub, topic: topic})
|
||||
|
||||
poster = fn ^hub, {:form, _data}, _headers ->
|
||||
{:ok, %{status_code: 202}}
|
||||
{:ok, %{status: 202}}
|
||||
end
|
||||
|
||||
{:error, websub} = Websub.request_subscription(websub, poster, 1000)
|
||||
|
|
@ -186,7 +187,7 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
websub = insert(:websub_client_subscription, %{hub: hub, topic: topic})
|
||||
|
||||
poster = fn ^hub, {:form, _data}, _headers ->
|
||||
{:ok, %{status_code: 400}}
|
||||
{:ok, %{status: 400}}
|
||||
end
|
||||
|
||||
{:error, websub} = Websub.request_subscription(websub, poster, 1000)
|
||||
|
|
@ -209,6 +210,7 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
insert(:websub_client_subscription, %{
|
||||
valid_until: NaiveDateTime.add(now, 2 * day),
|
||||
topic: "http://example.org/still_good",
|
||||
hub: "http://example.org/still_good",
|
||||
state: "accepted"
|
||||
})
|
||||
|
||||
|
|
@ -216,6 +218,7 @@ defmodule Pleroma.Web.WebsubTest do
|
|||
insert(:websub_client_subscription, %{
|
||||
valid_until: NaiveDateTime.add(now, day - 100),
|
||||
topic: "http://example.org/needs_refresh",
|
||||
hub: "http://example.org/needs_refresh",
|
||||
state: "accepted"
|
||||
})
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue