simpleauth/password_test.go
2025-12-31 11:51:48 -05:00

69 lines
1.8 KiB
Go

package simpleauth
import (
"strings"
"testing"
)
func TestNewPassword(t *testing.T) {
ThePassword := "ASimplePassword*23"
password, err := NewPassword([]byte(ThePassword))
if err != nil {
t.Fatalf("error: %v\n", err)
}
if !password.Matches([]byte(ThePassword)) {
t.Fatalf("error: '%s' != '%+v'\n", ThePassword, password)
}
ThePassword = "notcomplexenough"
password, err = NewPassword([]byte(ThePassword))
if err == nil {
t.Fatalf("got nil error...\n")
} else if password != nil {
t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt)
}
ThePassword = "NOTCOMPLEXENOUGH"
password, err = NewPassword([]byte(ThePassword))
if err == nil {
t.Fatalf("got nil error...\n")
} else if password != nil {
t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt)
}
ThePassword = ""
password, err = NewPassword([]byte(ThePassword))
if err == nil {
t.Fatalf("got nil error...\n")
} else if password != nil {
t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt)
}
ThePassword = strings.Repeat("hello", 256)
password, err = NewPassword([]byte(ThePassword))
if err == nil {
t.Fatalf("got nil error...\n")
} else if password != nil {
t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt)
}
ThePassword = "*sdbksldKdf"
password, err = NewPassword([]byte(ThePassword))
if err == nil {
t.Fatalf("got nil error...\n")
} else if password != nil {
t.Fatalf("wanted nil Password; got %s %s\n", password.Hash, password.Salt)
}
}
func TestPasswordStringMethod(t *testing.T) {
password, err := NewPassword([]byte("*123ABcd"))
if err != nil {
t.Fatalf("error: %v\n", err)
}
if got := password.String(); !strings.Contains(got, "cowardly refusal") {
t.Fatalf("error: got '%s' instead of 'cowardly refusal' message\n", got)
}
}