X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fweb%2Factivity_pub%2Factivity_pub_test.exs;h=2c6f67621d23a6220e4c494e65bbf9d3284e1da5;hb=65ef18a7157f8cfcc494ad7a72ce083e79e38d26;hp=754bd72f3151e08292a0195e35e967f8b5e2e26c;hpb=569d9bac178f22e763afc9db5000415bebf70304;p=akkoma diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index 754bd72f3..2c6f67621 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -1,26 +1,48 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do use Pleroma.DataCase alias Pleroma.Web.ActivityPub.ActivityPub - alias Pleroma.Activity + alias Pleroma.{Activity, Object} alias Pleroma.Builders.ActivityBuilder describe "insertion" do - test "inserts a given map into the activity database" do + test "inserts a given map into the activity database, giving it an id if it has none." do data = %{ - ok: true + "ok" => true } {:ok, %Activity{} = activity} = ActivityPub.insert(data) - assert activity.data == data + assert activity.data["ok"] == data["ok"] + assert is_binary(activity.data["id"]) + + given_id = "bla" + data = %{ + "ok" => true, + "id" => given_id + } + + {:ok, %Activity{} = activity} = ActivityPub.insert(data) + assert activity.data["ok"] == data["ok"] + assert activity.data["id"] == given_id end - end + test "adds an id to a given object if it lacks one and inserts it to the object database" do + data = %{ + "object" => %{ + "ok" => true + } + } + + {:ok, %Activity{} = activity} = ActivityPub.insert(data) + assert is_binary(activity.data["object"]["id"]) + assert %Object{} = Object.get_by_ap_id(activity.data["object"]["id"]) + end + end describe "fetch activities for recipients" do test "retrieve the activities for certain recipients" do {:ok, activity_one} = ActivityBuilder.insert(%{"to" => ["someone"]}) {:ok, activity_two} = ActivityBuilder.insert(%{"to" => ["someone_else"]}) - {:ok, activity_three} = ActivityBuilder.insert(%{"to" => ["noone"]}) + {:ok, _activity_three} = ActivityBuilder.insert(%{"to" => ["noone"]}) activities = ActivityPub.fetch_activities(["someone", "someone_else"]) assert length(activities) == 2 @@ -28,6 +50,18 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do end end + describe "fetch activities in context" do + test "retrieves activities that have a given context" do + {:ok, activity} = ActivityBuilder.insert(%{"context" => "2hu"}) + {:ok, activity_two} = ActivityBuilder.insert(%{"context" => "2hu"}) + {:ok, _activity_three} = ActivityBuilder.insert(%{"context" => "3hu"}) + + activities = ActivityPub.fetch_activities_for_context("2hu") + + assert activities == [activity, activity_two] + end + end + describe "public fetch activities" do test "retrieves public activities" do %{public: public} = ActivityBuilder.public_and_non_public @@ -61,4 +95,13 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubTest do assert last == last_expected end end + + describe "uploading files" do + test "copies the file to the configured folder" do + file = %Plug.Upload{content_type: "image/jpg", path: Path.absname("test/fixtures/image.jpg"), filename: "an_image.jpg"} + + {:ok, %Object{} = object} = ActivityPub.upload(file) + assert object.data["name"] == "an_image.jpg" + end + end end