diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/fixtures/png_with_transparency.png | bin | 0 -> 84250 bytes | |||
| -rw-r--r-- | test/pleroma/instances/instance_test.exs | 8 | ||||
| -rw-r--r-- | test/pleroma/upload/filter/analyze_metadata_test.exs | 14 | ||||
| -rw-r--r-- | test/pleroma/web/activity_pub/utils_test.exs | 35 | ||||
| -rw-r--r-- | test/pleroma/web/endpoint/metrics_exporter_test.exs | 69 | ||||
| -rw-r--r-- | test/pleroma/web/fallback_test.exs | 41 | ||||
| -rw-r--r-- | test/pleroma/web/mastodon_api/views/account_view_test.exs | 5 | ||||
| -rw-r--r-- | test/pleroma/web/o_status/o_status_controller_test.exs | 2 | ||||
| -rw-r--r-- | test/pleroma/web/pleroma_api/controllers/scrobble_controller_test.exs | 12 | 
9 files changed, 79 insertions, 107 deletions
| diff --git a/test/fixtures/png_with_transparency.png b/test/fixtures/png_with_transparency.pngBinary files differ new file mode 100644 index 000000000..7963149db --- /dev/null +++ b/test/fixtures/png_with_transparency.png diff --git a/test/pleroma/instances/instance_test.exs b/test/pleroma/instances/instance_test.exs index a769f9362..6a718be21 100644 --- a/test/pleroma/instances/instance_test.exs +++ b/test/pleroma/instances/instance_test.exs @@ -31,14 +31,6 @@ defmodule Pleroma.Instances.InstanceTest do        assert {:ok, instance} = Instance.set_reachable(instance.host)        refute instance.unreachable_since      end - -    test "does NOT create an Instance record in case of no existing matching record" do -      host = "domain.org" -      assert nil == Instance.set_reachable(host) - -      assert [] = Repo.all(Ecto.Query.from(i in Instance)) -      assert Instance.reachable?(host) -    end    end    describe "set_unreachable/1" do diff --git a/test/pleroma/upload/filter/analyze_metadata_test.exs b/test/pleroma/upload/filter/analyze_metadata_test.exs index b800a4a43..e4ac673b2 100644 --- a/test/pleroma/upload/filter/analyze_metadata_test.exs +++ b/test/pleroma/upload/filter/analyze_metadata_test.exs @@ -20,6 +20,20 @@ defmodule Pleroma.Upload.Filter.AnalyzeMetadataTest do      assert meta.blurhash    end +  test "it blurhashes images with an alpha component" do +    upload = %Pleroma.Upload{ +      name: "an… image.jpg", +      content_type: "image/jpeg", +      path: Path.absname("test/fixtures/png_with_transparency.png"), +      tempfile: Path.absname("test/fixtures/png_with_transparency.png") +    } + +    {:ok, :filtered, meta} = AnalyzeMetadata.filter(upload) + +    assert %{width: 320, height: 320} = meta +    assert meta.blurhash == "eXJi-E:SwCEm5rCmn$+YWYn+15K#5A$xxCi{SiV]s*W:Efa#s.jE-T" +  end +    test "adds the dimensions for videos" do      upload = %Pleroma.Upload{        name: "coolvideo.mp4", diff --git a/test/pleroma/web/activity_pub/utils_test.exs b/test/pleroma/web/activity_pub/utils_test.exs index 3f93c872b..9ca21f5d9 100644 --- a/test/pleroma/web/activity_pub/utils_test.exs +++ b/test/pleroma/web/activity_pub/utils_test.exs @@ -16,6 +16,41 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do    require Pleroma.Constants +  describe "strip_report_status_data/1" do +    test "does not break on issues with the reported activites" do +      reporter = insert(:user) +      target_account = insert(:user) +      {:ok, activity} = CommonAPI.post(target_account, %{status: "foobar"}) +      context = Utils.generate_context_id() +      content = "foobar" +      post_id = activity.data["id"] + +      res = +        Utils.make_flag_data( +          %{ +            actor: reporter, +            context: context, +            account: target_account, +            statuses: [%{"id" => post_id}], +            content: content +          }, +          %{} +        ) + +      res = +        res +        |> Map.put("object", res["object"] ++ [nil, 1, 5, "123"]) + +      {:ok, activity} = Pleroma.Web.ActivityPub.ActivityPub.insert(res) + +      [user_id, object | _] = activity.data["object"] + +      {:ok, stripped} = Utils.strip_report_status_data(activity) + +      assert stripped.data["object"] == [user_id, object["id"]] +    end +  end +    describe "fetch the latest Follow" do      test "fetches the latest Follow activity" do        %Activity{data: %{"type" => "Follow"}} = activity = insert(:follow_activity) diff --git a/test/pleroma/web/endpoint/metrics_exporter_test.exs b/test/pleroma/web/endpoint/metrics_exporter_test.exs deleted file mode 100644 index ad236d4cb..000000000 --- a/test/pleroma/web/endpoint/metrics_exporter_test.exs +++ /dev/null @@ -1,69 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/> -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.Endpoint.MetricsExporterTest do -  # Modifies AppEnv, has to stay synchronous -  use Pleroma.Web.ConnCase - -  alias Pleroma.Web.Endpoint.MetricsExporter - -  defp config do -    Application.get_env(:prometheus, MetricsExporter) -  end - -  describe "with default config" do -    test "does NOT expose app metrics", %{conn: conn} do -      conn -      |> get(config()[:path]) -      |> json_response(404) -    end -  end - -  describe "when enabled" do -    setup do -      initial_config = config() -      on_exit(fn -> Application.put_env(:prometheus, MetricsExporter, initial_config) end) - -      Application.put_env( -        :prometheus, -        MetricsExporter, -        Keyword.put(initial_config, :enabled, true) -      ) -    end - -    test "serves app metrics", %{conn: conn} do -      conn = get(conn, config()[:path]) -      assert response = response(conn, 200) - -      for metric <- [ -            "http_requests_total", -            "http_request_duration_microseconds", -            "phoenix_controller_call_duration", -            "telemetry_scrape_duration", -            "erlang_vm_memory_atom_bytes_total" -          ] do -        assert response =~ ~r/#{metric}/ -      end -    end - -    test "when IP whitelist configured, " <> -           "serves app metrics only if client IP is whitelisted", -         %{conn: conn} do -      Application.put_env( -        :prometheus, -        MetricsExporter, -        Keyword.put(config(), :ip_whitelist, ["127.127.127.127", {1, 1, 1, 1}, '255.255.255.255']) -      ) - -      conn -      |> get(config()[:path]) -      |> json_response(404) - -      conn -      |> Map.put(:remote_ip, {127, 127, 127, 127}) -      |> get(config()[:path]) -      |> response(200) -    end -  end -end diff --git a/test/pleroma/web/fallback_test.exs b/test/pleroma/web/fallback_test.exs index 6d11d4f37..ed34d6490 100644 --- a/test/pleroma/web/fallback_test.exs +++ b/test/pleroma/web/fallback_test.exs @@ -6,20 +6,6 @@ defmodule Pleroma.Web.FallbackTest do    use Pleroma.Web.ConnCase    import Pleroma.Factory -  describe "neither preloaded data nor metadata attached to" do -    test "GET /registration/:token", %{conn: conn} do -      response = get(conn, "/registration/foo") - -      assert html_response(response, 200) =~ "<!--server-generated-meta-->" -    end - -    test "GET /*path", %{conn: conn} do -      assert conn -             |> get("/foo") -             |> html_response(200) =~ "<!--server-generated-meta-->" -    end -  end -    test "GET /*path adds a title", %{conn: conn} do      clear_config([:instance, :name], "a cool title") @@ -29,21 +15,28 @@ defmodule Pleroma.Web.FallbackTest do    end    describe "preloaded data and metadata attached to" do -    test "GET /:maybe_nickname_or_id", %{conn: conn} do +    test "GET /:maybe_nickname_or_id with existing user", %{conn: conn} do        clear_config([:instance, :name], "a cool title") -        user = insert(:user) -      user_missing = get(conn, "/foo") -      user_present = get(conn, "/#{user.nickname}") -      assert html_response(user_missing, 200) =~ "<!--server-generated-meta-->" -      refute html_response(user_present, 200) =~ "<!--server-generated-meta-->" -      assert html_response(user_present, 200) =~ "initial-results" -      assert html_response(user_present, 200) =~ "<title>a cool title</title>" +      resp = get(conn, "/#{user.nickname}") + +      assert html_response(resp, 200) =~ "<title>a cool title</title>" +      refute html_response(resp, 200) =~ "<!--server-generated-meta-->" +      assert html_response(resp, 200) =~ "initial-results" +    end + +    test "GET /:maybe_nickname_or_id with missing user", %{conn: conn} do +      clear_config([:instance, :name], "a cool title") + +      resp = get(conn, "/foo") + +      assert html_response(resp, 200) =~ "<title>a cool title</title>" +      refute html_response(resp, 200) =~ "initial-results"      end      test "GET /*path", %{conn: conn} do -      assert conn +      refute conn               |> get("/foo")               |> html_response(200) =~ "<!--server-generated-meta-->" @@ -65,10 +58,12 @@ defmodule Pleroma.Web.FallbackTest do      end      test "GET /main/all", %{conn: conn} do +      clear_config([:instance, :name], "a cool title")        public_page = get(conn, "/main/all")        refute html_response(public_page, 200) =~ "<!--server-generated-meta-->"        assert html_response(public_page, 200) =~ "initial-results" +      assert html_response(public_page, 200) =~ "<title>a cool title</title>"      end    end diff --git a/test/pleroma/web/mastodon_api/views/account_view_test.exs b/test/pleroma/web/mastodon_api/views/account_view_test.exs index 3bb4970ca..d5b8ad8b0 100644 --- a/test/pleroma/web/mastodon_api/views/account_view_test.exs +++ b/test/pleroma/web/mastodon_api/views/account_view_test.exs @@ -35,7 +35,8 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do          inserted_at: ~N[2017-08-15 15:47:06.597036],          emoji: %{"karjalanpiirakka" => "/file.png"},          raw_bio: "valid html. a\nb\nc\nd\nf '&<>\"", -        also_known_as: ["https://shitposter.zone/users/shp"] +        also_known_as: ["https://shitposter.zone/users/shp"], +        last_status_at: NaiveDateTime.utc_now()        })      expected = %{ @@ -74,7 +75,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountViewTest do          fields: []        },        fqn: "shp@shitposter.club", -      last_status_at: nil, +      last_status_at: user.last_status_at |> NaiveDateTime.to_date() |> Date.to_iso8601(),        pleroma: %{          ap_id: user.ap_id,          also_known_as: ["https://shitposter.zone/users/shp"], diff --git a/test/pleroma/web/o_status/o_status_controller_test.exs b/test/pleroma/web/o_status/o_status_controller_test.exs index 36e581f5e..3e8fcd956 100644 --- a/test/pleroma/web/o_status/o_status_controller_test.exs +++ b/test/pleroma/web/o_status/o_status_controller_test.exs @@ -196,7 +196,7 @@ defmodule Pleroma.Web.OStatus.OStatusControllerTest do          |> get("/notice/#{like_activity.id}")          |> response(200) -      assert resp =~ "<!--server-generated-meta-->" +      refute resp =~ ~r(<meta content="[^"]*" property="og:url")      end      test "404s a private notice", %{conn: conn} do diff --git a/test/pleroma/web/pleroma_api/controllers/scrobble_controller_test.exs b/test/pleroma/web/pleroma_api/controllers/scrobble_controller_test.exs index 908ce962d..be94a02ad 100644 --- a/test/pleroma/web/pleroma_api/controllers/scrobble_controller_test.exs +++ b/test/pleroma/web/pleroma_api/controllers/scrobble_controller_test.exs @@ -18,7 +18,8 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do            "title" => "lain radio episode 1",            "artist" => "lain",            "album" => "lain radio", -          "length" => "180000" +          "length" => "180000", +          "externalLink" => "https://www.last.fm/music/lain/lain+radio/lain+radio+episode+1"          })        assert %{"title" => "lain radio episode 1"} = json_response_and_validate_schema(conn, 200) @@ -33,21 +34,24 @@ defmodule Pleroma.Web.PleromaAPI.ScrobbleControllerTest do          CommonAPI.listen(user, %{            title: "lain radio episode 1",            artist: "lain", -          album: "lain radio" +          album: "lain radio", +          externalLink: "https://www.last.fm/music/lain/lain+radio/lain+radio+episode+1"          })        {:ok, _activity} =          CommonAPI.listen(user, %{            title: "lain radio episode 2",            artist: "lain", -          album: "lain radio" +          album: "lain radio", +          externalLink: "https://www.last.fm/music/lain/lain+radio/lain+radio+episode+2"          })        {:ok, _activity} =          CommonAPI.listen(user, %{            title: "lain radio episode 3",            artist: "lain", -          album: "lain radio" +          album: "lain radio", +          externalLink: "https://www.last.fm/music/lain/lain+radio/lain+radio+episode+3"          })        conn = get(conn, "/api/v1/pleroma/accounts/#{user.id}/scrobbles") | 
