summaryrefslogtreecommitdiff
path: root/test/web/mastodon_api/subscription_controller_test.exs
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-08-26 19:34:43 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-08-26 19:37:57 +0700
commit019ced055836b3d01ea95865549478dc5cdb3c0e (patch)
tree2a47ff2db02a54e0fdc07c3ba68d4d05c0231c9b /test/web/mastodon_api/subscription_controller_test.exs
parent4194abbc8fbc8003d9923edaa491e798bea92107 (diff)
downloadpleroma-019ced055836b3d01ea95865549478dc5cdb3c0e.tar.gz
pleroma-019ced055836b3d01ea95865549478dc5cdb3c0e.zip
Move test/web/mastodon_api/*_test.exs to test/web/mastodon_api/controllers and test/web/mastodon_api/views
Diffstat (limited to 'test/web/mastodon_api/subscription_controller_test.exs')
-rw-r--r--test/web/mastodon_api/subscription_controller_test.exs192
1 files changed, 0 insertions, 192 deletions
diff --git a/test/web/mastodon_api/subscription_controller_test.exs b/test/web/mastodon_api/subscription_controller_test.exs
deleted file mode 100644
index 7dfb02f63..000000000
--- a/test/web/mastodon_api/subscription_controller_test.exs
+++ /dev/null
@@ -1,192 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do
- use Pleroma.Web.ConnCase
-
- import Pleroma.Factory
- alias Pleroma.Web.Push
- alias Pleroma.Web.Push.Subscription
-
- @sub %{
- "endpoint" => "https://example.com/example/1234",
- "keys" => %{
- "auth" => "8eDyX_uCN0XRhSbY5hs7Hg==",
- "p256dh" =>
- "BCIWgsnyXDv1VkhqL2P7YRBvdeuDnlwAPT2guNhdIoW3IP7GmHh1SMKPLxRf7x8vJy6ZFK3ol2ohgn_-0yP7QQA="
- }
- }
- @server_key Keyword.get(Push.vapid_config(), :public_key)
-
- setup do
- user = insert(:user)
- token = insert(:oauth_token, user: user, scopes: ["push"])
-
- conn =
- build_conn()
- |> assign(:user, user)
- |> assign(:token, token)
-
- %{conn: conn, user: user, token: token}
- end
-
- defmacro assert_error_when_disable_push(do: yield) do
- quote do
- vapid_details = Application.get_env(:web_push_encryption, :vapid_details, [])
- Application.put_env(:web_push_encryption, :vapid_details, [])
- assert "Something went wrong" == unquote(yield)
- Application.put_env(:web_push_encryption, :vapid_details, vapid_details)
- end
- end
-
- describe "creates push subscription" do
- test "returns error when push disabled ", %{conn: conn} do
- assert_error_when_disable_push do
- conn
- |> post("/api/v1/push/subscription", %{})
- |> json_response(500)
- end
- end
-
- test "successful creation", %{conn: conn} do
- result =
- conn
- |> post("/api/v1/push/subscription", %{
- "data" => %{"alerts" => %{"mention" => true, "test" => true}},
- "subscription" => @sub
- })
- |> json_response(200)
-
- [subscription] = Pleroma.Repo.all(Subscription)
-
- assert %{
- "alerts" => %{"mention" => true},
- "endpoint" => subscription.endpoint,
- "id" => to_string(subscription.id),
- "server_key" => @server_key
- } == result
- end
- end
-
- describe "gets a user subscription" do
- test "returns error when push disabled ", %{conn: conn} do
- assert_error_when_disable_push do
- conn
- |> get("/api/v1/push/subscription", %{})
- |> json_response(500)
- end
- end
-
- test "returns error when user hasn't subscription", %{conn: conn} do
- res =
- conn
- |> get("/api/v1/push/subscription", %{})
- |> json_response(404)
-
- assert "Not found" == res
- end
-
- test "returns a user subsciption", %{conn: conn, user: user, token: token} do
- subscription =
- insert(:push_subscription,
- user: user,
- token: token,
- data: %{"alerts" => %{"mention" => true}}
- )
-
- res =
- conn
- |> get("/api/v1/push/subscription", %{})
- |> json_response(200)
-
- expect = %{
- "alerts" => %{"mention" => true},
- "endpoint" => "https://example.com/example/1234",
- "id" => to_string(subscription.id),
- "server_key" => @server_key
- }
-
- assert expect == res
- end
- end
-
- describe "updates a user subsciption" do
- setup %{conn: conn, user: user, token: token} do
- subscription =
- insert(:push_subscription,
- user: user,
- token: token,
- data: %{"alerts" => %{"mention" => true}}
- )
-
- %{conn: conn, user: user, token: token, subscription: subscription}
- end
-
- test "returns error when push disabled ", %{conn: conn} do
- assert_error_when_disable_push do
- conn
- |> put("/api/v1/push/subscription", %{data: %{"alerts" => %{"mention" => false}}})
- |> json_response(500)
- end
- end
-
- test "returns updated subsciption", %{conn: conn, subscription: subscription} do
- res =
- conn
- |> put("/api/v1/push/subscription", %{
- data: %{"alerts" => %{"mention" => false, "follow" => true}}
- })
- |> json_response(200)
-
- expect = %{
- "alerts" => %{"follow" => true, "mention" => false},
- "endpoint" => "https://example.com/example/1234",
- "id" => to_string(subscription.id),
- "server_key" => @server_key
- }
-
- assert expect == res
- end
- end
-
- describe "deletes the user subscription" do
- test "returns error when push disabled ", %{conn: conn} do
- assert_error_when_disable_push do
- conn
- |> delete("/api/v1/push/subscription", %{})
- |> json_response(500)
- end
- end
-
- test "returns error when user hasn't subscription", %{conn: conn} do
- res =
- conn
- |> delete("/api/v1/push/subscription", %{})
- |> json_response(404)
-
- assert "Not found" == res
- end
-
- test "returns empty result and delete user subsciption", %{
- conn: conn,
- user: user,
- token: token
- } do
- subscription =
- insert(:push_subscription,
- user: user,
- token: token,
- data: %{"alerts" => %{"mention" => true}}
- )
-
- res =
- conn
- |> delete("/api/v1/push/subscription", %{})
- |> json_response(200)
-
- assert %{} == res
- refute Pleroma.Repo.get(Subscription, subscription.id)
- end
- end
-end