justcaptcha/pkg/captcha/inmemdb/inmemdb_test.go

49 lines
1.2 KiB
Go

package inmemdb_test
import (
"testing"
"time"
"git.arav.su/Arav/justcaptcha/pkg/captcha"
"git.arav.su/Arav/justcaptcha/pkg/captcha/inmemdb"
"git.arav.su/Arav/justcaptcha/pkg/dwcaptcha"
)
const expiry = 10 * time.Minute
const testData = "192.168.0.1"
func TestInMemDBDefaultInstance(t *testing.T) {
if inmemdb.GetExpiry() != captcha.DefaultExpiredScanInterval {
t.Errorf("expiration is different from a default one (%v != %v)",
inmemdb.GetExpiry(), captcha.DefaultExpiredScanInterval)
}
inmemdb.SetExpiry(expiry)
if expiry != inmemdb.GetExpiry() {
t.Errorf("Expected %v, but got %v", expiry, inmemdb.GetExpiry())
}
captcha, captchaID := inmemdb.New(testData, dwcaptcha.NewDwellingCaptcha(expiry))
if inmemdb.Image(captchaID, "") == nil {
t.Error("nil returned instead of an image.Image struct")
}
if !inmemdb.Solve(captchaID, captcha.Answer()) {
t.Error("CAPTCHA not solved. Looks like provided ID wasn't found")
}
if !inmemdb.IsSolved(captchaID) {
t.Error("last test solved a CAPTCHA, but IsSolved() returned false")
}
}
func TestInMemDBNewInstance(t *testing.T) {
db := inmemdb.NewInMemoryCaptchaDB(expiry)
if db.GetExpiry() != expiry {
t.Errorf("expected expiry %v, but got %v", expiry, db.GetExpiry())
}
}