fix(client): remove token from client args
This commit is contained in:
parent
6cc99312bf
commit
0cce1bd090
10 changed files with 294 additions and 256 deletions
|
@ -12,16 +12,16 @@ import (
|
||||||
|
|
||||||
type FilesClient struct {
|
type FilesClient struct {
|
||||||
addr string
|
addr string
|
||||||
r *gorequest.SuperAgent
|
|
||||||
token *http.Cookie
|
token *http.Cookie
|
||||||
|
r *gorequest.SuperAgent
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFilesClient(addr string, token *http.Cookie) *FilesClient {
|
func NewFilesClient(addr string, token *http.Cookie) *FilesClient {
|
||||||
gr := gorequest.New()
|
gr := gorequest.New()
|
||||||
return &FilesClient{
|
return &FilesClient{
|
||||||
addr: addr,
|
addr: addr,
|
||||||
r: gr,
|
|
||||||
token: token,
|
token: token,
|
||||||
|
r: gr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,21 +5,22 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
// "github.com/ihexxa/quickshare/src/db/sitestore"
|
|
||||||
"github.com/ihexxa/quickshare/src/handlers/settings"
|
"github.com/ihexxa/quickshare/src/handlers/settings"
|
||||||
"github.com/parnurzeal/gorequest"
|
"github.com/parnurzeal/gorequest"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SettingsClient struct {
|
type SettingsClient struct {
|
||||||
addr string
|
addr string
|
||||||
r *gorequest.SuperAgent
|
token *http.Cookie
|
||||||
|
r *gorequest.SuperAgent
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSettingsClient(addr string) *SettingsClient {
|
func NewSettingsClient(addr string, token *http.Cookie) *SettingsClient {
|
||||||
gr := gorequest.New()
|
gr := gorequest.New()
|
||||||
return &SettingsClient{
|
return &SettingsClient{
|
||||||
addr: addr,
|
addr: addr,
|
||||||
r: gr,
|
token: token,
|
||||||
|
r: gr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,9 +33,9 @@ func (cl *SettingsClient) Health() (*http.Response, string, []error) {
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *SettingsClient) GetClientCfg(token *http.Cookie) (*http.Response, *settings.ClientCfgMsg, []error) {
|
func (cl *SettingsClient) GetClientCfg() (*http.Response, *settings.ClientCfgMsg, []error) {
|
||||||
resp, body, errs := cl.r.Get(cl.url("/v1/settings/client")).
|
resp, body, errs := cl.r.Get(cl.url("/v1/settings/client")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
|
|
||||||
mResp := &settings.ClientCfgMsg{}
|
mResp := &settings.ClientCfgMsg{}
|
||||||
|
@ -46,23 +47,23 @@ func (cl *SettingsClient) GetClientCfg(token *http.Cookie) (*http.Response, *set
|
||||||
return resp, mResp, nil
|
return resp, mResp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *SettingsClient) SetClientCfg(cfgMsg *settings.ClientCfgMsg, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *SettingsClient) SetClientCfg(cfgMsg *settings.ClientCfgMsg) (*http.Response, string, []error) {
|
||||||
return cl.r.Patch(cl.url("/v1/settings/client")).
|
return cl.r.Patch(cl.url("/v1/settings/client")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
Send(cfgMsg).
|
Send(cfgMsg).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *SettingsClient) ReportErrors(reports *settings.ClientErrorReports, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *SettingsClient) ReportErrors(reports *settings.ClientErrorReports) (*http.Response, string, []error) {
|
||||||
return cl.r.Post(cl.url("/v1/settings/errors")).
|
return cl.r.Post(cl.url("/v1/settings/errors")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
Send(reports).
|
Send(reports).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *SettingsClient) WorkerQueueLen(token *http.Cookie) (*http.Response, *settings.WorkerQueueLenResp, []error) {
|
func (cl *SettingsClient) WorkerQueueLen() (*http.Response, *settings.WorkerQueueLenResp, []error) {
|
||||||
resp, body, errs := cl.r.Get(cl.url("/v1/settings/workers/queue-len")).
|
resp, body, errs := cl.r.Get(cl.url("/v1/settings/workers/queue-len")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
|
|
||||||
mResp := &settings.WorkerQueueLenResp{}
|
mResp := &settings.WorkerQueueLenResp{}
|
||||||
|
|
|
@ -12,8 +12,9 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type UsersClient struct {
|
type UsersClient struct {
|
||||||
addr string
|
addr string
|
||||||
r *gorequest.SuperAgent
|
token *http.Cookie
|
||||||
|
r *gorequest.SuperAgent
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewUsersClient(addr string) *UsersClient {
|
func NewUsersClient(addr string) *UsersClient {
|
||||||
|
@ -28,55 +29,72 @@ func (cl *UsersClient) url(urlpath string) string {
|
||||||
return fmt.Sprintf("%s%s", cl.addr, urlpath)
|
return fmt.Sprintf("%s%s", cl.addr, urlpath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cl *UsersClient) SetToken(token *http.Cookie) {
|
||||||
|
cl.token = token
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cl *UsersClient) Token() *http.Cookie {
|
||||||
|
return cl.token
|
||||||
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) Login(user, pwd string) (*http.Response, string, []error) {
|
func (cl *UsersClient) Login(user, pwd string) (*http.Response, string, []error) {
|
||||||
return cl.r.Post(cl.url("/v1/users/login")).
|
resp, body, errs := cl.r.Post(cl.url("/v1/users/login")).
|
||||||
Send(multiusers.LoginReq{
|
Send(multiusers.LoginReq{
|
||||||
User: user,
|
User: user,
|
||||||
Pwd: pwd,
|
Pwd: pwd,
|
||||||
}).
|
}).
|
||||||
End()
|
End()
|
||||||
|
|
||||||
|
if len(errs) == 0 && resp.StatusCode == 200 {
|
||||||
|
// it may overwrite the token
|
||||||
|
httpResp := (*http.Response)(resp)
|
||||||
|
cl.token = GetCookie(httpResp.Cookies(), handlers.TokenCookie)
|
||||||
|
} else {
|
||||||
|
cl.token = &http.Cookie{}
|
||||||
|
}
|
||||||
|
return resp, body, errs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) Logout(token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) Logout() (*http.Response, string, []error) {
|
||||||
return cl.r.Post(cl.url("/v1/users/logout")).
|
return cl.r.Post(cl.url("/v1/users/logout")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) SetPwd(oldPwd, newPwd string, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) SetPwd(oldPwd, newPwd string) (*http.Response, string, []error) {
|
||||||
return cl.r.Patch(cl.url("/v1/users/pwd")).
|
return cl.r.Patch(cl.url("/v1/users/pwd")).
|
||||||
Send(multiusers.SetPwdReq{
|
Send(multiusers.SetPwdReq{
|
||||||
OldPwd: oldPwd,
|
OldPwd: oldPwd,
|
||||||
NewPwd: newPwd,
|
NewPwd: newPwd,
|
||||||
}).
|
}).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) ForceSetPwd(userID, newPwd string, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) ForceSetPwd(userID, newPwd string) (*http.Response, string, []error) {
|
||||||
return cl.r.Patch(cl.url("/v1/users/pwd/force-set")).
|
return cl.r.Patch(cl.url("/v1/users/pwd/force-set")).
|
||||||
Send(multiusers.ForceSetPwdReq{
|
Send(multiusers.ForceSetPwdReq{
|
||||||
ID: userID,
|
ID: userID,
|
||||||
NewPwd: newPwd,
|
NewPwd: newPwd,
|
||||||
}).
|
}).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) SetUser(ID uint64, role string, quota *db.Quota, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) SetUser(ID uint64, role string, quota *db.Quota) (*http.Response, string, []error) {
|
||||||
return cl.r.Patch(cl.url("/v1/users/")).
|
return cl.r.Patch(cl.url("/v1/users/")).
|
||||||
Send(multiusers.SetUserReq{
|
Send(multiusers.SetUserReq{
|
||||||
ID: ID,
|
ID: ID,
|
||||||
Role: role,
|
Role: role,
|
||||||
Quota: quota,
|
Quota: quota,
|
||||||
}).
|
}).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) AddUser(name, pwd, role string, token *http.Cookie) (*http.Response, *multiusers.AddUserResp, []error) {
|
func (cl *UsersClient) AddUser(name, pwd, role string) (*http.Response, *multiusers.AddUserResp, []error) {
|
||||||
resp, body, errs := cl.r.Post(cl.url("/v1/users/")).
|
resp, body, errs := cl.r.Post(cl.url("/v1/users/")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
Send(multiusers.AddUserReq{
|
Send(multiusers.AddUserReq{
|
||||||
Name: name,
|
Name: name,
|
||||||
Pwd: pwd,
|
Pwd: pwd,
|
||||||
|
@ -97,16 +115,16 @@ func (cl *UsersClient) AddUser(name, pwd, role string, token *http.Cookie) (*htt
|
||||||
return resp, auResp, errs
|
return resp, auResp, errs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) DelUser(id string, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) DelUser(id string) (*http.Response, string, []error) {
|
||||||
return cl.r.Delete(cl.url("/v1/users/")).
|
return cl.r.Delete(cl.url("/v1/users/")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
Param(handlers.UserIDParam, id).
|
Param(handlers.UserIDParam, id).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) ListUsers(token *http.Cookie) (*http.Response, *multiusers.ListUsersResp, []error) {
|
func (cl *UsersClient) ListUsers() (*http.Response, *multiusers.ListUsersResp, []error) {
|
||||||
resp, body, errs := cl.r.Get(cl.url("/v1/users/list")).
|
resp, body, errs := cl.r.Get(cl.url("/v1/users/list")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
return nil, nil, errs
|
return nil, nil, errs
|
||||||
|
@ -121,27 +139,27 @@ func (cl *UsersClient) ListUsers(token *http.Cookie) (*http.Response, *multiuser
|
||||||
return resp, lsResp, errs
|
return resp, lsResp, errs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) AddRole(role string, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) AddRole(role string) (*http.Response, string, []error) {
|
||||||
return cl.r.Post(cl.url("/v1/roles/")).
|
return cl.r.Post(cl.url("/v1/roles/")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
Send(multiusers.AddRoleReq{
|
Send(multiusers.AddRoleReq{
|
||||||
Role: role,
|
Role: role,
|
||||||
}).
|
}).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) DelRole(role string, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) DelRole(role string) (*http.Response, string, []error) {
|
||||||
return cl.r.Delete(cl.url("/v1/roles/")).
|
return cl.r.Delete(cl.url("/v1/roles/")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
Send(multiusers.DelRoleReq{
|
Send(multiusers.DelRoleReq{
|
||||||
Role: role,
|
Role: role,
|
||||||
}).
|
}).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) ListRoles(token *http.Cookie) (*http.Response, *multiusers.ListRolesResp, []error) {
|
func (cl *UsersClient) ListRoles() (*http.Response, *multiusers.ListRolesResp, []error) {
|
||||||
resp, body, errs := cl.r.Get(cl.url("/v1/roles/list")).
|
resp, body, errs := cl.r.Get(cl.url("/v1/roles/list")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
return nil, nil, errs
|
return nil, nil, errs
|
||||||
|
@ -156,9 +174,9 @@ func (cl *UsersClient) ListRoles(token *http.Cookie) (*http.Response, *multiuser
|
||||||
return resp, lsResp, errs
|
return resp, lsResp, errs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) Self(token *http.Cookie) (*http.Response, *multiusers.SelfResp, []error) {
|
func (cl *UsersClient) Self() (*http.Response, *multiusers.SelfResp, []error) {
|
||||||
resp, body, errs := cl.r.Get(cl.url("/v1/users/self")).
|
resp, body, errs := cl.r.Get(cl.url("/v1/users/self")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
return nil, nil, errs
|
return nil, nil, errs
|
||||||
|
@ -173,26 +191,26 @@ func (cl *UsersClient) Self(token *http.Cookie) (*http.Response, *multiusers.Sel
|
||||||
return resp, selfResp, errs
|
return resp, selfResp, errs
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) SetPreferences(prefers *db.Preferences, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) SetPreferences(prefers *db.Preferences) (*http.Response, string, []error) {
|
||||||
return cl.r.Patch(cl.url("/v1/users/preferences")).
|
return cl.r.Patch(cl.url("/v1/users/preferences")).
|
||||||
Send(multiusers.SetPreferencesReq{
|
Send(multiusers.SetPreferencesReq{
|
||||||
Preferences: prefers,
|
Preferences: prefers,
|
||||||
}).
|
}).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) IsAuthed(token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) IsAuthed() (*http.Response, string, []error) {
|
||||||
return cl.r.Get(cl.url("/v1/users/isauthed")).
|
return cl.r.Get(cl.url("/v1/users/isauthed")).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cl *UsersClient) ResetUsedSpace(userID uint64, token *http.Cookie) (*http.Response, string, []error) {
|
func (cl *UsersClient) ResetUsedSpace(userID uint64) (*http.Response, string, []error) {
|
||||||
return cl.r.Put(cl.url("/v1/users/used-space")).
|
return cl.r.Put(cl.url("/v1/users/used-space")).
|
||||||
Send(multiusers.ResetUsedSpaceReq{
|
Send(multiusers.ResetUsedSpaceReq{
|
||||||
UserID: userID,
|
UserID: userID,
|
||||||
}).
|
}).
|
||||||
AddCookie(token).
|
AddCookie(cl.token).
|
||||||
End()
|
End()
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"sync"
|
"sync"
|
||||||
|
@ -48,33 +49,37 @@ func TestConcurrency(t *testing.T) {
|
||||||
t.Fatal("fail to start server")
|
t.Fatal("fail to start server")
|
||||||
}
|
}
|
||||||
|
|
||||||
usersCl := client.NewUsersClient(addr)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login(adminName, adminPwd)
|
resp, _, errs := adminUsersCli.Login(adminName, adminPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
adminToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
|
|
||||||
userCount := 5
|
userCount := 5
|
||||||
userPwd := "1234"
|
userPwd := "1234"
|
||||||
users := addUsers(t, addr, userPwd, userCount, token)
|
users := addUsers(t, addr, userPwd, userCount, adminToken)
|
||||||
|
|
||||||
getFilePath := func(name string, i int) string {
|
getFilePath := func(name string, i int) string {
|
||||||
return fmt.Sprintf("%s/files/home_file_%d", name, i)
|
return fmt.Sprintf("%s/files/home_file_%d", name, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
filesCount := 10
|
filesCount := 10
|
||||||
|
clientErrs := []error{}
|
||||||
mockClient := func(name, pwd string, wg *sync.WaitGroup) {
|
mockClient := func(name, pwd string, wg *sync.WaitGroup) {
|
||||||
usersCl := client.NewUsersClient(addr)
|
defer wg.Done()
|
||||||
resp, _, errs := usersCl.Login(name, pwd)
|
|
||||||
|
userUsersCli := client.NewUsersClient(addr)
|
||||||
|
resp, _, errs := userUsersCli.Login(name, pwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
clientErrs = append(clientErrs, errs...)
|
||||||
|
return
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal("failed to add user")
|
clientErrs = append(clientErrs, fmt.Errorf("failed to login"))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
|
||||||
|
|
||||||
files := map[string]string{}
|
files := map[string]string{}
|
||||||
content := "12345678"
|
content := "12345678"
|
||||||
|
@ -82,53 +87,75 @@ func TestConcurrency(t *testing.T) {
|
||||||
files[getFilePath(name, i)] = content
|
files[getFilePath(name, i)] = content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
userToken := userUsersCli.Token()
|
||||||
for filePath, content := range files {
|
for filePath, content := range files {
|
||||||
assertUploadOK(t, filePath, content, addr, token)
|
assertUploadOK(t, filePath, content, addr, userToken)
|
||||||
assertDownloadOK(t, filePath, content, addr, token)
|
assertDownloadOK(t, filePath, content, addr, userToken)
|
||||||
}
|
}
|
||||||
|
|
||||||
filesCl := client.NewFilesClient(addr, token)
|
filesCl := client.NewFilesClient(addr, userToken)
|
||||||
resp, lsResp, errs := filesCl.ListHome()
|
resp, lsResp, errs := filesCl.ListHome()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
clientErrs = append(clientErrs, errs...)
|
||||||
|
return
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal("failed to add user")
|
clientErrs = append(clientErrs, errors.New("failed to list home"))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if lsResp.Cwd != fmt.Sprintf("%s/files", name) {
|
if lsResp.Cwd != fmt.Sprintf("%s/files", name) {
|
||||||
t.Fatalf("incorrct cwd (%s)", lsResp.Cwd)
|
clientErrs = append(clientErrs, fmt.Errorf("incorrct cwd (%s)", lsResp.Cwd))
|
||||||
|
return
|
||||||
|
|
||||||
} else if len(lsResp.Metadatas) != len(files) {
|
} else if len(lsResp.Metadatas) != len(files) {
|
||||||
t.Fatalf("incorrct metadata size (%d)", len(lsResp.Metadatas))
|
clientErrs = append(clientErrs, fmt.Errorf("incorrct metadata size (%d)", len(lsResp.Metadatas)))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := userUsersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
clientErrs = append(clientErrs, errs...)
|
||||||
|
return
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal("failed to self")
|
clientErrs = append(clientErrs, errors.New("failed to self"))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if selfResp.UsedSpace != int64(filesCount*len(content)) {
|
if selfResp.UsedSpace != int64(filesCount*len(content)) {
|
||||||
t.Fatalf("usedSpace(%d) doesn't match (%d)", selfResp.UsedSpace, filesCount*len(content))
|
clientErrs = append(
|
||||||
|
clientErrs,
|
||||||
|
fmt.Errorf("usedSpace(%d) doesn't match (%d)", selfResp.UsedSpace, filesCount*len(content)),
|
||||||
|
)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = filesCl.Delete(getFilePath(name, 0))
|
resp, _, errs = filesCl.Delete(getFilePath(name, 0))
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
clientErrs = append(clientErrs, errs...)
|
||||||
|
return
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal("failed to add user")
|
clientErrs = append(clientErrs, errors.New("failed to add user"))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs = usersCl.Self(token)
|
resp, selfResp, errs = userUsersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
clientErrs = append(clientErrs, errs...)
|
||||||
|
return
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal("failed to self")
|
clientErrs = append(clientErrs, errors.New("failed to self"))
|
||||||
|
return
|
||||||
}
|
}
|
||||||
if selfResp.UsedSpace != int64((filesCount-1)*len(content)) {
|
if selfResp.UsedSpace != int64((filesCount-1)*len(content)) {
|
||||||
t.Fatalf("usedSpace(%d) doesn't match (%d)", selfResp.UsedSpace, int64((filesCount-1)*len(content)))
|
clientErrs = append(
|
||||||
|
clientErrs,
|
||||||
|
fmt.Errorf(
|
||||||
|
"usedSpace(%d) doesn't match (%d)",
|
||||||
|
selfResp.UsedSpace,
|
||||||
|
int64((filesCount-1)*len(content)),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Done()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var wg sync.WaitGroup
|
var wg sync.WaitGroup
|
||||||
|
@ -139,12 +166,8 @@ func TestConcurrency(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
if len(clientErrs) > 0 {
|
||||||
|
t.Fatal(joinErrs(clientErrs))
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
|
||||||
if len(errs) > 0 {
|
|
||||||
t.Fatal(errs)
|
|
||||||
} else if resp.StatusCode != 200 {
|
|
||||||
t.Fatal(resp.StatusCode)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,7 +70,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
cl := client.NewFilesClient(addr, token)
|
adminFilesClient := client.NewFilesClient(addr, token)
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
// TODO: remove all files under home folder before testing
|
// TODO: remove all files under home folder before testing
|
||||||
|
@ -90,7 +90,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, lhResp, errs := cl.ListHome()
|
resp, lhResp, errs := adminFilesClient.ListHome()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -140,7 +140,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for filePath, content := range files {
|
for filePath, content := range files {
|
||||||
res, _, _ := cl.Create(filePath, int64(len([]byte(content))))
|
res, _, _ := adminFilesClient.Create(filePath, int64(len([]byte(content))))
|
||||||
if res.StatusCode != 400 {
|
if res.StatusCode != 400 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs := cl.Delete(filePath)
|
res, _, errs := adminFilesClient.Delete(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -187,7 +187,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
} {
|
} {
|
||||||
fileSize := int64(len([]byte(content)))
|
fileSize := int64(len([]byte(content)))
|
||||||
// create a file
|
// create a file
|
||||||
res, _, errs := cl.Create(filePath, fileSize)
|
res, _, errs := adminFilesClient.Create(filePath, fileSize)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -217,7 +217,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
|
|
||||||
chunk := contentBytes[i:right]
|
chunk := contentBytes[i:right]
|
||||||
chunkBase64 := base64.StdEncoding.EncodeToString(chunk)
|
chunkBase64 := base64.StdEncoding.EncodeToString(chunk)
|
||||||
res, _, errs = cl.UploadChunk(filePath, chunkBase64, int64(i))
|
res, _, errs = adminFilesClient.UploadChunk(filePath, chunkBase64, int64(i))
|
||||||
i = right
|
i = right
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
|
@ -226,7 +226,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if int64(i) != fileSize {
|
if int64(i) != fileSize {
|
||||||
_, statusResp, errs := cl.UploadStatus(filePath)
|
_, statusResp, errs := adminFilesClient.UploadStatus(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if statusResp.Path != filePath ||
|
} else if statusResp.Path != filePath ||
|
||||||
|
@ -253,7 +253,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// metadata
|
// metadata
|
||||||
_, mRes, errs := cl.Metadata(filePath)
|
_, mRes, errs := adminFilesClient.Metadata(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if mRes.Name != info.Name() ||
|
} else if mRes.Name != info.Name() ||
|
||||||
|
@ -264,7 +264,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// delete file
|
// delete file
|
||||||
res, _, errs = cl.Delete(filePath)
|
res, _, errs = adminFilesClient.Delete(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -283,7 +283,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
"f3.md": "3333333",
|
"f3.md": "3333333",
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
res, _, errs := cl.Mkdir(dirPath)
|
res, _, errs := adminFilesClient.Mkdir(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -300,7 +300,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, lResp, errs := cl.List(dirPath)
|
_, lResp, errs := adminFilesClient.List(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
}
|
}
|
||||||
|
@ -320,7 +320,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
dstDir := "qs/files/move/dst"
|
dstDir := "qs/files/move/dst"
|
||||||
|
|
||||||
for _, dirPath := range []string{srcDir, dstDir} {
|
for _, dirPath := range []string{srcDir, dstDir} {
|
||||||
res, _, errs := cl.Mkdir(dirPath)
|
res, _, errs := adminFilesClient.Mkdir(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -339,7 +339,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
// fileSize := int64(len([]byte(content)))
|
// fileSize := int64(len([]byte(content)))
|
||||||
assertUploadOK(t, oldPath, content, addr, token)
|
assertUploadOK(t, oldPath, content, addr, token)
|
||||||
|
|
||||||
res, _, errs := cl.Move(oldPath, newPath)
|
res, _, errs := adminFilesClient.Move(oldPath, newPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -352,7 +352,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, lResp, errs := cl.List(dstDir)
|
_, lResp, errs := adminFilesClient.List(dstDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
}
|
}
|
||||||
|
@ -366,7 +366,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, dirPath := range []string{srcDir, dstDir} {
|
for _, dirPath := range []string{srcDir, dstDir} {
|
||||||
res, _, errs := cl.Delete(dirPath)
|
res, _, errs := adminFilesClient.Delete(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -422,31 +422,31 @@ func TestFileHandlers(t *testing.T) {
|
||||||
dirPath := filepath.Dir(filePath)
|
dirPath := filepath.Dir(filePath)
|
||||||
sharedPaths[dirPath] = true
|
sharedPaths[dirPath] = true
|
||||||
|
|
||||||
res, _, errs := cl.AddSharing(dirPath)
|
res, _, errs := adminFilesClient.AddSharing(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs = cl.AddSharing(filePath)
|
res, _, errs = adminFilesClient.AddSharing(filePath)
|
||||||
if res.StatusCode != 400 {
|
if res.StatusCode != 400 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs = cl.AddSharing(filepath.Join(filePath, "not_exist"))
|
res, _, errs = adminFilesClient.AddSharing(filepath.Join(filePath, "not_exist"))
|
||||||
if res.StatusCode != 500 {
|
if res.StatusCode != 500 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs := cl.AddSharing("/")
|
res, _, errs := adminFilesClient.AddSharing("/")
|
||||||
if res.StatusCode != 403 {
|
if res.StatusCode != 403 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
// check listSharings
|
// check listSharings
|
||||||
res, shRes, errs := cl.ListSharingIDs()
|
res, shRes, errs := adminFilesClient.ListSharingIDs()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -510,7 +510,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
for filePath := range files {
|
for filePath := range files {
|
||||||
dirPath := filepath.Dir(filePath)
|
dirPath := filepath.Dir(filePath)
|
||||||
|
|
||||||
res, _, errs := cl.DelSharing(dirPath)
|
res, _, errs := adminFilesClient.DelSharing(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -519,7 +519,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// check listSharings
|
// check listSharings
|
||||||
res, shRes, errs = cl.ListSharingIDs()
|
res, shRes, errs = adminFilesClient.ListSharingIDs()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -613,7 +613,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
|
|
||||||
t.Run("test uploading APIs: ListUploadings, Create, ListUploadings, DelUploading", func(t *testing.T) {
|
t.Run("test uploading APIs: ListUploadings, Create, ListUploadings, DelUploading", func(t *testing.T) {
|
||||||
// it should return no error even no file is uploaded
|
// it should return no error even no file is uploaded
|
||||||
res, lResp, errs := cl.ListUploadings()
|
res, lResp, errs := adminFilesClient.ListUploadings()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -627,7 +627,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
|
|
||||||
for filePath, content := range files {
|
for filePath, content := range files {
|
||||||
fileSize := int64(len([]byte(content)))
|
fileSize := int64(len([]byte(content)))
|
||||||
res, _, errs := cl.Create(filePath, fileSize)
|
res, _, errs := adminFilesClient.Create(filePath, fileSize)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -635,7 +635,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res, lResp, errs = cl.ListUploadings()
|
res, lResp, errs = adminFilesClient.ListUploadings()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -658,7 +658,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for filePath := range files {
|
for filePath := range files {
|
||||||
res, _, errs := cl.DelUploading(filePath)
|
res, _, errs := adminFilesClient.DelUploading(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -666,7 +666,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res, lResp, errs = cl.ListUploadings()
|
res, lResp, errs = adminFilesClient.ListUploadings()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -685,7 +685,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
|
|
||||||
for filePath, content := range files {
|
for filePath, content := range files {
|
||||||
fileSize := int64(len([]byte(content)))
|
fileSize := int64(len([]byte(content)))
|
||||||
res, _, errs := cl.Create(filePath, fileSize)
|
res, _, errs := adminFilesClient.Create(filePath, fileSize)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -699,7 +699,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
offset := int64(0)
|
offset := int64(0)
|
||||||
for _, chunk := range chunks {
|
for _, chunk := range chunks {
|
||||||
base64Content := base64.StdEncoding.EncodeToString(chunk)
|
base64Content := base64.StdEncoding.EncodeToString(chunk)
|
||||||
res, bodyStr, errs := cl.UploadChunk(filePath, base64Content, offset)
|
res, bodyStr, errs := adminFilesClient.UploadChunk(filePath, base64Content, offset)
|
||||||
offset += int64(len(chunk))
|
offset += int64(len(chunk))
|
||||||
|
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
|
@ -715,7 +715,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// metadata
|
// metadata
|
||||||
_, mRes, errs := cl.Metadata(filePath)
|
_, mRes, errs := adminFilesClient.Metadata(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if mRes.Size != fileSize {
|
} else if mRes.Size != fileSize {
|
||||||
|
@ -737,7 +737,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
|
|
||||||
for filePath, content := range files {
|
for filePath, content := range files {
|
||||||
fileSize := int64(len([]byte(content)))
|
fileSize := int64(len([]byte(content)))
|
||||||
res, _, errs := cl.Create(filePath, fileSize)
|
res, _, errs := adminFilesClient.Create(filePath, fileSize)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -755,7 +755,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
offset := int64(0)
|
offset := int64(0)
|
||||||
for _, chunk := range chunks {
|
for _, chunk := range chunks {
|
||||||
base64Content := base64.StdEncoding.EncodeToString(chunk)
|
base64Content := base64.StdEncoding.EncodeToString(chunk)
|
||||||
res, _, errs := cl.UploadChunk(filePath, base64Content, offset)
|
res, _, errs := adminFilesClient.UploadChunk(filePath, base64Content, offset)
|
||||||
offset += int64(len(chunk))
|
offset += int64(len(chunk))
|
||||||
|
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
|
@ -771,7 +771,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// metadata
|
// metadata
|
||||||
_, mRes, errs := cl.Metadata(filePath)
|
_, mRes, errs := adminFilesClient.Metadata(filePath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if mRes.Size != fileSize {
|
} else if mRes.Size != fileSize {
|
||||||
|
@ -793,7 +793,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
srcDir := "qs/files/folder/move/src"
|
srcDir := "qs/files/folder/move/src"
|
||||||
dstDir := "qs/files/folder/move/dst"
|
dstDir := "qs/files/folder/move/dst"
|
||||||
|
|
||||||
res, _, errs := cl.Mkdir(srcDir)
|
res, _, errs := adminFilesClient.Mkdir(srcDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -810,21 +810,21 @@ func TestFileHandlers(t *testing.T) {
|
||||||
assertUploadOK(t, oldPath, content, addr, token)
|
assertUploadOK(t, oldPath, content, addr, token)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs = cl.AddSharing(srcDir)
|
res, _, errs = adminFilesClient.AddSharing(srcDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs = cl.Move(srcDir, dstDir)
|
res, _, errs = adminFilesClient.Move(srcDir, dstDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
t.Fatal(res.StatusCode)
|
t.Fatal(res.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs = cl.IsSharing(dstDir)
|
res, _, errs = adminFilesClient.IsSharing(dstDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 404 { // should not be in sharing
|
} else if res.StatusCode != 404 { // should not be in sharing
|
||||||
|
@ -836,7 +836,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
_, lResp, errs := cl.List(dstDir)
|
_, lResp, errs := adminFilesClient.List(dstDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
}
|
}
|
||||||
|
@ -906,7 +906,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
keywords := []string{"keyword1", "keyword2"}
|
keywords := []string{"keyword1", "keyword2"}
|
||||||
resp, searchItemsResp, errs := cl.SearchItems(keywords)
|
resp, searchItemsResp, errs := adminFilesClient.SearchItems(keywords)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -933,14 +933,14 @@ func TestFileHandlers(t *testing.T) {
|
||||||
|
|
||||||
// delete paths
|
// delete paths
|
||||||
for pathname := range toDelete {
|
for pathname := range toDelete {
|
||||||
resp, _, errs := cl.Delete(pathname)
|
resp, _, errs := adminFilesClient.Delete(pathname)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resp, searchItemsResp, errs = cl.SearchItems(keywords)
|
resp, searchItemsResp, errs = adminFilesClient.SearchItems(keywords)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -954,21 +954,21 @@ func TestFileHandlers(t *testing.T) {
|
||||||
// move paths
|
// move paths
|
||||||
for oldPath, newPath := range toMove {
|
for oldPath, newPath := range toMove {
|
||||||
newPathDir := filepath.Dir(newPath)
|
newPathDir := filepath.Dir(newPath)
|
||||||
resp, _, errs := cl.Mkdir(newPathDir)
|
resp, _, errs := adminFilesClient.Mkdir(newPathDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = cl.Move(oldPath, newPath)
|
resp, _, errs = adminFilesClient.Move(oldPath, newPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
resp, searchItemsResp, errs = cl.SearchItems(keywords)
|
resp, searchItemsResp, errs = adminFilesClient.SearchItems(keywords)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -1000,16 +1000,16 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
fs.Sync()
|
fs.Sync()
|
||||||
|
|
||||||
resp, _, errs := cl.Reindex()
|
resp, _, errs := adminFilesClient.Reindex()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
settingsCl := client.NewSettingsClient(addr, token)
|
||||||
for {
|
for {
|
||||||
reportResp, wqResp, errs := settingsCl.WorkerQueueLen(token)
|
reportResp, wqResp, errs := settingsCl.WorkerQueueLen()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if reportResp.StatusCode != 200 {
|
} else if reportResp.StatusCode != 200 {
|
||||||
|
@ -1027,7 +1027,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
// still need to wait for worker finishing indexing...
|
// still need to wait for worker finishing indexing...
|
||||||
time.Sleep(3 * time.Second)
|
time.Sleep(3 * time.Second)
|
||||||
|
|
||||||
resp, searchItemsResp, errs := cl.SearchItems([]string{"reindexkey"})
|
resp, searchItemsResp, errs := adminFilesClient.SearchItems([]string{"reindexkey"})
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -1039,7 +1039,7 @@ func TestFileHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = usersCl.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
|
|
@ -115,40 +115,41 @@ func TestPermissions(t *testing.T) {
|
||||||
tmpNewRole := "tmpNewRole"
|
tmpNewRole := "tmpNewRole"
|
||||||
|
|
||||||
cl := client.NewUsersClient(addr)
|
cl := client.NewUsersClient(addr)
|
||||||
token := &http.Cookie{}
|
// token := &http.Cookie{}
|
||||||
if requireAuth {
|
if requireAuth {
|
||||||
resp, _, errs := cl.Login(user, pwd)
|
resp, _, errs := cl.Login(user, pwd)
|
||||||
assertResp(t, resp, errs, 200, desc)
|
assertResp(t, resp, errs, 200, desc)
|
||||||
token = client.GetCookie(resp.Cookies(), q.TokenCookie)
|
// token = client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
|
// token = cl.Token()
|
||||||
} else {
|
} else {
|
||||||
resp, _, errs := cl.Login(user, pwd)
|
resp, _, errs := cl.Login(user, pwd)
|
||||||
assertResp(t, resp, errs, 403, desc)
|
assertResp(t, resp, errs, 403, desc)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs := cl.SetPwd(pwd, newPwd, token)
|
resp, _, errs := cl.SetPwd(pwd, newPwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetPwd"], fmt.Sprintf("%s-%s", desc, "SetPwd"))
|
assertResp(t, resp, errs, expectedCodes["SetPwd"], fmt.Sprintf("%s-%s", desc, "SetPwd"))
|
||||||
// set back the password
|
// set back the password
|
||||||
resp, _, errs = cl.SetPwd(newPwd, pwd, token)
|
resp, _, errs = cl.SetPwd(newPwd, pwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetPwd"], fmt.Sprintf("%s-%s", desc, "SetPwd"))
|
assertResp(t, resp, errs, expectedCodes["SetPwd"], fmt.Sprintf("%s-%s", desc, "SetPwd"))
|
||||||
|
|
||||||
resp, selfResp, errs := cl.Self(token)
|
resp, selfResp, errs := cl.Self()
|
||||||
assertResp(t, resp, errs, expectedCodes["Self"], fmt.Sprintf("%s-%s", desc, "Self"))
|
assertResp(t, resp, errs, expectedCodes["Self"], fmt.Sprintf("%s-%s", desc, "Self"))
|
||||||
|
|
||||||
prefer := selfResp.Preferences
|
prefer := selfResp.Preferences
|
||||||
|
|
||||||
resp, _, errs = cl.SetPreferences(prefer, token)
|
resp, _, errs = cl.SetPreferences(prefer)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetPreferences"], fmt.Sprintf("%s-%s", desc, "SetPreferences"))
|
assertResp(t, resp, errs, expectedCodes["SetPreferences"], fmt.Sprintf("%s-%s", desc, "SetPreferences"))
|
||||||
|
|
||||||
resp, _, errs = cl.IsAuthed(token)
|
resp, _, errs = cl.IsAuthed()
|
||||||
assertResp(t, resp, errs, expectedCodes["IsAuthed"], fmt.Sprintf("%s-%s", desc, "IsAuthed"))
|
assertResp(t, resp, errs, expectedCodes["IsAuthed"], fmt.Sprintf("%s-%s", desc, "IsAuthed"))
|
||||||
|
|
||||||
// user management
|
// user management
|
||||||
resp, addUserResp, errs := cl.AddUser(tmpUser, tmpPwd, tmpRole, token)
|
resp, addUserResp, errs := cl.AddUser(tmpUser, tmpPwd, tmpRole)
|
||||||
assertResp(t, resp, errs, expectedCodes["AddUser"], fmt.Sprintf("%s-%s", desc, "AddUser"))
|
assertResp(t, resp, errs, expectedCodes["AddUser"], fmt.Sprintf("%s-%s", desc, "AddUser"))
|
||||||
resp, addAdminResp, errs := cl.AddUser(tmpAdmin, tmpAdminPwd, db.AdminRole, token)
|
resp, addAdminResp, errs := cl.AddUser(tmpAdmin, tmpAdminPwd, db.AdminRole)
|
||||||
assertResp(t, resp, errs, expectedCodes["AddUser"], fmt.Sprintf("%s-%s", desc, "AddUser"))
|
assertResp(t, resp, errs, expectedCodes["AddUser"], fmt.Sprintf("%s-%s", desc, "AddUser"))
|
||||||
|
|
||||||
resp, _, errs = cl.ListUsers(token)
|
resp, _, errs = cl.ListUsers()
|
||||||
assertResp(t, resp, errs, expectedCodes["ListUsers"], fmt.Sprintf("%s-%s", desc, "ListUsers"))
|
assertResp(t, resp, errs, expectedCodes["ListUsers"], fmt.Sprintf("%s-%s", desc, "ListUsers"))
|
||||||
|
|
||||||
// TODO: the id here should be uint64
|
// TODO: the id here should be uint64
|
||||||
|
@ -175,48 +176,48 @@ func TestPermissions(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = cl.ForceSetPwd(selfResp.ID, newPwd, token)
|
resp, _, errs = cl.ForceSetPwd(selfResp.ID, newPwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["ForceSetPwd"], fmt.Sprintf("%s-%s", desc, "ForceSetPwd"))
|
assertResp(t, resp, errs, expectedCodes["ForceSetPwd"], fmt.Sprintf("%s-%s", desc, "ForceSetPwd"))
|
||||||
resp, _, errs = cl.ForceSetPwd(selfResp.ID, pwd, token)
|
resp, _, errs = cl.ForceSetPwd(selfResp.ID, pwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["ForceSetPwd"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdBack"))
|
assertResp(t, resp, errs, expectedCodes["ForceSetPwd"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdBack"))
|
||||||
|
|
||||||
resp, _, errs = cl.ForceSetPwd(addUserResp.ID, newPwd, token)
|
resp, _, errs = cl.ForceSetPwd(addUserResp.ID, newPwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["ForceSetPwdOther"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdOther"))
|
assertResp(t, resp, errs, expectedCodes["ForceSetPwdOther"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdOther"))
|
||||||
resp, _, errs = cl.ForceSetPwd(addUserResp.ID, pwd, token)
|
resp, _, errs = cl.ForceSetPwd(addUserResp.ID, pwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["ForceSetPwdOther"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdOtherBack"))
|
assertResp(t, resp, errs, expectedCodes["ForceSetPwdOther"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdOtherBack"))
|
||||||
|
|
||||||
resp, _, errs = cl.ForceSetPwd(addAdminResp.ID, newPwd, token)
|
resp, _, errs = cl.ForceSetPwd(addAdminResp.ID, newPwd)
|
||||||
assertResp(t, resp, errs, expectedCodes["ForceSetPwdOtherAdmin"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdOtherAdmin"))
|
assertResp(t, resp, errs, expectedCodes["ForceSetPwdOtherAdmin"], fmt.Sprintf("%s-%s", desc, "ForceSetPwdOtherAdmin"))
|
||||||
|
|
||||||
// update self
|
// update self
|
||||||
resp, _, errs = cl.SetUser(userID, newRole, newQuota, token)
|
resp, _, errs = cl.SetUser(userID, newRole, newQuota)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetUserSelf"], fmt.Sprintf("%s-%s", desc, "SetUserSelf"))
|
assertResp(t, resp, errs, expectedCodes["SetUserSelf"], fmt.Sprintf("%s-%s", desc, "SetUserSelf"))
|
||||||
// update other users
|
// update other users
|
||||||
resp, _, errs = cl.SetUser(tmpUserID, db.AdminRole, newQuota, token)
|
resp, _, errs = cl.SetUser(tmpUserID, db.AdminRole, newQuota)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetUserOthers"], fmt.Sprintf("%s-%s", desc, "SetUserOthers"))
|
assertResp(t, resp, errs, expectedCodes["SetUserOthers"], fmt.Sprintf("%s-%s", desc, "SetUserOthers"))
|
||||||
resp, _, errs = cl.SetUser(tmpAdminID, db.UserRole, newQuota, token)
|
resp, _, errs = cl.SetUser(tmpAdminID, db.UserRole, newQuota)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetUserOthersAdmin"], fmt.Sprintf("%s-%s", desc, "SetUserOthersAdmin"))
|
assertResp(t, resp, errs, expectedCodes["SetUserOthersAdmin"], fmt.Sprintf("%s-%s", desc, "SetUserOthersAdmin"))
|
||||||
|
|
||||||
resp, _, errs = cl.DelUser(addUserResp.ID, token)
|
resp, _, errs = cl.DelUser(addUserResp.ID)
|
||||||
assertResp(t, resp, errs, expectedCodes["DelUser"], fmt.Sprintf("%s-%s", desc, "DelUser"))
|
assertResp(t, resp, errs, expectedCodes["DelUser"], fmt.Sprintf("%s-%s", desc, "DelUser"))
|
||||||
resp, _, errs = cl.DelUser(addAdminResp.ID, token)
|
resp, _, errs = cl.DelUser(addAdminResp.ID)
|
||||||
assertResp(t, resp, errs, expectedCodes["DelUserAdmin"], fmt.Sprintf("%s-%s", desc, "DelUserAdmin"))
|
assertResp(t, resp, errs, expectedCodes["DelUserAdmin"], fmt.Sprintf("%s-%s", desc, "DelUserAdmin"))
|
||||||
|
|
||||||
// role management
|
// role management
|
||||||
resp, _, errs = cl.AddRole(tmpNewRole, token)
|
resp, _, errs = cl.AddRole(tmpNewRole)
|
||||||
assertResp(t, resp, errs, expectedCodes["AddRole"], fmt.Sprintf("%s-%s", desc, "AddRole"))
|
assertResp(t, resp, errs, expectedCodes["AddRole"], fmt.Sprintf("%s-%s", desc, "AddRole"))
|
||||||
|
|
||||||
resp, _, errs = cl.ListRoles(token)
|
resp, _, errs = cl.ListRoles()
|
||||||
assertResp(t, resp, errs, expectedCodes["ListRoles"], fmt.Sprintf("%s-%s", desc, "ListRoles"))
|
assertResp(t, resp, errs, expectedCodes["ListRoles"], fmt.Sprintf("%s-%s", desc, "ListRoles"))
|
||||||
|
|
||||||
resp, _, errs = cl.DelRole(tmpNewRole, token)
|
resp, _, errs = cl.DelRole(tmpNewRole)
|
||||||
assertResp(t, resp, errs, expectedCodes["DelRole"], fmt.Sprintf("%s-%s", desc, "DelRole"))
|
assertResp(t, resp, errs, expectedCodes["DelRole"], fmt.Sprintf("%s-%s", desc, "DelRole"))
|
||||||
|
|
||||||
if requireAuth {
|
if requireAuth {
|
||||||
resp, _, errs := cl.Logout(token)
|
resp, _, errs := cl.Logout()
|
||||||
assertResp(t, resp, errs, 200, fmt.Sprintf("%s-%s", desc, "logout"))
|
assertResp(t, resp, errs, 200, fmt.Sprintf("%s-%s", desc, "logout"))
|
||||||
} else {
|
} else {
|
||||||
resp, _, errs := cl.Logout(token)
|
resp, _, errs := cl.Logout()
|
||||||
assertResp(t, resp, errs, 403, fmt.Sprintf("%s-%s", desc, "logout"))
|
assertResp(t, resp, errs, 403, fmt.Sprintf("%s-%s", desc, "logout"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -339,7 +340,7 @@ func TestPermissions(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if requireAuth {
|
if requireAuth {
|
||||||
resp, _, errs := cl.Logout(token)
|
resp, _, errs := cl.Logout()
|
||||||
assertResp(t, resp, errs, 200, desc)
|
assertResp(t, resp, errs, 200, desc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -498,7 +499,7 @@ func TestPermissions(t *testing.T) {
|
||||||
assertResp(t, resp, errs, expectedCodes["SearchTarget"], fmt.Sprintf("%s-%s", desc, "SearchTarget"))
|
assertResp(t, resp, errs, expectedCodes["SearchTarget"], fmt.Sprintf("%s-%s", desc, "SearchTarget"))
|
||||||
|
|
||||||
if requireAuth {
|
if requireAuth {
|
||||||
resp, _, errs := cl.Logout(token)
|
resp, _, errs := cl.Logout()
|
||||||
assertResp(t, resp, errs, 200, desc)
|
assertResp(t, resp, errs, 200, desc)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -749,21 +750,21 @@ func TestPermissions(t *testing.T) {
|
||||||
token = client.GetCookie(resp.Cookies(), q.TokenCookie)
|
token = client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
settingsCl := client.NewSettingsClient(addr, token)
|
||||||
|
|
||||||
resp, _, errs := settingsCl.Health()
|
resp, _, errs := settingsCl.Health()
|
||||||
assertResp(t, resp, errs, expectedCodes["Health"], fmt.Sprintf("%s-%s", desc, "Health"))
|
assertResp(t, resp, errs, expectedCodes["Health"], fmt.Sprintf("%s-%s", desc, "Health"))
|
||||||
|
|
||||||
resp, gccResp, errs := settingsCl.GetClientCfg(token)
|
resp, gccResp, errs := settingsCl.GetClientCfg()
|
||||||
assertResp(t, resp, errs, expectedCodes["GetClientCfg"], fmt.Sprintf("%s-%s", desc, "GetClientCfg"))
|
assertResp(t, resp, errs, expectedCodes["GetClientCfg"], fmt.Sprintf("%s-%s", desc, "GetClientCfg"))
|
||||||
|
|
||||||
clientCfgMsg := gccResp
|
clientCfgMsg := gccResp
|
||||||
clientCfgMsg.ClientCfg.SiteName = "new name"
|
clientCfgMsg.ClientCfg.SiteName = "new name"
|
||||||
|
|
||||||
resp, _, errs = settingsCl.SetClientCfg(clientCfgMsg, token)
|
resp, _, errs = settingsCl.SetClientCfg(clientCfgMsg)
|
||||||
assertResp(t, resp, errs, expectedCodes["SetClientCfg"], fmt.Sprintf("%s-%s", desc, "SetClientCfg"))
|
assertResp(t, resp, errs, expectedCodes["SetClientCfg"], fmt.Sprintf("%s-%s", desc, "SetClientCfg"))
|
||||||
|
|
||||||
resp, _, errs = settingsCl.ReportErrors(errReports, token)
|
resp, _, errs = settingsCl.ReportErrors(errReports)
|
||||||
assertResp(t, resp, errs, expectedCodes["ReportErrors"], fmt.Sprintf("%s-%s", desc, "ReportErrors"))
|
assertResp(t, resp, errs, expectedCodes["ReportErrors"], fmt.Sprintf("%s-%s", desc, "ReportErrors"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,7 +73,7 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
users := addUsers(t, addr, userPwd, 1, adminToken)
|
users := addUsers(t, addr, userPwd, 1, adminToken)
|
||||||
|
|
||||||
t.Run("get/set client config", func(t *testing.T) {
|
t.Run("get/set client config", func(t *testing.T) {
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
adminSettingsCli := client.NewSettingsClient(addr, adminToken)
|
||||||
cfgs := []*db.ClientConfig{
|
cfgs := []*db.ClientConfig{
|
||||||
&db.ClientConfig{
|
&db.ClientConfig{
|
||||||
SiteName: "quickshare",
|
SiteName: "quickshare",
|
||||||
|
@ -93,14 +93,14 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
ClientCfg: cfg,
|
ClientCfg: cfg,
|
||||||
CaptchaEnabled: false,
|
CaptchaEnabled: false,
|
||||||
}
|
}
|
||||||
resp, _, errs := settingsCl.SetClientCfg(clientCfgMsg, adminToken)
|
resp, _, errs := adminSettingsCli.SetClientCfg(clientCfgMsg)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, clientCfgMsgGot, errs := settingsCl.GetClientCfg(adminToken)
|
resp, clientCfgMsgGot, errs := adminSettingsCli.GetClientCfg()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -120,7 +120,8 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
userToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
userToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
|
|
||||||
resp, clientCfgMsgGot, errs := settingsCl.GetClientCfg(userToken)
|
userSettingsCli := client.NewSettingsClient(addr, userToken)
|
||||||
|
resp, clientCfgMsgGot, errs := userSettingsCli.GetClientCfg()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -135,7 +136,7 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("ReportErrors", func(t *testing.T) {
|
t.Run("ReportErrors", func(t *testing.T) {
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
adminSettingsCli := client.NewSettingsClient(addr, adminToken)
|
||||||
reports := &settings.ClientErrorReports{
|
reports := &settings.ClientErrorReports{
|
||||||
Reports: []*settings.ClientErrorReport{
|
Reports: []*settings.ClientErrorReport{
|
||||||
&settings.ClientErrorReport{
|
&settings.ClientErrorReport{
|
||||||
|
@ -149,7 +150,7 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
reportResp, _, errs := settingsCl.ReportErrors(reports, adminToken)
|
reportResp, _, errs := adminSettingsCli.ReportErrors(reports)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if reportResp.StatusCode != 200 {
|
} else if reportResp.StatusCode != 200 {
|
||||||
|
@ -178,9 +179,9 @@ func TestSettingsHandlers(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("WorkerQueueLen", func(t *testing.T) {
|
t.Run("WorkerQueueLen", func(t *testing.T) {
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
adminSettingsCli := client.NewSettingsClient(addr, adminToken)
|
||||||
|
|
||||||
reportResp, _, errs := settingsCl.WorkerQueueLen(adminToken)
|
reportResp, _, errs := adminSettingsCli.WorkerQueueLen()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if reportResp.StatusCode != 200 {
|
} else if reportResp.StatusCode != 200 {
|
||||||
|
|
|
@ -63,14 +63,14 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
t.Fatal("fail to start server")
|
t.Fatal("fail to start server")
|
||||||
}
|
}
|
||||||
|
|
||||||
usersCl := client.NewUsersClient(addr)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login(adminName, adminPwd)
|
resp, _, errs := adminUsersCli.Login(adminName, adminPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
adminToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
|
|
||||||
userCount := 1
|
userCount := 1
|
||||||
userPwd := "1234"
|
userPwd := "1234"
|
||||||
|
@ -82,7 +82,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
for i := 0; i < userCount; i++ {
|
for i := 0; i < userCount; i++ {
|
||||||
userName := getUserName(i)
|
userName := getUserName(i)
|
||||||
|
|
||||||
resp, adResp, errs := usersCl.AddUser(userName, userPwd, db.UserRole, token)
|
resp, adResp, errs := adminUsersCli.AddUser(userName, userPwd, db.UserRole)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -92,7 +92,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
users[userName] = adResp.ID
|
users[userName] = adResp.ID
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = adminUsersCli.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -100,14 +100,14 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("test space limiting: Upload", func(t *testing.T) {
|
t.Run("test space limiting: Upload", func(t *testing.T) {
|
||||||
usersCl := client.NewUsersClient(addr)
|
usersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login(getUserName(0), userPwd)
|
resp, _, errs := usersCli.Login(getUserName(0), userPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
userToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
|
|
||||||
fileContent := ""
|
fileContent := ""
|
||||||
for i := 0; i < fileSize; i++ {
|
for i := 0; i < fileSize; i++ {
|
||||||
|
@ -115,12 +115,12 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < spaceLimit/fileSize; i++ {
|
for i := 0; i < spaceLimit/fileSize; i++ {
|
||||||
ok := assertUploadOK(t, fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), i), fileContent, addr, token)
|
ok := assertUploadOK(t, fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), i), fileContent, addr, userToken)
|
||||||
if !ok {
|
if !ok {
|
||||||
t.Fatalf("space limit failed at %d", i)
|
t.Fatalf("space limit failed at %d", i)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := usersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -130,9 +130,9 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cl := client.NewFilesClient(addr, token)
|
userFilesClient := client.NewFilesClient(addr, userToken)
|
||||||
filePath := fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), 11)
|
filePath := fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), 11)
|
||||||
res, _, errs := cl.Create(filePath, 1)
|
res, _, errs := userFilesClient.Create(filePath, 1)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 403 {
|
} else if res.StatusCode != 403 {
|
||||||
|
@ -140,14 +140,14 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < spaceLimit/fileSize; i++ {
|
for i := 0; i < spaceLimit/fileSize; i++ {
|
||||||
resp, _, errs := cl.Delete(fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), i))
|
resp, _, errs := userFilesClient.Delete(fmt.Sprintf("%s/files/spacelimit/f_%d", getUserName(0), i))
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatalf("failed to delete %d", i)
|
t.Fatalf("failed to delete %d", i)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatalf("failed to delete status %d", resp.StatusCode)
|
t.Fatalf("failed to delete status %d", resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := usersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -161,10 +161,10 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
t.Run("usedSpace keeps correct in operations: Mkdir-Create-UploadChunk-AddSharing-Move-IsSharing-List", func(t *testing.T) {
|
t.Run("usedSpace keeps correct in operations: Mkdir-Create-UploadChunk-AddSharing-Move-IsSharing-List", func(t *testing.T) {
|
||||||
srcDir := "qs/files/folder/move/src"
|
srcDir := "qs/files/folder/move/src"
|
||||||
dstDir := "qs/files/folder/move/dst"
|
dstDir := "qs/files/folder/move/dst"
|
||||||
filesCl := client.NewFilesClient(addr, token)
|
adminFilesCli := client.NewFilesClient(addr, adminToken)
|
||||||
|
|
||||||
getUsedSpace := func() int64 {
|
getUsedSpace := func() int64 {
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := adminUsersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -177,7 +177,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
initUsedSpace := getUsedSpace()
|
initUsedSpace := getUsedSpace()
|
||||||
|
|
||||||
for _, dirPath := range []string{srcDir, dstDir} {
|
for _, dirPath := range []string{srcDir, dstDir} {
|
||||||
res, _, errs := filesCl.Mkdir(dirPath)
|
res, _, errs := adminFilesCli.Mkdir(dirPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -195,7 +195,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
}
|
}
|
||||||
for fileName, content := range files {
|
for fileName, content := range files {
|
||||||
oldPath := filepath.Join(srcDir, fileName)
|
oldPath := filepath.Join(srcDir, fileName)
|
||||||
assertUploadOK(t, oldPath, content, addr, token)
|
assertUploadOK(t, oldPath, content, addr, adminToken)
|
||||||
expectedUsedSpace += int64(len(content))
|
expectedUsedSpace += int64(len(content))
|
||||||
}
|
}
|
||||||
if getUsedSpace() != expectedUsedSpace {
|
if getUsedSpace() != expectedUsedSpace {
|
||||||
|
@ -205,7 +205,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
for fileName := range files {
|
for fileName := range files {
|
||||||
oldPath := filepath.Join(srcDir, fileName)
|
oldPath := filepath.Join(srcDir, fileName)
|
||||||
newPath := filepath.Join(dstDir, fileName)
|
newPath := filepath.Join(dstDir, fileName)
|
||||||
res, _, errs := filesCl.Move(oldPath, newPath)
|
res, _, errs := adminFilesCli.Move(oldPath, newPath)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -217,7 +217,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res, _, errs := filesCl.Delete(dstDir)
|
res, _, errs := adminFilesCli.Delete(dstDir)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if res.StatusCode != 200 {
|
} else if res.StatusCode != 200 {
|
||||||
|
@ -230,21 +230,21 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("ResetUsedSpace", func(t *testing.T) {
|
t.Run("ResetUsedSpace", func(t *testing.T) {
|
||||||
usersCl := client.NewUsersClient(addr)
|
usersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login("test", "test")
|
resp, _, errs := usersCli.Login("test", "test")
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
userToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||||
|
|
||||||
ok := assertUploadOK(t, "test/files/spacelimit/byte1", "0", addr, token)
|
ok := assertUploadOK(t, "test/files/spacelimit/byte1", "0", addr, userToken)
|
||||||
if !ok {
|
if !ok {
|
||||||
t.Fatal("upload failed")
|
t.Fatal("upload failed")
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := usersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -256,16 +256,16 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
resp, _, errs = usersCl.ResetUsedSpace(uidInt, token)
|
resp, _, errs = usersCli.ResetUsedSpace(uidInt)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
settingsCli := client.NewSettingsClient(addr, userToken)
|
||||||
for i := 0; i < 20; i++ {
|
for i := 0; i < 20; i++ {
|
||||||
resp, wqlResp, errs := settingsCl.WorkerQueueLen(token)
|
resp, wqlResp, errs := settingsCli.WorkerQueueLen()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -279,7 +279,7 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
time.Sleep(200)
|
time.Sleep(200)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs = usersCl.Self(token)
|
resp, selfResp, errs = usersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -288,11 +288,4 @@ func TestSpaceLimit(t *testing.T) {
|
||||||
t.Fatalf("used space not equal %d %d", selfResp.UsedSpace, originalUsedSpace)
|
t.Fatalf("used space not equal %d %d", selfResp.UsedSpace, originalUsedSpace)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
|
||||||
if len(errs) > 0 {
|
|
||||||
t.Fatal(errs)
|
|
||||||
} else if resp.StatusCode != 200 {
|
|
||||||
t.Fatal(resp.StatusCode)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ import (
|
||||||
"github.com/ihexxa/quickshare/src/db"
|
"github.com/ihexxa/quickshare/src/db"
|
||||||
q "github.com/ihexxa/quickshare/src/handlers"
|
q "github.com/ihexxa/quickshare/src/handlers"
|
||||||
"github.com/ihexxa/quickshare/src/handlers/settings"
|
"github.com/ihexxa/quickshare/src/handlers/settings"
|
||||||
su "github.com/ihexxa/quickshare/src/handlers/singleuserhdr"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUsersHandlers(t *testing.T) {
|
func TestUsersHandlers(t *testing.T) {
|
||||||
|
@ -72,8 +71,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
defer srv.Shutdown()
|
defer srv.Shutdown()
|
||||||
fs := srv.depsFS()
|
fs := srv.depsFS()
|
||||||
|
|
||||||
usersCl := client.NewUsersClient(addr)
|
// adminUsersCli := client.NewUsersClient(addr)
|
||||||
settingsCl := client.NewSettingsClient(addr)
|
|
||||||
|
|
||||||
if !isServerReady(addr) {
|
if !isServerReady(addr) {
|
||||||
t.Fatal("fail to start server")
|
t.Fatal("fail to start server")
|
||||||
|
@ -82,16 +80,16 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
t.Run("test inited users", func(t *testing.T) {
|
t.Run("test inited users", func(t *testing.T) {
|
||||||
usersCl := client.NewUsersClient(addr)
|
usersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login(adminName, adminPwd)
|
resp, _, errs := usersCli.Login(adminName, adminPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
// userToken := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
||||||
|
|
||||||
resp, lsResp, errs := usersCl.ListUsers(token)
|
resp, lsResp, errs := usersCli.ListUsers()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -164,16 +162,15 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, user := range users {
|
for _, user := range users {
|
||||||
usersCl := client.NewUsersClient(addr)
|
userUsersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login(user.Name, user.Pwd)
|
resp, _, errs := userUsersCli.Login(user.Name, user.Pwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := userUsersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -193,21 +190,21 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.SetPwd(user.Pwd, adminNewPwd, token)
|
resp, _, errs = userUsersCli.SetPwd(user.Pwd, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = userUsersCli.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Login(user.Name, adminNewPwd)
|
resp, _, errs = userUsersCli.Login(user.Name, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -217,16 +214,17 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("test users APIs: Login-AddUser-Logout-Login-Logout", func(t *testing.T) {
|
t.Run("test users APIs: Login-AddUser-Logout-Login-Logout", func(t *testing.T) {
|
||||||
resp, _, errs := usersCl.Login(adminName, adminNewPwd)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
|
resp, _, errs := adminUsersCli.Login(adminName, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
// adminToken := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
||||||
|
|
||||||
userName, userPwd := "user_login", "1234"
|
userName, userPwd := "user_login", "1234"
|
||||||
resp, auResp, errs := usersCl.AddUser(userName, userPwd, db.UserRole, token)
|
resp, auResp, errs := adminUsersCli.AddUser(userName, userPwd, db.UserRole)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -247,28 +245,28 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = adminUsersCli.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Login(userName, userPwd)
|
resp, _, errs = adminUsersCli.Login(adminName, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.DelUser(auResp.ID, token)
|
resp, _, errs = adminUsersCli.DelUser(auResp.ID)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = adminUsersCli.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -277,17 +275,18 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("test users APIs: Login-AddUser-ListUsers-SetUser-ListUsers-DelUser-ListUsers", func(t *testing.T) {
|
t.Run("test users APIs: Login-AddUser-ListUsers-SetUser-ListUsers-DelUser-ListUsers", func(t *testing.T) {
|
||||||
resp, _, errs := usersCl.Login(adminName, adminNewPwd)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
|
resp, _, errs := adminUsersCli.Login(adminName, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
// token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
||||||
|
|
||||||
userName, userPwd, userRole := "new_user", "1234", db.UserRole
|
userName, userPwd, userRole := "new_user", "1234", db.UserRole
|
||||||
resp, auResp, errs := usersCl.AddUser(userName, userPwd, userRole, token)
|
resp, auResp, errs := adminUsersCli.AddUser(userName, userPwd, userRole)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -300,7 +299,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, lsResp, errs := usersCl.ListUsers(token)
|
resp, lsResp, errs := adminUsersCli.ListUsers()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -330,14 +329,14 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
UploadSpeedLimit: 3,
|
UploadSpeedLimit: 3,
|
||||||
DownloadSpeedLimit: 3,
|
DownloadSpeedLimit: 3,
|
||||||
}
|
}
|
||||||
resp, _, errs = usersCl.SetUser(newUserID, newRole, newQuota, token)
|
resp, _, errs = adminUsersCli.SetUser(newUserID, newRole, newQuota)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, lsResp, errs = usersCl.ListUsers(token)
|
resp, lsResp, errs = adminUsersCli.ListUsers()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -360,14 +359,14 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.DelUser(auResp.ID, token)
|
resp, _, errs = adminUsersCli.DelUser(auResp.ID)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, lsResp, errs = usersCl.ListUsers(token)
|
resp, lsResp, errs = adminUsersCli.ListUsers()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -377,7 +376,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
t.Fatal(fmt.Errorf("incorrect users size (%d)", len(lsResp.Users)))
|
t.Fatal(fmt.Errorf("incorrect users size (%d)", len(lsResp.Users)))
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = adminUsersCli.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -386,18 +385,19 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("test roles APIs: Login-AddRole-ListRoles-DelRole-ListRoles-Logout", func(t *testing.T) {
|
t.Run("test roles APIs: Login-AddRole-ListRoles-DelRole-ListRoles-Logout", func(t *testing.T) {
|
||||||
resp, _, errs := usersCl.Login(adminName, adminNewPwd)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
|
resp, _, errs := adminUsersCli.Login(adminName, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
// token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
||||||
roles := []string{"role1", "role2"}
|
roles := []string{"role1", "role2"}
|
||||||
|
|
||||||
for _, role := range roles {
|
for _, role := range roles {
|
||||||
resp, _, errs := usersCl.AddRole(role, token)
|
resp, _, errs := adminUsersCli.AddRole(role)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -405,7 +405,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, lsResp, errs := usersCl.ListRoles(token)
|
resp, lsResp, errs := adminUsersCli.ListRoles()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -422,7 +422,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, role := range roles {
|
for _, role := range roles {
|
||||||
resp, _, errs := usersCl.DelRole(role, token)
|
resp, _, errs := adminUsersCli.DelRole(role)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -430,7 +430,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, lsResp, errs = usersCl.ListRoles(token)
|
resp, lsResp, errs = adminUsersCli.ListRoles()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -442,7 +442,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, _, errs = usersCl.Logout(token)
|
resp, _, errs = adminUsersCli.Logout()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -451,15 +451,15 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("Login, SetPreferences, Self, Logout", func(t *testing.T) {
|
t.Run("Login, SetPreferences, Self, Logout", func(t *testing.T) {
|
||||||
usersCl := client.NewUsersClient(addr)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
resp, _, errs := usersCl.Login(adminName, adminNewPwd)
|
resp, _, errs := adminUsersCli.Login(adminName, adminNewPwd)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
// token := client.GetCookie(resp.Cookies(), su.TokenCookie)
|
||||||
|
|
||||||
prefers := []*db.Preferences{
|
prefers := []*db.Preferences{
|
||||||
{
|
{
|
||||||
|
@ -494,14 +494,14 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for _, prefer := range prefers {
|
for _, prefer := range prefers {
|
||||||
resp, _, errs := usersCl.SetPreferences(prefer, token)
|
resp, _, errs := adminUsersCli.SetPreferences(prefer)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := adminUsersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -514,6 +514,8 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// disable setting bg in preferences
|
// disable setting bg in preferences
|
||||||
|
|
||||||
|
settingsCl := client.NewSettingsClient(addr, adminUsersCli.Token())
|
||||||
resp, _, errs = settingsCl.SetClientCfg(&settings.ClientCfgMsg{
|
resp, _, errs = settingsCl.SetClientCfg(&settings.ClientCfgMsg{
|
||||||
ClientCfg: &db.ClientConfig{
|
ClientCfg: &db.ClientConfig{
|
||||||
SiteName: "Quickshare",
|
SiteName: "Quickshare",
|
||||||
|
@ -523,9 +525,7 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
AutoTheme: true,
|
AutoTheme: true,
|
||||||
},
|
},
|
||||||
CaptchaEnabled: false,
|
CaptchaEnabled: false,
|
||||||
},
|
})
|
||||||
token,
|
|
||||||
)
|
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -533,14 +533,14 @@ func TestUsersHandlers(t *testing.T) {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, prefer := range prefers {
|
for _, prefer := range prefers {
|
||||||
resp, _, errs := usersCl.SetPreferences(prefer, token)
|
resp, _, errs := adminUsersCli.SetPreferences(prefer)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
t.Fatal(resp.StatusCode)
|
t.Fatal(resp.StatusCode)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, selfResp, errs := usersCl.Self(token)
|
resp, selfResp, errs := adminUsersCli.Self()
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
|
|
@ -59,12 +59,13 @@ func getUserName(id int) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func addUsers(t *testing.T, addr, userPwd string, userCount int, adminToken *http.Cookie) map[string]string {
|
func addUsers(t *testing.T, addr, userPwd string, userCount int, adminToken *http.Cookie) map[string]string {
|
||||||
usersCl := client.NewUsersClient(addr)
|
adminUsersCli := client.NewUsersClient(addr)
|
||||||
|
adminUsersCli.SetToken(adminToken)
|
||||||
users := map[string]string{}
|
users := map[string]string{}
|
||||||
for i := range make([]int, userCount) {
|
for i := range make([]int, userCount) {
|
||||||
userName := getUserName(i)
|
userName := getUserName(i)
|
||||||
|
|
||||||
resp, adResp, errs := usersCl.AddUser(userName, userPwd, db.UserRole, adminToken)
|
resp, adResp, errs := adminUsersCli.AddUser(userName, userPwd, db.UserRole)
|
||||||
if len(errs) > 0 {
|
if len(errs) > 0 {
|
||||||
t.Fatal(errs)
|
t.Fatal(errs)
|
||||||
} else if resp.StatusCode != 200 {
|
} else if resp.StatusCode != 200 {
|
||||||
|
@ -79,7 +80,7 @@ func addUsers(t *testing.T, addr, userPwd string, userCount int, adminToken *htt
|
||||||
|
|
||||||
func isServerReady(addr string) bool {
|
func isServerReady(addr string) bool {
|
||||||
retry := 20
|
retry := 20
|
||||||
setCl := client.NewSettingsClient(addr)
|
setCl := client.NewSettingsClient(addr, nil)
|
||||||
|
|
||||||
for retry > 0 {
|
for retry > 0 {
|
||||||
_, _, errs := setCl.Health()
|
_, _, errs := setCl.Health()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue