diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/emails/admin_email_test.exs | 4 | ||||
| -rw-r--r-- | test/user_test.exs | 4 | ||||
| -rw-r--r-- | test/web/feed/tag_controller_test.exs | 101 | ||||
| -rw-r--r-- | test/web/feed/user_controller_test.exs (renamed from test/web/feed/feed_controller_test.exs) | 8 | 
4 files changed, 109 insertions, 8 deletions
| diff --git a/test/emails/admin_email_test.exs b/test/emails/admin_email_test.exs index ad89f9213..383cc3459 100644 --- a/test/emails/admin_email_test.exs +++ b/test/emails/admin_email_test.exs @@ -19,8 +19,8 @@ defmodule Pleroma.Emails.AdminEmailTest do        AdminEmail.report(to_user, reporter, account, [%{name: "Test", id: "12"}], "Test comment")      status_url = Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, "12") -    reporter_url = Helpers.feed_url(Pleroma.Web.Endpoint, :feed_redirect, reporter.id) -    account_url = Helpers.feed_url(Pleroma.Web.Endpoint, :feed_redirect, account.id) +    reporter_url = Helpers.user_feed_url(Pleroma.Web.Endpoint, :feed_redirect, reporter.id) +    account_url = Helpers.user_feed_url(Pleroma.Web.Endpoint, :feed_redirect, account.id)      assert res.to == [{to_user.name, to_user.email}]      assert res.from == {config[:name], config[:notify_email]} diff --git a/test/user_test.exs b/test/user_test.exs index 9da1e02a9..190b03645 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -585,7 +585,7 @@ defmodule Pleroma.UserTest do      user = insert(:user)      assert User.ap_id(user) == -             Pleroma.Web.Router.Helpers.feed_url( +             Pleroma.Web.Router.Helpers.user_feed_url(                 Pleroma.Web.Endpoint,                 :feed_redirect,                 user.nickname @@ -596,7 +596,7 @@ defmodule Pleroma.UserTest do      user = insert(:user)      assert User.ap_followers(user) == -             Pleroma.Web.Router.Helpers.feed_url( +             Pleroma.Web.Router.Helpers.user_feed_url(                 Pleroma.Web.Endpoint,                 :feed_redirect,                 user.nickname diff --git a/test/web/feed/tag_controller_test.exs b/test/web/feed/tag_controller_test.exs new file mode 100644 index 000000000..a56a18738 --- /dev/null +++ b/test/web/feed/tag_controller_test.exs @@ -0,0 +1,101 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Feed.TagControllerTest do +  use Pleroma.Web.ConnCase + +  import Pleroma.Factory +  import SweetXml + +  alias Pleroma.Web.Feed.FeedView + +  clear_config([:feed]) + +  test "gets a feed", %{conn: conn} do +    Pleroma.Config.put( +      [:feed, :post_title], +      %{max_length: 25, omission: "..."} +    ) + +    user = insert(:user) +    {:ok, activity1} = Pleroma.Web.CommonAPI.post(user, %{"status" => "yeah #PleromaArt"}) + +    object = Pleroma.Object.normalize(activity1) + +    object_data = +      Map.put(object.data, "attachment", [ +        %{ +          "url" => [ +            %{ +              "href" => +                "https://peertube.moe/static/webseed/df5f464b-be8d-46fb-ad81-2d4c2d1630e3-480.mp4", +              "mediaType" => "video/mp4", +              "type" => "Link" +            } +          ] +        } +      ]) + +    object +    |> Ecto.Changeset.change(data: object_data) +    |> Pleroma.Repo.update() + +    {:ok, activity2} = +      Pleroma.Web.CommonAPI.post(user, %{"status" => "42 This is :moominmamma #PleromaArt"}) + +    {:ok, _activity3} = Pleroma.Web.CommonAPI.post(user, %{"status" => "This is :moominmamma"}) + +    response = +      conn +      |> put_req_header("content-type", "application/atom+xml") +      |> get(tag_feed_path(conn, :feed, "pleromaart.rss")) +      |> response(200) + +    xml = parse(response) +    assert xpath(xml, ~x"//channel/title/text()") == '#pleromaart' + +    assert xpath(xml, ~x"//channel/description/text()"s) == +             "These are public toots tagged with #pleromaart. You can interact with them if you have an account anywhere in the fediverse." + +    assert xpath(xml, ~x"//channel/link/text()") == +             '#{Pleroma.Web.base_url()}/tags/pleromaart.rss' + +    assert xpath(xml, ~x"//channel/webfeeds:logo/text()") == +             '#{Pleroma.Web.base_url()}/static/logo.png' + +    assert xpath(xml, ~x"//channel/item/title/text()"l) == [ +             '42 This is :moominmamm...', +             'yeah #PleromaArt' +           ] + +    assert xpath(xml, ~x"//channel/item/pubDate/text()"sl) == [ +             FeedView.pub_date(activity1.data["published"]), +             FeedView.pub_date(activity2.data["published"]) +           ] + +    assert xpath(xml, ~x"//channel/item/enclosure/@url"sl) == [ +             "https://peertube.moe/static/webseed/df5f464b-be8d-46fb-ad81-2d4c2d1630e3-480.mp4" +           ] + +    obj1 = Pleroma.Object.normalize(activity1) +    obj2 = Pleroma.Object.normalize(activity2) + +    assert xpath(xml, ~x"//channel/item/description/text()"sl) == [ +             HtmlEntities.decode(FeedView.activity_content(obj2)), +             HtmlEntities.decode(FeedView.activity_content(obj1)) +           ] + +    response = +      conn +      |> put_req_header("content-type", "application/atom+xml") +      |> get(tag_feed_path(conn, :feed, "pleromaart")) +      |> response(200) + +    xml = parse(response) +    assert xpath(xml, ~x"//channel/title/text()") == '#pleromaart' + +    assert xpath(xml, ~x"//channel/description/text()"s) == +             "These are public toots tagged with #pleromaart. You can interact with them if you have an account anywhere in the fediverse." +  end +end diff --git a/test/web/feed/feed_controller_test.exs b/test/web/feed/user_controller_test.exs index 6f61acf43..41cc9e07e 100644 --- a/test/web/feed/feed_controller_test.exs +++ b/test/web/feed/user_controller_test.exs @@ -2,7 +2,7 @@  # Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only -defmodule Pleroma.Web.Feed.FeedControllerTest do +defmodule Pleroma.Web.Feed.UserControllerTest do    use Pleroma.Web.ConnCase    import Pleroma.Factory @@ -49,7 +49,7 @@ defmodule Pleroma.Web.Feed.FeedControllerTest do      resp =        conn        |> put_req_header("content-type", "application/atom+xml") -      |> get("/users/#{user.nickname}/feed.atom") +      |> get(user_feed_path(conn, :feed, user.nickname))        |> response(200)      activity_titles = @@ -65,7 +65,7 @@ defmodule Pleroma.Web.Feed.FeedControllerTest do      conn =        conn        |> put_req_header("content-type", "application/atom+xml") -      |> get("/users/nonexisting/feed.atom") +      |> get(user_feed_path(conn, :feed, "nonexisting"))      assert response(conn, 404)    end @@ -91,7 +91,7 @@ defmodule Pleroma.Web.Feed.FeedControllerTest do        response =          conn          |> put_req_header("accept", "application/xml") -        |> get("/users/jimm") +        |> get(user_feed_path(conn, :feed, "jimm"))          |> response(404)        assert response == ~S({"error":"Not found"}) | 
