summaryrefslogtreecommitdiff
path: root/test/web
diff options
context:
space:
mode:
Diffstat (limited to 'test/web')
-rw-r--r--test/web/ostatus/ostatus_test.exs20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/web/ostatus/ostatus_test.exs b/test/web/ostatus/ostatus_test.exs
index 3951dbc9c..1674edbd5 100644
--- a/test/web/ostatus/ostatus_test.exs
+++ b/test/web/ostatus/ostatus_test.exs
@@ -1,6 +1,7 @@
defmodule Pleroma.Web.OStatusTest do
use Pleroma.DataCase
alias Pleroma.Web.OStatus
+ alias Pleroma.Web.XML
test "don't insert create notes twice" do
incoming = File.read!("test/fixtures/incoming_note_activity.xml")
@@ -71,6 +72,25 @@ defmodule Pleroma.Web.OStatusTest do
assert user == user_again
end
+
+ test "find_make_or_update_user takes an author element and returns an updated user" do
+ # TODO make test local
+ uri = "https://social.heldscal.la/user/23211"
+
+ {:ok, user} = OStatus.find_or_make_user(uri)
+ change = Ecto.Changeset.change(user, %{avatar: nil})
+
+ {:ok, user} = Repo.update(change)
+ refute user.avatar
+
+ doc = XML.parse_document(File.read!("test/fixtures/23211.atom"))
+ [author] = :xmerl_xpath.string('//author[1]', doc)
+ {:ok, user} = OStatus.find_make_or_update_user(author)
+ assert user.avatar["type"] == "Image"
+
+ {:ok, user_again} = OStatus.find_make_or_update_user(author)
+ assert user_again == user
+ end
end
describe "gathering user info from a user id" do