all repos — captcha @ 5dd14861570e98336fbbade6f45b85645e8aca28

Go package captcha implements generation and verification of image and audio CAPTCHAs.

Add captcha test.
Dmitry Chestnykh dmitry@codingrobots.com
Sun, 24 Apr 2011 16:09:55 +0200
commit

5dd14861570e98336fbbade6f45b85645e8aca28

parent

8779418c5e5bfa4b7f192f5021cf1f32a57676dd

1 files changed, 48 insertions(+), 0 deletions(-)

jump to
A captcha_test.go

@@ -0,0 +1,48 @@

+package captcha + +import ( + "bytes" + "testing" +) + +func TestNew(t *testing.T) { + c := New(StdLength) + if c == "" { + t.Errorf("expected id, got empty string") + } +} + +func TestVerify(t *testing.T) { + id := New(StdLength) + if Verify(id, []byte{0, 0}) { + t.Errorf("verified wrong captcha") + } + id = New(StdLength) + d := globalStore.getDigits(id) // cheating + if !Verify(id, d) { + t.Errorf("proper captcha not verified") + } +} + +func TestReload(t *testing.T) { + id := New(StdLength) + d1 := globalStore.getDigits(id) // cheating + Reload(id) + d2 := globalStore.getDigits(id) // cheating again + if bytes.Equal(d1, d2) { + t.Errorf("reload didn't work: %v = %v", d1, d2) + } +} + +func TestRandomDigits(t *testing.T) { + d1 := RandomDigits(10) + for _, v := range d1 { + if v > 9 { + t.Errorf("digits not in range 0-9: %v", d1) + } + } + d2 := RandomDigits(10) + if bytes.Equal(d1, d2) { + t.Errorf("digits seem to be not random") + } +}