diff options
| author | Roger Braun <roger@rogerbraun.net> | 2017-11-09 08:32:54 +0100 | 
|---|---|---|
| committer | Roger Braun <roger@rogerbraun.net> | 2017-11-09 08:32:54 +0100 | 
| commit | 41b8a76e969e97aef68e7be1f1cdadcb31ea9b1d (patch) | |
| tree | 4fdaedc130ab165e8000e7455fce39ec228a0d77 /test | |
| parent | 77e272df2de41a79bdefcf29035c9d43b59000a5 (diff) | |
| download | pleroma-41b8a76e969e97aef68e7be1f1cdadcb31ea9b1d.tar.gz pleroma-41b8a76e969e97aef68e7be1f1cdadcb31ea9b1d.zip | |
Re-fetch user data on salmon decode error.
Diffstat (limited to 'test')
| -rw-r--r-- | test/web/ostatus/ostatus_controller_test.exs | 41 | 
1 files changed, 40 insertions, 1 deletions
| diff --git a/test/web/ostatus/ostatus_controller_test.exs b/test/web/ostatus/ostatus_controller_test.exs index 77bc202fe..20d17d41f 100644 --- a/test/web/ostatus/ostatus_controller_test.exs +++ b/test/web/ostatus/ostatus_controller_test.exs @@ -1,9 +1,41 @@  defmodule Pleroma.Web.OStatus.OStatusControllerTest do    use Pleroma.Web.ConnCase    import Pleroma.Factory -  alias Pleroma.User +  alias Pleroma.{User, Repo}    alias Pleroma.Web.OStatus.ActivityRepresenter +  test "decodes a salmon", %{conn: conn} do +    user = insert(:user) +    salmon = File.read!("test/fixtures/salmon.xml") +    conn = conn +    |> put_req_header("content-type", "application/atom+xml") +    |> post("/users/#{user.nickname}/salmon", salmon) + +    assert response(conn, 200) +  end + +  test "decodes a salmon with a changed magic key", %{conn: conn} do +    user = insert(:user) +    salmon = File.read!("test/fixtures/salmon.xml") +    conn = conn +    |> put_req_header("content-type", "application/atom+xml") +    |> post("/users/#{user.nickname}/salmon", salmon) + +    assert response(conn, 200) + +    # Set a wrong magic-key for a user so it has to refetch +    salmon_user = User.get_by_ap_id("http://gs.example.org:4040/index.php/user/1") +    info = salmon_user.info +    |> Map.put("magic_key", "RSA.pu0s-halox4tu7wmES1FVSx6u-4wc0YrUFXcqWXZG4-27UmbCOpMQftRCldNRfyA-qLbz-eqiwrong1EwUvjsD4cYbAHNGHwTvDOyx5AKthQUP44ykPv7kjKGh3DWKySJvcs9tlUG87hlo7AvnMo9pwRS_Zz2CacQ-MKaXyDepk=.AQAB") # Wrong key +    Repo.update(User.info_changeset(salmon_user, %{info: info})) + +    conn = build_conn() +    |> put_req_header("content-type", "application/atom+xml") +    |> post("/users/#{user.nickname}/salmon", salmon) + +    assert response(conn, 200) +  end +    test "gets a feed", %{conn: conn} do      note_activity = insert(:note_activity)      user = User.get_cached_by_ap_id(note_activity.data["actor"]) @@ -42,3 +74,10 @@ 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 | 
