2019-05-14 16:49:45 +02:00
|
|
|
# Pleroma: A lightweight social networking server
|
2021-01-13 07:49:20 +01:00
|
|
|
# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
|
2019-05-14 16:49:45 +02:00
|
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
|
|
|
|
defmodule Pleroma.Web.OAuth.Token.UtilsTest do
|
2020-12-21 12:21:40 +01:00
|
|
|
use Pleroma.DataCase, async: true
|
2019-05-14 16:49:45 +02:00
|
|
|
alias Pleroma.Web.OAuth.Token.Utils
|
|
|
|
import Pleroma.Factory
|
|
|
|
|
|
|
|
describe "fetch_app/1" do
|
|
|
|
test "returns error when credentials is invalid" do
|
|
|
|
assert {:error, :not_found} =
|
|
|
|
Utils.fetch_app(%Plug.Conn{params: %{"client_id" => 1, "client_secret" => "x"}})
|
|
|
|
end
|
|
|
|
|
|
|
|
test "returns App by params credentails" do
|
|
|
|
app = insert(:oauth_app)
|
|
|
|
|
|
|
|
assert {:ok, load_app} =
|
|
|
|
Utils.fetch_app(%Plug.Conn{
|
|
|
|
params: %{"client_id" => app.client_id, "client_secret" => app.client_secret}
|
|
|
|
})
|
|
|
|
|
|
|
|
assert load_app == app
|
|
|
|
end
|
|
|
|
|
|
|
|
test "returns App by header credentails" do
|
|
|
|
app = insert(:oauth_app)
|
|
|
|
header = "Basic " <> Base.encode64("#{app.client_id}:#{app.client_secret}")
|
|
|
|
|
|
|
|
conn =
|
|
|
|
%Plug.Conn{}
|
|
|
|
|> Plug.Conn.put_req_header("authorization", header)
|
|
|
|
|
|
|
|
assert {:ok, load_app} = Utils.fetch_app(conn)
|
|
|
|
assert load_app == app
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "format_created_at/1" do
|
|
|
|
test "returns formatted created at" do
|
|
|
|
token = insert(:oauth_token)
|
|
|
|
date = Utils.format_created_at(token)
|
|
|
|
|
|
|
|
token_date =
|
|
|
|
token.inserted_at
|
|
|
|
|> DateTime.from_naive!("Etc/UTC")
|
|
|
|
|> DateTime.to_unix()
|
|
|
|
|
|
|
|
assert token_date == date
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|