Add test
This commit is contained in:
54
auth/auth_test.go
Normal file
54
auth/auth_test.go
Normal file
@@ -0,0 +1,54 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type User struct {
|
||||
user string
|
||||
pass string
|
||||
hashed string
|
||||
}
|
||||
|
||||
func TestHtpasswdSuccess(t *testing.T) {
|
||||
path := "/tmp/.htpasswd"
|
||||
user1 := User{
|
||||
user: "user",
|
||||
pass: "password",
|
||||
hashed: "$2a$14$SQSscaF4fVO3e5dp2/.VPuVQDPKqxSagLQnN6OncTRtoQw0ie9ByK",
|
||||
}
|
||||
err := ioutil.WriteFile(path,
|
||||
[]byte(fmt.Sprintf("%s:%s", user1.user, user1.hashed)), 0640)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
store, err := NewHtpasswd(path)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
err = store.Authenticate(user1.user, user1.pass)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
user2 := User{
|
||||
user: "foo",
|
||||
pass: "bar",
|
||||
}
|
||||
err = store.Register(user2.user, user2.pass)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
data, err := ioutil.ReadFile(path)
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
for _, u := range []User{user1, user2} {
|
||||
if !strings.Contains(string(data), u.user) {
|
||||
t.Errorf("%s not found in htpasswd file: %s", u.user, string(data))
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user