diff --git a/src/audit_api.go b/src/audit_api.go
index 740c043..746b5a6 100644
--- a/src/audit_api.go
+++ b/src/audit_api.go
@@ -34,7 +34,6 @@ func (e mainEnv) getAuditEvents(w http.ResponseWriter, r *http.Request, ps httpr
return
}
fmt.Printf("Total count of events: %d\n", counter)
- //fmt.Fprintf(w, "
title")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200)
@@ -60,7 +59,6 @@ func (e mainEnv) getAuditEvent(w http.ResponseWriter, r *http.Request, ps httpro
if e.enforceAuth(w, r, event) == "" {
return
}
- //fmt.Fprintf(w, "title")
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200)
diff --git a/src/audit_db.go b/src/audit_db.go
index c3fe4c0..e234857 100644
--- a/src/audit_db.go
+++ b/src/audit_db.go
@@ -143,7 +143,7 @@ func (dbobj dbcon) getAuditEvent(atoken string) (string, []byte, error) {
if len(record) == 0 {
return "", nil, errors.New("not found")
}
- fmt.Printf("audit record: %s\n", record)
+ //fmt.Printf("audit record: %s\n", record)
before := ""
after := ""
debug := ""
diff --git a/src/bunker_test.go b/src/bunker_test.go
index 9f1b4e9..90349db 100644
--- a/src/bunker_test.go
+++ b/src/bunker_test.go
@@ -91,6 +91,7 @@ func init() {
var cfg Config
cfg.Sms.TwilioToken = "ttoken"
cfg.SelfService.AppRecordChange = []string{"*"}
+ cfg.Generic.CreateUserWithoutAccessToken = true
e := mainEnv{db, cfg, make(chan struct{})}
rootToken, err = db.createRootXtoken()
if err != nil {
diff --git a/src/users_test.go b/src/users_test.go
index 8618a4e..01bdb4b 100644
--- a/src/users_test.go
+++ b/src/users_test.go
@@ -101,25 +101,18 @@ func TestCreateUpdateUser(t *testing.T) {
t.Fatalf("Failed to get audit event/s\n")
}
records = raw["rows"].([]interface{})
- records0 := records[0].(map[string]interface{})
- records2 := records[2].(map[string]interface{})
- atoken := records0["atoken"].(string)
- if len(atoken) == 0 {
- t.Fatalf("Failed to extract atoken\n")
- }
- fmt.Printf("Audit record: %s\n", atoken)
- raw, _ = helpGetUserAuditEvent(atoken)
- if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
- t.Fatalf("Failed to get specific audit event\n")
- }
- atoken = records2["atoken"].(string)
- if len(atoken) == 0 {
- t.Fatalf("Failed to extract atoken\n")
- }
- fmt.Printf("Audit record[2]: %s\n", atoken)
- raw, _ = helpGetUserAuditEvent(atoken)
- if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
- t.Fatalf("Failed to get specific audit event\n")
+ atoken := ""
+ for id := range records {
+ records0 := records[id].(map[string]interface{})
+ atoken = records0["atoken"].(string)
+ if len(atoken) == 0 {
+ t.Fatalf("Failed to extract atoken\n")
+ }
+ fmt.Printf("Audit record: %s\n", atoken)
+ raw, _ = helpGetUserAuditEvent(atoken)
+ if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
+ t.Fatalf("Failed to get specific audit event\n")
+ }
}
oldRootToken := rootToken
rootToken, _ = uuid.GenerateUUID()
@@ -218,3 +211,73 @@ func TestCreateUser2(t *testing.T) {
t.Fatalf("Wrong email address")
}
}
+
+func TestCreateUserEmptyBody(t *testing.T) {
+ data := "{}"
+ raw, _ := helpCreateUser(data)
+ if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
+ t.Fatalf("Should failed to create user")
+ }
+}
+
+func TestCreateUserDupLogin(t *testing.T) {
+ data := `{"login":"dup","name":"dup"}`
+ raw, _ := helpCreateUser(data)
+ if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
+ t.Fatalf("Failed to create dup1 user")
+ }
+ data = `{"login":"dup","name":"dup2"}`
+ raw, _ = helpCreateUser(data)
+ if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
+ t.Fatalf("Should failed to create user")
+ }
+}
+
+func TestCreateUserDupEmail(t *testing.T) {
+ data := `{"email":"dup@dupdup.com","name":"dup"}`
+ raw, _ := helpCreateUser(data)
+ if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
+ t.Fatalf("Failed to create dup1 user")
+ }
+ data = `{"email":"dup@dupdup.com","name":"dup2"}`
+ raw, _ = helpCreateUser(data)
+ if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
+ t.Fatalf("Should failed to create user")
+ }
+}
+
+func TestCreateUserDupPhone(t *testing.T) {
+ data := `{"phone":"334455667788","name":"dup"}`
+ raw, _ := helpCreateUser(data)
+ if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
+ t.Fatalf("Failed to create dup1 user")
+ }
+ data = `{"phone":"334455667788","name":"dup2"}`
+ raw, _ = helpCreateUser(data)
+ if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
+ t.Fatalf("Should failed to create user")
+ }
+}
+
+func TestCreateUserBadPOST(t *testing.T) {
+ url := "http://localhost:3000/v1/user"
+ data := "name=user6&job=developer&email=user6@user6.com"
+ request := httptest.NewRequest("POST", url, strings.NewReader(data))
+ request.Header.Set("X-Bunker-Token", rootToken)
+ raw, _ := helpServe(request)
+ if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
+ t.Fatalf("Should failed to create user")
+ }
+}
+
+func TestCreateUserEmptyXToken2(t *testing.T) {
+ //e.conf.Generic.CreateUserWithoutAccessToken = true
+ url := "http://localhost:3000/v1/user"
+ data := "name=user8&job=developer&email=user8@user8.com"
+ request := httptest.NewRequest("POST", url, strings.NewReader(data))
+ request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
+ raw, _ := helpServe2(request)
+ if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
+ t.Fatalf("Should failed to create user")
+ }
+}