X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fcaptcha_test.exs;h=393c8219e54050b937b138b0bf87029a61539a30;hb=510776ba31f0bb01217fd6585848657f5bceb5f7;hp=2729e1382a9068632c1ddf4cdc63e08940e14c20;hpb=73576ab64ef00aa012dbabae907e03faa436c212;p=akkoma diff --git a/test/captcha_test.exs b/test/captcha_test.exs index 2729e1382..393c8219e 100644 --- a/test/captcha_test.exs +++ b/test/captcha_test.exs @@ -1,13 +1,20 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.CaptchaTest do use ExUnit.Case import Tesla.Mock + alias Pleroma.Captcha.Kocaptcha + alias Pleroma.Captcha.Native + @ets_options [:ordered_set, :private, :named_table, {:read_concurrency, true}] describe "Kocaptcha" do setup do - ets_name = Pleroma.Captcha.Kocaptcha.Ets + ets_name = Kocaptcha.Ets ^ets_name = :ets.new(ets_name, @ets_options) mock(fn @@ -23,16 +30,35 @@ defmodule Pleroma.CaptchaTest do end test "new and validate" do - assert Pleroma.Captcha.Kocaptcha.new() == %{ - type: :kocaptcha, - token: "afa1815e14e29355e6c8f6b143a39fa2", - url: "https://captcha.kotobank.ch/captchas/afa1815e14e29355e6c8f6b143a39fa2.png" - } - - assert Pleroma.Captcha.Kocaptcha.validate( - "afa1815e14e29355e6c8f6b143a39fa2", - "7oEy8c" - ) + 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 + + describe "Native" do + test "new and validate" do + new = Native.new() + + assert %{ + answer_data: answer, + token: token, + type: :native, + url: "data:image/png;base64," <> _ + } = new + + assert is_binary(answer) + assert :ok = Native.validate(token, answer, answer) + assert {:error, "Invalid CAPTCHA"} == Native.validate(token, answer, answer <> "foobar") end end end