Merge branch 'develop' into feature/activitypub
This commit is contained in:
commit
b331cb449a
@ -21,4 +21,4 @@ before_script:
|
||||
unit-testing:
|
||||
stage: test
|
||||
script:
|
||||
- MIX_ENV=test mix test
|
||||
- MIX_ENV=test mix test --trace
|
||||
|
@ -32,7 +32,7 @@ defmodule Pleroma.Stats do
|
||||
domain_count = Enum.count(peers)
|
||||
status_query = from(u in User.local_user_query,
|
||||
select: fragment("sum((?->>'note_count')::int)", u.info))
|
||||
status_count = Repo.one(status_query) |> IO.inspect
|
||||
status_count = Repo.one(status_query)
|
||||
user_count = Repo.aggregate(User.local_user_query, :count, :id)
|
||||
Agent.update(__MODULE__, fn _ ->
|
||||
{peers, %{domain_count: domain_count, status_count: status_count, user_count: user_count}}
|
||||
|
@ -10,6 +10,8 @@ defmodule Pleroma.Web.OStatus.FeedRepresenter do
|
||||
|
||||
h = fn(str) -> [to_charlist(str)] end
|
||||
|
||||
last_activity = List.last(activities)
|
||||
|
||||
entries = activities
|
||||
|> Enum.map(fn(activity) ->
|
||||
{:entry, ActivityRepresenter.to_simple_form(activity, user)}
|
||||
@ -32,7 +34,15 @@ defmodule Pleroma.Web.OStatus.FeedRepresenter do
|
||||
{:link, [rel: 'salmon', href: h.(OStatus.salmon_path(user))], []},
|
||||
{:link, [rel: 'self', href: h.(OStatus.feed_path(user)), type: 'application/atom+xml'], []},
|
||||
{:author, UserRepresenter.to_simple_form(user)},
|
||||
] ++ entries
|
||||
] ++
|
||||
if last_activity do
|
||||
[{:link, [rel: 'next',
|
||||
href: to_charlist(OStatus.feed_path(user)) ++ '?max_id=' ++ to_charlist(last_activity.id),
|
||||
type: 'application/atom+xml'], []}]
|
||||
else
|
||||
[]
|
||||
end
|
||||
++ entries
|
||||
}]
|
||||
end
|
||||
end
|
||||
|
@ -19,7 +19,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do
|
||||
end
|
||||
end
|
||||
|
||||
def feed(conn, %{"nickname" => nickname}) do
|
||||
def feed(conn, %{"nickname" => nickname} = params) do
|
||||
user = User.get_cached_by_nickname(nickname)
|
||||
query = from activity in Activity,
|
||||
where: fragment("?->>'actor' = ?", activity.data, ^user.ap_id),
|
||||
@ -27,6 +27,7 @@ defmodule Pleroma.Web.OStatus.OStatusController do
|
||||
order_by: [desc: :id]
|
||||
|
||||
activities = query
|
||||
|> restrict_max(params)
|
||||
|> Repo.all
|
||||
|
||||
response = user
|
||||
@ -56,6 +57,11 @@ defmodule Pleroma.Web.OStatus.OStatusController do
|
||||
end
|
||||
end
|
||||
|
||||
defp restrict_max(query, %{"max_id" => max_id}) do
|
||||
from activity in query, where: activity.id < ^max_id
|
||||
end
|
||||
defp restrict_max(query, _), do: query
|
||||
|
||||
def salmon_incoming(conn, _) do
|
||||
{:ok, body, _conn} = read_body(conn)
|
||||
{:ok, doc} = decode_or_retry(body)
|
||||
|
@ -1 +1 @@
|
||||
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Pleroma</title><link rel=stylesheet href=/static/font/css/fontello.css><link rel=stylesheet href=/static/font/css/animation.css><link href=/static/css/app.b3deb1dd44970d86cc6b368f36fd09d9.css rel=stylesheet></head><body style="display: none"><div id=app></div><script type=text/javascript src=/static/js/manifest.15dfe939c498cca9840c.js></script><script type=text/javascript src=/static/js/vendor.409059e5a814f448f5bc.js></script><script type=text/javascript src=/static/js/app.30c01d7540d43b760f03.js></script></body></html>
|
||||
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>Pleroma</title><link rel=stylesheet href=/static/font/css/fontello.css><link rel=stylesheet href=/static/font/css/animation.css><link href=/static/css/app.b3deb1dd44970d86cc6b368f36fd09d9.css rel=stylesheet></head><body style="display: none"><div id=app></div><script type=text/javascript src=/static/js/manifest.f8637fb66085728d1fbd.js></script><script type=text/javascript src=/static/js/vendor.6ceb4478f308829a2829.js></script><script type=text/javascript src=/static/js/app.23c1437e78f655a31c4a.js></script></body></html>
|
4
priv/static/instance/panel.html
Normal file
4
priv/static/instance/panel.html
Normal file
@ -0,0 +1,4 @@
|
||||
<div style="margin-left:12px; margin-right:12px">
|
||||
<p>This is a <a href="https://pleroma.social" target="_blank">Pleroma</a> instance.</p>
|
||||
</div>
|
||||
|
@ -3,5 +3,6 @@
|
||||
"background": "/static/bg.jpg",
|
||||
"logo": "/static/logo.png",
|
||||
"defaultPath": "/main/all",
|
||||
"chatDisabled": false
|
||||
"chatDisabled": false,
|
||||
"showInstanceSpecificPanel": false
|
||||
}
|
||||
|
6
priv/static/static/js/app.23c1437e78f655a31c4a.js
Normal file
6
priv/static/static/js/app.23c1437e78f655a31c4a.js
Normal file
File diff suppressed because one or more lines are too long
1
priv/static/static/js/app.23c1437e78f655a31c4a.js.map
Normal file
1
priv/static/static/js/app.23c1437e78f655a31c4a.js.map
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
||||
!function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var r=window.webpackJsonp;window.webpackJsonp=function(o,c){for(var p,l,s=0,i=[];s<o.length;s++)l=o[s],a[l]&&i.push.apply(i,a[l]),a[l]=0;for(p in c)Object.prototype.hasOwnProperty.call(c,p)&&(e[p]=c[p]);for(r&&r(o,c);i.length;)i.shift().call(null,t);if(c[0])return n[0]=0,t(0)};var n={},a={0:0};t.e=function(e,r){if(0===a[e])return r.call(null,t);if(void 0!==a[e])a[e].push(r);else{a[e]=[r];var n=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.src=t.p+"static/js/"+e+"."+{1:"409059e5a814f448f5bc",2:"30c01d7540d43b760f03"}[e]+".js",n.appendChild(o)}},t.m=e,t.c=n,t.p="/"}([]);
|
||||
//# sourceMappingURL=manifest.15dfe939c498cca9840c.js.map
|
2
priv/static/static/js/manifest.f8637fb66085728d1fbd.js
Normal file
2
priv/static/static/js/manifest.f8637fb66085728d1fbd.js
Normal file
@ -0,0 +1,2 @@
|
||||
!function(e){function t(r){if(a[r])return a[r].exports;var n=a[r]={exports:{},id:r,loaded:!1};return e[r].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var r=window.webpackJsonp;window.webpackJsonp=function(c,o){for(var p,l,s=0,i=[];s<c.length;s++)l=c[s],n[l]&&i.push.apply(i,n[l]),n[l]=0;for(p in o)Object.prototype.hasOwnProperty.call(o,p)&&(e[p]=o[p]);for(r&&r(c,o);i.length;)i.shift().call(null,t);if(o[0])return a[0]=0,t(0)};var a={},n={0:0};t.e=function(e,r){if(0===n[e])return r.call(null,t);if(void 0!==n[e])n[e].push(r);else{n[e]=[r];var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.src=t.p+"static/js/"+e+"."+{1:"6ceb4478f308829a2829",2:"23c1437e78f655a31c4a"}[e]+".js",a.appendChild(c)}},t.m=e,t.c=a,t.p="/"}([]);
|
||||
//# sourceMappingURL=manifest.f8637fb66085728d1fbd.js.map
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
priv/static/static/js/vendor.6ceb4478f308829a2829.js.map
Normal file
1
priv/static/static/js/vendor.6ceb4478f308829a2829.js.map
Normal file
File diff suppressed because one or more lines are too long
@ -50,7 +50,7 @@ defmodule Pleroma.NotificationTest do
|
||||
|
||||
{:ok, activity} = TwitterAPI.create_status(user, %{"status" => "hey @#{other_user.nickname}"})
|
||||
{:ok, [notification]} = Notification.create_notifications(activity)
|
||||
{:error, notification} = Notification.get(user, notification.id)
|
||||
{:error, _notification} = Notification.get(user, notification.id)
|
||||
end
|
||||
end
|
||||
|
||||
@ -72,7 +72,7 @@ defmodule Pleroma.NotificationTest do
|
||||
|
||||
{:ok, activity} = TwitterAPI.create_status(user, %{"status" => "hey @#{other_user.nickname}"})
|
||||
{:ok, [notification]} = Notification.create_notifications(activity)
|
||||
{:error, notification} = Notification.dismiss(user, notification.id)
|
||||
{:error, _notification} = Notification.dismiss(user, notification.id)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -16,7 +16,7 @@ defmodule Pleroma.ObjectTest do
|
||||
cs = Object.change(%Object{}, %{data: %{id: object.data["id"]}})
|
||||
assert cs.valid?
|
||||
|
||||
{:error, result} = Repo.insert(cs)
|
||||
{:error, _result} = Repo.insert(cs)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
6
test/support/ostatus_mock.ex
Normal file
6
test/support/ostatus_mock.ex
Normal file
@ -0,0 +1,6 @@
|
||||
defmodule Pleroma.Web.OStatusMock do
|
||||
import Pleroma.Factory
|
||||
def handle_incoming(_doc) do
|
||||
insert(:note_activity)
|
||||
end
|
||||
end
|
@ -326,7 +326,7 @@ defmodule Pleroma.UserTest do
|
||||
assert [addressed] == User.get_recipients_from_activity(activity)
|
||||
|
||||
{:ok, user} = User.follow(user, actor)
|
||||
{:ok, user_two} = User.follow(user_two, actor)
|
||||
{:ok, _user_two} = User.follow(user_two, actor)
|
||||
recipients = User.get_recipients_from_activity(activity)
|
||||
assert length(recipients) == 2
|
||||
assert user in recipients
|
||||
|
@ -123,7 +123,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do
|
||||
|
||||
describe "public fetch activities" do
|
||||
test "retrieves public activities" do
|
||||
activities = ActivityPub.fetch_public_activities
|
||||
_activities = ActivityPub.fetch_public_activities
|
||||
|
||||
%{public: public} = ActivityBuilder.public_and_non_public
|
||||
|
||||
|
@ -6,6 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
alias Pleroma.Web.{OStatus, CommonAPI}
|
||||
|
||||
import Pleroma.Factory
|
||||
import ExUnit.CaptureLog
|
||||
|
||||
test "the home timeline", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
@ -31,23 +32,25 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
test "the public timeline", %{conn: conn} do
|
||||
following = insert(:user)
|
||||
|
||||
{:ok, _activity} = TwitterAPI.create_status(following, %{"status" => "test"})
|
||||
{:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
|
||||
capture_log fn ->
|
||||
{:ok, _activity} = TwitterAPI.create_status(following, %{"status" => "test"})
|
||||
{:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
|
||||
|
||||
conn = conn
|
||||
|> get("/api/v1/timelines/public", %{"local" => "False"})
|
||||
conn = conn
|
||||
|> get("/api/v1/timelines/public", %{"local" => "False"})
|
||||
|
||||
assert length(json_response(conn, 200)) == 2
|
||||
assert length(json_response(conn, 200)) == 2
|
||||
|
||||
conn = build_conn()
|
||||
|> get("/api/v1/timelines/public", %{"local" => "True"})
|
||||
conn = build_conn()
|
||||
|> get("/api/v1/timelines/public", %{"local" => "True"})
|
||||
|
||||
assert [%{"content" => "test"}] = json_response(conn, 200)
|
||||
assert [%{"content" => "test"}] = json_response(conn, 200)
|
||||
|
||||
conn = build_conn()
|
||||
|> get("/api/v1/timelines/public", %{"local" => "1"})
|
||||
conn = build_conn()
|
||||
|> get("/api/v1/timelines/public", %{"local" => "1"})
|
||||
|
||||
assert [%{"content" => "test"}] = json_response(conn, 200)
|
||||
assert [%{"content" => "test"}] = json_response(conn, 200)
|
||||
end
|
||||
end
|
||||
|
||||
test "posting a status", %{conn: conn} do
|
||||
@ -144,7 +147,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
other_user = insert(:user)
|
||||
|
||||
{:ok, activity} = TwitterAPI.create_status(other_user, %{"status" => "hi @#{user.nickname}"})
|
||||
{:ok, [notification]} = Notification.create_notifications(activity)
|
||||
{:ok, [_notification]} = Notification.create_notifications(activity)
|
||||
|
||||
conn = conn
|
||||
|> assign(:user, user)
|
||||
@ -190,7 +193,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
other_user = insert(:user)
|
||||
|
||||
{:ok, activity} = TwitterAPI.create_status(other_user, %{"status" => "hi @#{user.nickname}"})
|
||||
{:ok, [notification]} = Notification.create_notifications(activity)
|
||||
{:ok, [_notification]} = Notification.create_notifications(activity)
|
||||
|
||||
conn = conn
|
||||
|> assign(:user, user)
|
||||
@ -338,15 +341,16 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
test "hashtag timeline", %{conn: conn} do
|
||||
following = insert(:user)
|
||||
|
||||
{:ok, activity} = TwitterAPI.create_status(following, %{"status" => "test #2hu"})
|
||||
{:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
|
||||
capture_log fn ->
|
||||
{:ok, activity} = TwitterAPI.create_status(following, %{"status" => "test #2hu"})
|
||||
{:ok, [_activity]} = OStatus.fetch_activity_from_url("https://shitposter.club/notice/2827873")
|
||||
conn = conn
|
||||
|> get("/api/v1/timelines/tag/2hu")
|
||||
|
||||
conn = conn
|
||||
|> get("/api/v1/timelines/tag/2hu")
|
||||
assert [%{"id" => id}] = json_response(conn, 200)
|
||||
|
||||
assert [%{"id" => id}] = json_response(conn, 200)
|
||||
|
||||
assert id == to_string(activity.id)
|
||||
assert id == to_string(activity.id)
|
||||
end
|
||||
end
|
||||
|
||||
test "getting followers", %{conn: conn} do
|
||||
@ -381,14 +385,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
|> assign(:user, user)
|
||||
|> post("/api/v1/accounts/#{other_user.id}/follow")
|
||||
|
||||
assert %{"id" => id, "following" => true} = json_response(conn, 200)
|
||||
assert %{"id" => _id, "following" => true} = json_response(conn, 200)
|
||||
|
||||
user = Repo.get(User, user.id)
|
||||
conn = build_conn()
|
||||
|> assign(:user, user)
|
||||
|> post("/api/v1/accounts/#{other_user.id}/unfollow")
|
||||
|
||||
assert %{"id" => id, "following" => false} = json_response(conn, 200)
|
||||
assert %{"id" => _id, "following" => false} = json_response(conn, 200)
|
||||
|
||||
user = Repo.get(User, user.id)
|
||||
conn = build_conn()
|
||||
@ -407,14 +411,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
|> assign(:user, user)
|
||||
|> post("/api/v1/accounts/#{other_user.id}/block")
|
||||
|
||||
assert %{"id" => id, "blocking" => true} = json_response(conn, 200)
|
||||
assert %{"id" => _id, "blocking" => true} = json_response(conn, 200)
|
||||
|
||||
user = Repo.get(User, user.id)
|
||||
conn = build_conn()
|
||||
|> assign(:user, user)
|
||||
|> post("/api/v1/accounts/#{other_user.id}/unblock")
|
||||
|
||||
assert %{"id" => id, "blocking" => false} = json_response(conn, 200)
|
||||
assert %{"id" => _id, "blocking" => false} = json_response(conn, 200)
|
||||
end
|
||||
|
||||
test "getting a list of blocks", %{conn: conn} do
|
||||
@ -461,7 +465,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
|
||||
test "account search", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
user_two = insert(:user, %{nickname: "shp@shitposter.club"})
|
||||
_user_two = insert(:user, %{nickname: "shp@shitposter.club"})
|
||||
user_three = insert(:user, %{nickname: "shp@heldscal.la", name: "I love 2hu"})
|
||||
|
||||
conn = conn
|
||||
@ -495,12 +499,14 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
end
|
||||
|
||||
test "search fetches remote statuses", %{conn: conn} do
|
||||
conn = conn
|
||||
|> get("/api/v1/search", %{"q" => "https://shitposter.club/notice/2827873"})
|
||||
assert results = json_response(conn, 200)
|
||||
capture_log fn ->
|
||||
conn = conn
|
||||
|> get("/api/v1/search", %{"q" => "https://shitposter.club/notice/2827873"})
|
||||
assert results = json_response(conn, 200)
|
||||
|
||||
[status] = results["statuses"]
|
||||
assert status["uri"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
|
||||
[status] = results["statuses"]
|
||||
assert status["uri"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
|
||||
end
|
||||
end
|
||||
|
||||
test "search fetches remote accounts", %{conn: conn} do
|
||||
@ -530,7 +536,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
end
|
||||
|
||||
describe "updating credentials" do
|
||||
test "updates the user's bio" do
|
||||
test "updates the user's bio", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
conn = conn
|
||||
@ -541,7 +547,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
assert user["note"] == "I drink #cofe"
|
||||
end
|
||||
|
||||
test "updates the user's name" do
|
||||
test "updates the user's name", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
conn = conn
|
||||
@ -552,7 +558,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
assert user["display_name"] == "markorepairs"
|
||||
end
|
||||
|
||||
test "updates the user's avatar" do
|
||||
test "updates the user's avatar", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
new_avatar = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an_image.jpg"}
|
||||
@ -565,7 +571,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
assert user["avatar"] != "https://placehold.it/48x48"
|
||||
end
|
||||
|
||||
test "updates the user's banner" do
|
||||
test "updates the user's banner", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
new_header = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an_image.jpg"}
|
||||
@ -579,7 +585,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
|
||||
end
|
||||
end
|
||||
|
||||
test "get instance information" do
|
||||
test "get instance information", %{conn: conn} do
|
||||
insert(:user, %{local: true})
|
||||
user = insert(:user, %{local: true})
|
||||
insert(:user, %{local: false})
|
||||
|
@ -96,7 +96,7 @@ defmodule Pleroma.Web.OStatus.ActivityRepresenterTest do
|
||||
user = insert(:user)
|
||||
object = Object.get_cached_by_ap_id(note.data["object"]["id"])
|
||||
|
||||
{:ok, announce, object} = ActivityPub.announce(user, object)
|
||||
{:ok, announce, _object} = ActivityPub.announce(user, object)
|
||||
|
||||
announce = Repo.get(Activity, announce.id)
|
||||
|
||||
|
@ -33,6 +33,7 @@ defmodule Pleroma.Web.OStatus.FeedRepresenterTest do
|
||||
<author>
|
||||
#{user_xml}
|
||||
</author>
|
||||
<link rel="next" href="#{OStatus.feed_path(user)}?max_id=#{note_activity.id}" type="application/atom+xml" />
|
||||
<entry>
|
||||
#{entry_xml}
|
||||
</entry>
|
||||
|
@ -12,7 +12,7 @@ defmodule Pleroma.Web.OStatus.DeleteHandlingTest do
|
||||
user = insert(:user)
|
||||
object = Object.get_by_ap_id(note.data["object"]["id"])
|
||||
|
||||
{:ok, like, object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
|
||||
{:ok, like, _object} = Pleroma.Web.ActivityPub.ActivityPub.like(user, object)
|
||||
|
||||
incoming = File.read!("test/fixtures/delete.xml")
|
||||
|> String.replace("tag:mastodon.sdf.org,2017-06-10:objectId=310513:objectType=Status", note.data["object"]["id"])
|
||||
|
@ -84,10 +84,3 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do
|
||||
assert response(conn, 200)
|
||||
end
|
||||
end
|
||||
|
||||
defmodule Pleroma.Web.OStatusMock do
|
||||
import Pleroma.Factory
|
||||
def handle_incoming(_doc) do
|
||||
insert(:note_activity)
|
||||
end
|
||||
end
|
||||
|
@ -4,6 +4,7 @@ defmodule Pleroma.Web.OStatusTest do
|
||||
alias Pleroma.Web.XML
|
||||
alias Pleroma.{Object, Repo, User, Activity}
|
||||
import Pleroma.Factory
|
||||
import ExUnit.CaptureLog
|
||||
|
||||
test "don't insert create notes twice" do
|
||||
incoming = File.read!("test/fixtures/incoming_note_activity.xml")
|
||||
@ -91,7 +92,7 @@ defmodule Pleroma.Web.OStatusTest do
|
||||
|
||||
test "handle incoming retweets - Mastodon, with CW" do
|
||||
incoming = File.read!("test/fixtures/cw_retweet.xml")
|
||||
{:ok, [[activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
|
||||
{:ok, [[_activity, retweeted_activity]]} = OStatus.handle_incoming(incoming)
|
||||
|
||||
assert retweeted_activity.data["object"]["summary"] == "Hey."
|
||||
end
|
||||
@ -168,19 +169,21 @@ defmodule Pleroma.Web.OStatusTest do
|
||||
end
|
||||
|
||||
test "handle incoming favorites - GS, websub" do
|
||||
incoming = File.read!("test/fixtures/favorite.xml")
|
||||
{:ok, [[activity, favorited_activity]]} = OStatus.handle_incoming(incoming)
|
||||
capture_log fn ->
|
||||
incoming = File.read!("test/fixtures/favorite.xml")
|
||||
{:ok, [[activity, favorited_activity]]} = OStatus.handle_incoming(incoming)
|
||||
|
||||
assert activity.data["type"] == "Like"
|
||||
assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
|
||||
assert activity.data["object"] == favorited_activity.data["object"]["id"]
|
||||
assert activity.data["id"] == "tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00"
|
||||
assert activity.data["type"] == "Like"
|
||||
assert activity.data["actor"] == "https://social.heldscal.la/user/23211"
|
||||
assert activity.data["object"] == favorited_activity.data["object"]["id"]
|
||||
assert activity.data["id"] == "tag:social.heldscal.la,2017-05-05:fave:23211:comment:2061643:2017-05-05T09:12:50+00:00"
|
||||
|
||||
refute activity.local
|
||||
assert favorited_activity.data["type"] == "Create"
|
||||
assert favorited_activity.data["actor"] == "https://shitposter.club/user/1"
|
||||
assert favorited_activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
|
||||
refute favorited_activity.local
|
||||
refute activity.local
|
||||
assert favorited_activity.data["type"] == "Create"
|
||||
assert favorited_activity.data["actor"] == "https://shitposter.club/user/1"
|
||||
assert favorited_activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
|
||||
refute favorited_activity.local
|
||||
end
|
||||
end
|
||||
|
||||
test "handle conversation references" do
|
||||
@ -335,11 +338,13 @@ defmodule Pleroma.Web.OStatusTest do
|
||||
|
||||
describe "fetching a status by it's HTML url" do
|
||||
test "it builds a missing status from an html url" do
|
||||
url = "https://shitposter.club/notice/2827873"
|
||||
{:ok, [activity] } = OStatus.fetch_activity_from_url(url)
|
||||
capture_log fn ->
|
||||
url = "https://shitposter.club/notice/2827873"
|
||||
{:ok, [activity] } = OStatus.fetch_activity_from_url(url)
|
||||
|
||||
assert activity.data["actor"] == "https://shitposter.club/user/1"
|
||||
assert activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
|
||||
assert activity.data["actor"] == "https://shitposter.club/user/1"
|
||||
assert activity.data["object"]["id"] == "tag:shitposter.club,2017-05-05:noticeId=2827873:objectType=comment"
|
||||
end
|
||||
end
|
||||
|
||||
test "it works for atom notes, too" do
|
||||
|
@ -35,7 +35,7 @@ defmodule Pleroma.Web.Salmon.SalmonTest do
|
||||
end
|
||||
|
||||
test "it decodes a friendica public key" do
|
||||
key = Salmon.decode_key(@magickey_friendica)
|
||||
_key = Salmon.decode_key(@magickey_friendica)
|
||||
end
|
||||
|
||||
test "returns a public and private key from a pem" do
|
||||
@ -90,7 +90,7 @@ defmodule Pleroma.Web.Salmon.SalmonTest do
|
||||
user = Repo.get_by(User, ap_id: activity.data["actor"])
|
||||
{:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user)
|
||||
|
||||
poster = fn (url, data, headers, options) ->
|
||||
poster = fn (url, _data, _headers, _options) ->
|
||||
assert url == "http://example.org/salmon"
|
||||
end
|
||||
Salmon.publish(user, activity, poster)
|
||||
|
@ -147,7 +147,7 @@ defmodule Pleroma.Web.TwitterAPI.Representers.ActivityRepresenterTest do
|
||||
follower = insert(:user)
|
||||
followed = insert(:user)
|
||||
|
||||
{:ok, follow} = ActivityPub.follow(follower, followed)
|
||||
{:ok, _follow} = ActivityPub.follow(follower, followed)
|
||||
{:ok, unfollow} = ActivityPub.unfollow(follower, followed)
|
||||
|
||||
map = ActivityRepresenter.to_map(unfollow, %{user: follower})
|
||||
|
@ -504,7 +504,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
user = insert(:user)
|
||||
follower_one = insert(:user)
|
||||
follower_two = insert(:user)
|
||||
not_follower = insert(:user)
|
||||
_not_follower = insert(:user)
|
||||
|
||||
{:ok, follower_one} = User.follow(follower_one, user)
|
||||
{:ok, follower_two} = User.follow(follower_two, user)
|
||||
@ -522,7 +522,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
user = insert(:user)
|
||||
followed_one = insert(:user)
|
||||
followed_two = insert(:user)
|
||||
not_followed = insert(:user)
|
||||
_not_followed = insert(:user)
|
||||
|
||||
{:ok, user} = User.follow(user, followed_one)
|
||||
{:ok, user} = User.follow(user, followed_two)
|
||||
@ -538,7 +538,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
user = insert(:user)
|
||||
followed_one = insert(:user)
|
||||
followed_two = insert(:user)
|
||||
not_followed = insert(:user)
|
||||
_not_followed = insert(:user)
|
||||
|
||||
{:ok, user} = User.follow(user, followed_one)
|
||||
{:ok, user} = User.follow(user, followed_two)
|
||||
@ -553,7 +553,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
user = insert(:user)
|
||||
followed_one = insert(:user)
|
||||
followed_two = insert(:user)
|
||||
not_followed = insert(:user)
|
||||
_not_followed = insert(:user)
|
||||
|
||||
{:ok, user} = User.follow(user, followed_one)
|
||||
{:ok, user} = User.follow(user, followed_two)
|
||||
@ -570,7 +570,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
user = insert(:user)
|
||||
followed_one = insert(:user)
|
||||
followed_two = insert(:user)
|
||||
not_followed = insert(:user)
|
||||
_not_followed = insert(:user)
|
||||
|
||||
{:ok, user} = User.follow(user, followed_one)
|
||||
{:ok, user} = User.follow(user, followed_two)
|
||||
@ -585,7 +585,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
end
|
||||
|
||||
describe "POST /api/account/update_profile.json" do
|
||||
test "it updates a user's profile" do
|
||||
test "it updates a user's profile", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
|
||||
conn = conn
|
||||
@ -627,7 +627,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
|
||||
end
|
||||
|
||||
describe "GET /api/statusnet/tags/timeline/:tag.json" do
|
||||
test "it returns the tags timeline" do
|
||||
test "it returns the tags timeline", %{conn: conn} do
|
||||
user = insert(:user)
|
||||
user_two = insert(:user, %{nickname: "shp@shitposter.club"})
|
||||
|
||||
|
@ -247,7 +247,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
|
||||
user = insert(:user)
|
||||
User.block(user, unblocked)
|
||||
|
||||
{:ok, user, unblocked} = TwitterAPI.unblock(user, %{"user_id" => unblocked.id})
|
||||
{:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"user_id" => unblocked.id})
|
||||
assert user.info["blocks"] == []
|
||||
end
|
||||
|
||||
@ -256,7 +256,7 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do
|
||||
user = insert(:user)
|
||||
User.block(user, unblocked)
|
||||
|
||||
{:ok, user, unblocked} = TwitterAPI.unblock(user, %{"screen_name" => unblocked.nickname})
|
||||
{:ok, user, _unblocked} = TwitterAPI.unblock(user, %{"screen_name" => unblocked.nickname})
|
||||
assert user.info["blocks"] == []
|
||||
end
|
||||
|
||||
|
@ -130,7 +130,7 @@ defmodule Pleroma.Web.TwitterAPI.UserViewTest do
|
||||
assert represented == UserView.render("show.json", %{user: follower, for: user})
|
||||
end
|
||||
|
||||
test "A blocked user for the blocker", %{user: user} do
|
||||
test "A blocked user for the blocker" do
|
||||
user = insert(:user)
|
||||
blocker = insert(:user)
|
||||
User.block(blocker, user)
|
||||
|
@ -42,8 +42,7 @@ defmodule Pleroma.Web.WebFingerTest do
|
||||
test "it works for friendica" do
|
||||
user = "lain@squeet.me"
|
||||
|
||||
{:ok, data} = WebFinger.finger(user)
|
||||
|
||||
{:ok, _data} = WebFinger.finger(user)
|
||||
end
|
||||
|
||||
test "it gets the xrd endpoint" do
|
||||
|
@ -74,10 +74,3 @@ defmodule Pleroma.Web.Websub.WebsubControllerTest do
|
||||
assert length(Repo.all(Activity)) == 0
|
||||
end
|
||||
end
|
||||
|
||||
defmodule Pleroma.Web.OStatusMock do
|
||||
import Pleroma.Factory
|
||||
def handle_incoming(_doc) do
|
||||
insert(:note_activity)
|
||||
end
|
||||
end
|
||||
|
@ -174,7 +174,7 @@ defmodule Pleroma.Web.WebsubTest do
|
||||
signed = Websub.sign("secret", "text")
|
||||
assert signed == "B8392C23690CCF871F37EC270BE1582DEC57A503" |> String.downcase
|
||||
|
||||
signed = Websub.sign("secret", [["て"], ['す']])
|
||||
_signed = Websub.sign("secret", [["て"], ['す']])
|
||||
end
|
||||
|
||||
describe "renewing subscriptions" do
|
||||
@ -184,7 +184,7 @@ defmodule Pleroma.Web.WebsubTest do
|
||||
still_good = insert(:websub_client_subscription, %{valid_until: NaiveDateTime.add(now, 2 * day), topic: "http://example.org/still_good", state: "accepted"})
|
||||
needs_refresh = insert(:websub_client_subscription, %{valid_until: NaiveDateTime.add(now, day - 100), topic: "http://example.org/needs_refresh", state: "accepted"})
|
||||
|
||||
refresh = Websub.refresh_subscriptions()
|
||||
_refresh = Websub.refresh_subscriptions()
|
||||
|
||||
assert still_good == Repo.get(WebsubClientSubscription, still_good.id)
|
||||
refute needs_refresh == Repo.get(WebsubClientSubscription, needs_refresh.id)
|
||||
|
Loading…
Reference in New Issue
Block a user