diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/media_proxy_test.exs | 16 | ||||
| -rw-r--r-- | test/web/mastodon_api/mastodon_api_controller_test.exs | 12 | ||||
| -rw-r--r-- | test/web/metadata/player_view_test.exs | 33 | ||||
| -rw-r--r-- | test/web/metadata/twitter_card_test.exs | 123 | 
4 files changed, 166 insertions, 18 deletions
diff --git a/test/media_proxy_test.exs b/test/media_proxy_test.exs index 1d6d170b7..fbf200931 100644 --- a/test/media_proxy_test.exs +++ b/test/media_proxy_test.exs @@ -88,10 +88,10 @@ defmodule Pleroma.MediaProxyTest do        assert decode_url(sig, base64) == {:error, :invalid_signature}      end -    test "filename_matches matches url encoded paths" do +    test "filename_matches preserves the encoded or decoded path" do        assert MediaProxyController.filename_matches(                 true, -               "/Hello%20world.jpg", +               "/Hello world.jpg",                 "http://pleroma.social/Hello world.jpg"               ) == :ok @@ -100,19 +100,11 @@ defmodule Pleroma.MediaProxyTest do                 "/Hello%20world.jpg",                 "http://pleroma.social/Hello%20world.jpg"               ) == :ok -    end -    test "filename_matches matches non-url encoded paths" do        assert MediaProxyController.filename_matches(                 true, -               "/Hello world.jpg", -               "http://pleroma.social/Hello%20world.jpg" -             ) == :ok - -      assert MediaProxyController.filename_matches( -               true, -               "/Hello world.jpg", -               "http://pleroma.social/Hello world.jpg" +               "/my%2Flong%2Furl%2F2019%2F07%2FS.jpg", +               "http://pleroma.social/my%2Flong%2Furl%2F2019%2F07%2FS.jpg"               ) == :ok      end diff --git a/test/web/mastodon_api/mastodon_api_controller_test.exs b/test/web/mastodon_api/mastodon_api_controller_test.exs index 8afb1497b..b7c050dbf 100644 --- a/test/web/mastodon_api/mastodon_api_controller_test.exs +++ b/test/web/mastodon_api/mastodon_api_controller_test.exs @@ -593,7 +593,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      conn =        conn        |> assign(:user, user) -      |> patch("/api/v1/accounts/update_avatar", %{img: avatar_image}) +      |> patch("/api/v1/pleroma/accounts/update_avatar", %{img: avatar_image})      user = refresh_record(user) @@ -618,7 +618,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      conn =        conn        |> assign(:user, user) -      |> patch("/api/v1/accounts/update_avatar", %{img: ""}) +      |> patch("/api/v1/pleroma/accounts/update_avatar", %{img: ""})      user = User.get_cached_by_id(user.id) @@ -633,7 +633,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      conn =        conn        |> assign(:user, user) -      |> patch("/api/v1/accounts/update_banner", %{"banner" => @image}) +      |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => @image})      user = refresh_record(user)      assert user.info.banner["type"] == "Image" @@ -647,7 +647,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      conn =        conn        |> assign(:user, user) -      |> patch("/api/v1/accounts/update_banner", %{"banner" => ""}) +      |> patch("/api/v1/pleroma/accounts/update_banner", %{"banner" => ""})      user = refresh_record(user)      assert user.info.banner == %{} @@ -661,7 +661,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      conn =        conn        |> assign(:user, user) -      |> patch("/api/v1/accounts/update_background", %{"img" => @image}) +      |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => @image})      user = refresh_record(user)      assert user.info.background["type"] == "Image" @@ -674,7 +674,7 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do      conn =        conn        |> assign(:user, user) -      |> patch("/api/v1/accounts/update_background", %{"img" => ""}) +      |> patch("/api/v1/pleroma/accounts/update_background", %{"img" => ""})      user = refresh_record(user)      assert user.info.background == %{} diff --git a/test/web/metadata/player_view_test.exs b/test/web/metadata/player_view_test.exs new file mode 100644 index 000000000..742b0ed8b --- /dev/null +++ b/test/web/metadata/player_view_test.exs @@ -0,0 +1,33 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Metadata.PlayerViewTest do +  use Pleroma.DataCase + +  alias Pleroma.Web.Metadata.PlayerView + +  test "it renders audio tag" do +    res = +      PlayerView.render( +        "player.html", +        %{"mediaType" => "audio", "href" => "test-href"} +      ) +      |> Phoenix.HTML.safe_to_string() + +    assert res == +             "<audio controls><source src=\"test-href\" type=\"audio\">Your browser does not support audio playback.</audio>" +  end + +  test "it renders videos tag" do +    res = +      PlayerView.render( +        "player.html", +        %{"mediaType" => "video", "href" => "test-href"} +      ) +      |> Phoenix.HTML.safe_to_string() + +    assert res == +             "<video controls loop><source src=\"test-href\" type=\"video\">Your browser does not support video playback.</video>" +  end +end diff --git a/test/web/metadata/twitter_card_test.exs b/test/web/metadata/twitter_card_test.exs new file mode 100644 index 000000000..0814006d2 --- /dev/null +++ b/test/web/metadata/twitter_card_test.exs @@ -0,0 +1,123 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Metadata.Providers.TwitterCardTest do +  use Pleroma.DataCase +  import Pleroma.Factory + +  alias Pleroma.User +  alias Pleroma.Web.CommonAPI +  alias Pleroma.Web.Endpoint +  alias Pleroma.Web.Metadata.Providers.TwitterCard +  alias Pleroma.Web.Metadata.Utils +  alias Pleroma.Web.Router + +  test "it renders twitter card for user info" do +    user = insert(:user, name: "Jimmy Hendriks", bio: "born 19 March 1994") +    avatar_url = Utils.attachment_url(User.avatar_url(user)) +    res = TwitterCard.build_tags(%{user: user}) + +    assert res == [ +             {:meta, [property: "twitter:title", content: Utils.user_name_string(user)], []}, +             {:meta, [property: "twitter:description", content: "born 19 March 1994"], []}, +             {:meta, [property: "twitter:image", content: avatar_url], []}, +             {:meta, [property: "twitter:card", content: "summary"], []} +           ] +  end + +  test "it does not render attachments if post is nsfw" do +    Pleroma.Config.put([Pleroma.Web.Metadata, :unfurl_nsfw], false) +    user = insert(:user, name: "Jimmy Hendriks", bio: "born 19 March 1994") +    {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) + +    note = +      insert(:note, %{ +        data: %{ +          "actor" => user.ap_id, +          "tag" => [], +          "id" => "https://pleroma.gov/objects/whatever", +          "content" => "pleroma in a nutshell", +          "sensitive" => true, +          "attachment" => [ +            %{ +              "url" => [%{"mediaType" => "image/png", "href" => "https://pleroma.gov/tenshi.png"}] +            }, +            %{ +              "url" => [ +                %{ +                  "mediaType" => "application/octet-stream", +                  "href" => "https://pleroma.gov/fqa/badapple.sfc" +                } +              ] +            }, +            %{ +              "url" => [ +                %{"mediaType" => "video/webm", "href" => "https://pleroma.gov/about/juche.webm"} +              ] +            } +          ] +        } +      }) + +    result = TwitterCard.build_tags(%{object: note, user: user, activity_id: activity.id}) + +    assert [ +             {:meta, [property: "twitter:title", content: Utils.user_name_string(user)], []}, +             {:meta, [property: "twitter:description", content: "“pleroma in a nutshell”"], []}, +             {:meta, [property: "twitter:image", content: "http://localhost:4001/images/avi.png"], +              []}, +             {:meta, [property: "twitter:card", content: "summary_large_image"], []} +           ] == result +  end + +  test "it renders supported types of attachments and skips unknown types" do +    user = insert(:user, name: "Jimmy Hendriks", bio: "born 19 March 1994") +    {:ok, activity} = CommonAPI.post(user, %{"status" => "HI"}) + +    note = +      insert(:note, %{ +        data: %{ +          "actor" => user.ap_id, +          "tag" => [], +          "id" => "https://pleroma.gov/objects/whatever", +          "content" => "pleroma in a nutshell", +          "attachment" => [ +            %{ +              "url" => [%{"mediaType" => "image/png", "href" => "https://pleroma.gov/tenshi.png"}] +            }, +            %{ +              "url" => [ +                %{ +                  "mediaType" => "application/octet-stream", +                  "href" => "https://pleroma.gov/fqa/badapple.sfc" +                } +              ] +            }, +            %{ +              "url" => [ +                %{"mediaType" => "video/webm", "href" => "https://pleroma.gov/about/juche.webm"} +              ] +            } +          ] +        } +      }) + +    result = TwitterCard.build_tags(%{object: note, user: user, activity_id: activity.id}) + +    assert [ +             {:meta, [property: "twitter:title", content: Utils.user_name_string(user)], []}, +             {:meta, [property: "twitter:description", content: "“pleroma in a nutshell”"], []}, +             {:meta, [property: "twitter:card", content: "summary_large_image"], []}, +             {:meta, [property: "twitter:player", content: "https://pleroma.gov/tenshi.png"], []}, +             {:meta, [property: "twitter:card", content: "player"], []}, +             {:meta, +              [ +                property: "twitter:player", +                content: Router.Helpers.o_status_url(Endpoint, :notice_player, activity.id) +              ], []}, +             {:meta, [property: "twitter:player:width", content: "480"], []}, +             {:meta, [property: "twitter:player:height", content: "480"], []} +           ] == result +  end +end  | 
