diff options
| author | lain <lain@soykaf.club> | 2019-05-01 18:40:41 +0200 |
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-05-01 18:40:41 +0200 |
| commit | 45f790becc2cc63ac000c6432fe8c84e0b589822 (patch) | |
| tree | 724d0e8ce5f10807cc25efc2434454bf38c5a52c /test/object/containment_test.exs | |
| parent | 4908e0eeee2ecb58b204198c20720d52548b6f4a (diff) | |
| parent | d107919b3d8b2275ddb7b17846cab182682098a7 (diff) | |
| download | pleroma-45f790becc2cc63ac000c6432fe8c84e0b589822.tar.gz pleroma-45f790becc2cc63ac000c6432fe8c84e0b589822.zip | |
Merge remote-tracking branch 'origin/develop' into conversations_three
Diffstat (limited to 'test/object/containment_test.exs')
| -rw-r--r-- | test/object/containment_test.exs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/object/containment_test.exs b/test/object/containment_test.exs new file mode 100644 index 000000000..452064093 --- /dev/null +++ b/test/object/containment_test.exs @@ -0,0 +1,58 @@ +defmodule Pleroma.Object.ContainmentTest do + use Pleroma.DataCase + + alias Pleroma.Object.Containment + alias Pleroma.User + + import Pleroma.Factory + + describe "general origin containment" do + test "contain_origin_from_id() catches obvious spoofing attempts" do + data = %{ + "id" => "http://example.com/~alyssa/activities/1234.json" + } + + :error = + Containment.contain_origin_from_id( + "http://example.org/~alyssa/activities/1234.json", + data + ) + end + + test "contain_origin_from_id() allows alternate IDs within the same origin domain" do + data = %{ + "id" => "http://example.com/~alyssa/activities/1234.json" + } + + :ok = + Containment.contain_origin_from_id( + "http://example.com/~alyssa/activities/1234", + data + ) + end + + test "contain_origin_from_id() allows matching IDs" do + data = %{ + "id" => "http://example.com/~alyssa/activities/1234.json" + } + + :ok = + Containment.contain_origin_from_id( + "http://example.com/~alyssa/activities/1234.json", + data + ) + end + + test "users cannot be collided through fake direction spoofing attempts" do + _user = + insert(:user, %{ + nickname: "rye@niu.moe", + local: false, + ap_id: "https://niu.moe/users/rye", + follower_address: User.ap_followers(%User{nickname: "rye@niu.moe"}) + }) + + {:error, _} = User.get_or_fetch_by_ap_id("https://n1u.moe/users/rye") + end + end +end |
