336e37d98f
Also rename seconds_retained to seconds_valid since that's how it is now. Put it down from 180 to 20 seconds. The answer data is now stored in an encrypted text transfered to the client and back, so no ETS is needed
42 lines
1 KiB
Elixir
42 lines
1 KiB
Elixir
defmodule Pleroma.CaptchaTest do
|
|
use ExUnit.Case
|
|
|
|
import Tesla.Mock
|
|
|
|
alias Pleroma.Captcha.Kocaptcha
|
|
|
|
@ets_options [:ordered_set, :private, :named_table, {:read_concurrency, true}]
|
|
|
|
describe "Kocaptcha" do
|
|
setup do
|
|
ets_name = Kocaptcha.Ets
|
|
^ets_name = :ets.new(ets_name, @ets_options)
|
|
|
|
mock(fn
|
|
%{method: :get, url: "https://captcha.kotobank.ch/new"} ->
|
|
json(%{
|
|
md5: "63615261b77f5354fb8c4e4986477555",
|
|
token: "afa1815e14e29355e6c8f6b143a39fa2",
|
|
url: "/captchas/afa1815e14e29355e6c8f6b143a39fa2.png"
|
|
})
|
|
end)
|
|
|
|
:ok
|
|
end
|
|
|
|
test "new and validate" do
|
|
new = Kocaptcha.new()
|
|
assert new[:type] == :kocaptcha
|
|
assert new[:token] == "afa1815e14e29355e6c8f6b143a39fa2"
|
|
|
|
assert new[:url] ==
|
|
"https://captcha.kotobank.ch/captchas/afa1815e14e29355e6c8f6b143a39fa2.png"
|
|
|
|
assert Kocaptcha.validate(
|
|
new[:token],
|
|
"7oEy8c",
|
|
new[:answer_data]
|
|
) == :ok
|
|
end
|
|
end
|
|
end
|