diff options
| author | Roman Chvanikov <chvanikoff@gmail.com> | 2019-04-20 19:43:06 +0700 |
|---|---|---|
| committer | Roman Chvanikov <chvanikoff@gmail.com> | 2019-04-20 19:43:06 +0700 |
| commit | 60f213bb1a6b1627cd8f6bf2903a42c3f3827f1a (patch) | |
| tree | 297f8ad25104db162b4431f887bb23b3e22255e2 /test/object/containment_test.exs | |
| parent | 05cdb2f2389376081973d96b32e876d2a032d1f1 (diff) | |
| parent | 6ca82c18a738205483dbbef2fd4de662d70227fb (diff) | |
| download | pleroma-60f213bb1a6b1627cd8f6bf2903a42c3f3827f1a.tar.gz pleroma-60f213bb1a6b1627cd8f6bf2903a42c3f3827f1a.zip | |
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/digest-email
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 |
