2024-12-05 14:35:56 +00:00
|
|
|
defmodule TokenTest do
|
|
|
|
use ExUnit.Case
|
|
|
|
|
|
|
|
describe "verify_token_response/4" do
|
|
|
|
test "with atom keyed map" do
|
|
|
|
body = %{
|
|
|
|
:client_id => "https://indiepass.app/",
|
|
|
|
:issued_at => 1_733_382_601,
|
|
|
|
:issued_by => "https://tokens.indieauth.com/token",
|
|
|
|
:me => "https://blog.inhji.de/",
|
|
|
|
:nonce => 358_618_865,
|
|
|
|
:scope => "create update delete media read follow channels mute block"
|
|
|
|
}
|
|
|
|
|
|
|
|
required_scope = "create"
|
|
|
|
supported_scopes = ["create", "media"]
|
|
|
|
hostname = "blog.inhji.de"
|
|
|
|
|
|
|
|
assert {:error, _, _} =
|
|
|
|
PlugIndie.Token.verify_token_response(
|
|
|
|
body,
|
|
|
|
required_scope,
|
|
|
|
supported_scopes,
|
|
|
|
hostname
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "with string keyed map" do
|
|
|
|
body = %{
|
|
|
|
"client_id" => "https://indiepass.app/",
|
|
|
|
"issued_at" => 1_733_382_601,
|
|
|
|
"issued_by" => "https://tokens.indieauth.com/token",
|
|
|
|
"me" => "https://blog.inhji.de/",
|
|
|
|
"nonce" => 358_618_865,
|
|
|
|
"scope" => "create update delete media read follow channels mute block"
|
|
|
|
}
|
|
|
|
|
|
|
|
required_scope = "create"
|
|
|
|
supported_scopes = ["create", "media"]
|
|
|
|
hostname = "blog.inhji.de"
|
|
|
|
|
2024-12-06 08:40:16 +00:00
|
|
|
assert :ok ==
|
|
|
|
PlugIndie.Token.verify_token_response(
|
|
|
|
body,
|
|
|
|
required_scope,
|
|
|
|
supported_scopes,
|
|
|
|
hostname
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
|
|
|
test "with mismatching hostname" do
|
|
|
|
body = %{
|
|
|
|
"client_id" => "https://indiepass.app/",
|
|
|
|
"issued_at" => 1_733_382_601,
|
|
|
|
"issued_by" => "https://tokens.indieauth.com/token",
|
|
|
|
"me" => "https://inhji.wtf/",
|
|
|
|
"nonce" => 358_618_865,
|
|
|
|
"scope" => "create update delete media read follow channels mute block"
|
|
|
|
}
|
|
|
|
|
|
|
|
required_scope = "create"
|
|
|
|
supported_scopes = ["create", "media"]
|
|
|
|
hostname = "blog.inhji.de"
|
|
|
|
|
|
|
|
assert {:error, _, _} =
|
|
|
|
PlugIndie.Token.verify_token_response(
|
|
|
|
body,
|
|
|
|
required_scope,
|
|
|
|
supported_scopes,
|
|
|
|
hostname
|
|
|
|
)
|
2024-12-05 14:35:56 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|