diff options
| -rw-r--r-- | mix.exs | 2 | ||||
| -rw-r--r-- | mix.lock | 2 | ||||
| -rw-r--r-- | test/pleroma/integration/mastodon_websocket_test.exs | 14 | ||||
| -rw-r--r-- | test/support/websocket_client.ex | 28 | 
4 files changed, 22 insertions, 24 deletions
@@ -210,7 +210,7 @@ defmodule Pleroma.Mixfile do        {:excoveralls, "0.12.3", only: :test},        {:hackney, "~> 1.18.0", override: true},        {:mox, "~> 1.0", only: :test}, -      {:websocket_client, git: "https://github.com/jeremyong/websocket_client.git", only: :test} +      {:websockex, "~> 0.4.3", only: :test}      ] ++ oauth_deps()    end @@ -126,5 +126,5 @@    "unicode_util_compat": {:hex, :unicode_util_compat, "0.7.0", "bc84380c9ab48177092f43ac89e4dfa2c6d62b40b8bd132b1059ecc7232f9a78", [:rebar3], [], "hexpm", "25eee6d67df61960cf6a794239566599b09e17e668d3700247bc498638152521"},    "unsafe": {:hex, :unsafe, "1.0.1", "a27e1874f72ee49312e0a9ec2e0b27924214a05e3ddac90e91727bc76f8613d8", [:mix], [], "hexpm", "6c7729a2d214806450d29766abc2afaa7a2cbecf415be64f36a6691afebb50e5"},    "web_push_encryption": {:git, "https://github.com/lanodan/elixir-web-push-encryption.git", "026a043037a89db4da8f07560bc8f9c68bcf0cc0", [branch: "bugfix/otp-24"]}, -  "websocket_client": {:git, "https://github.com/jeremyong/websocket_client.git", "9a6f65d05ebf2725d62fb19262b21f1805a59fbf", []}, +  "websockex": {:hex, :websockex, "0.4.3", "92b7905769c79c6480c02daacaca2ddd49de936d912976a4d3c923723b647bf0", [:mix], [], "hexpm", "95f2e7072b85a3a4cc385602d42115b73ce0b74a9121d0d6dbbf557645ac53e4"},  } diff --git a/test/pleroma/integration/mastodon_websocket_test.exs b/test/pleroma/integration/mastodon_websocket_test.exs index 43ec57893..1e0319144 100644 --- a/test/pleroma/integration/mastodon_websocket_test.exs +++ b/test/pleroma/integration/mastodon_websocket_test.exs @@ -33,16 +33,16 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do    test "refuses invalid requests" do      capture_log(fn -> -      assert {:error, {404, _}} = start_socket() -      assert {:error, {404, _}} = start_socket("?stream=ncjdk") +      assert {:error, %WebSockex.RequestError{code: 404}} = start_socket() +      assert {:error, %WebSockex.RequestError{code: 404}} = start_socket("?stream=ncjdk")        Process.sleep(30)      end)    end    test "requires authentication and a valid token for protected streams" do      capture_log(fn -> -      assert {:error, {401, _}} = start_socket("?stream=user&access_token=aaaaaaaaaaaa") -      assert {:error, {401, _}} = start_socket("?stream=user") +      assert {:error, %WebSockex.RequestError{code: 401}} = start_socket("?stream=user&access_token=aaaaaaaaaaaa") +      assert {:error, %WebSockex.RequestError{code: 401}} = start_socket("?stream=user")        Process.sleep(30)      end)    end @@ -102,7 +102,7 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do        assert {:ok, _} = start_socket("?stream=user&access_token=#{token.token}")        capture_log(fn -> -        assert {:error, {401, _}} = start_socket("?stream=user") +        assert {:error, %WebSockex.RequestError{code: 401}} = start_socket("?stream=user")          Process.sleep(30)        end)      end @@ -111,7 +111,7 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do        assert {:ok, _} = start_socket("?stream=user:notification&access_token=#{token.token}")        capture_log(fn -> -        assert {:error, {401, _}} = start_socket("?stream=user:notification") +        assert {:error, %WebSockex.RequestError{code: 401}} = start_socket("?stream=user:notification")          Process.sleep(30)        end)      end @@ -120,7 +120,7 @@ defmodule Pleroma.Integration.MastodonWebsocketTest do        assert {:ok, _} = start_socket("?stream=user", [{"Sec-WebSocket-Protocol", token.token}])        capture_log(fn -> -        assert {:error, {401, _}} = +        assert {:error, %WebSockex.RequestError{code: 401}} =                   start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}])          Process.sleep(30) diff --git a/test/support/websocket_client.ex b/test/support/websocket_client.ex index 34b955474..2660f6151 100644 --- a/test/support/websocket_client.ex +++ b/test/support/websocket_client.ex @@ -5,18 +5,17 @@  defmodule Pleroma.Integration.WebsocketClient do    # https://github.com/phoenixframework/phoenix/blob/master/test/support/websocket_client.exs +  use WebSockex +    @doc """    Starts the WebSocket server for given ws URL. Received Socket.Message's    are forwarded to the sender pid    """    def start_link(sender, url, headers \\ []) do -    :crypto.start() -    :ssl.start() - -    :websocket_client.start_link( -      String.to_charlist(url), +    WebSockex.start_link( +      url,        __MODULE__, -      [sender], +      %{ sender: sender },        extra_headers: headers      )    end @@ -36,27 +35,26 @@ defmodule Pleroma.Integration.WebsocketClient do    end    @doc false -  def init([sender], _conn_state) do -    {:ok, %{sender: sender}} -  end - -  @doc false -  def websocket_handle(frame, _conn_state, state) do +  @impl true +  def handle_frame(frame, state) do      send(state.sender, frame)      {:ok, state}    end    @doc false -  def websocket_info({:text, msg}, _conn_state, state) do +  @impl true +  def handle_info({:text, msg}, state) do      {:reply, {:text, msg}, state}    end -  def websocket_info(:close, _conn_state, _state) do +  @impl true +  def handle_info(:close, _state) do      {:close, <<>>, "done"}    end    @doc false -  def websocket_terminate(_reason, _conn_state, _state) do +  @impl true +  def terminate(_reason, _state) do      :ok    end  end  | 
