import Pleroma.Factory
+ alias Pleroma.Integration.WebsocketClient
alias Pleroma.Web.CommonAPI
alias Pleroma.Web.OAuth
- alias Pleroma.Integration.WebsocketClient
alias Pleroma.Web.Streamer
@path Pleroma.Web.Endpoint.url()
Pleroma.Repo.insert(
OAuth.App.register_changeset(%OAuth.App{}, %{
client_name: "client",
- scopes: "scope",
+ scopes: ["scope"],
redirect_uris: "url"
})
)
test "accepts valid tokens", state do
assert {:ok, _} = start_socket("?stream=user&access_token=#{state.token.token}")
end
+
+ test "accepts the 'user' stream", %{token: token} = _state do
+ assert {:ok, _} = start_socket("?stream=user&access_token=#{token.token}")
+ assert {:error, {403, "Forbidden"}} = start_socket("?stream=user")
+ end
+
+ test "accepts the 'user:notification' stream", %{token: token} = _state do
+ assert {:ok, _} = start_socket("?stream=user:notification&access_token=#{token.token}")
+ assert {:error, {403, "Forbidden"}} = start_socket("?stream=user:notification")
+ end
+
+ test "accepts valid token on Sec-WebSocket-Protocol header", %{token: token} do
+ assert {:ok, _} = start_socket("?stream=user", [{"Sec-WebSocket-Protocol", token.token}])
+
+ assert {:error, {403, "Forbidden"}} =
+ start_socket("?stream=user", [{"Sec-WebSocket-Protocol", "I am a friend"}])
+ end
end
end