Browse Source

Add captcha test.

Dmitry Chestnykh 14 years ago
parent
commit
5dd1486157
1 changed files with 48 additions and 0 deletions
  1. 48 0
      captcha_test.go

+ 48 - 0
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")
+	}
+}