/
user_test_common.go
74 lines (65 loc) · 2.95 KB
/
user_test_common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package client
import (
"bytes"
"fmt"
"github.com/jenkins-zh/jenkins-cli/mock/mhttp"
httpdownloader "github.com/linuxsuren/http-downloader/pkg"
"io/ioutil"
"net/http"
"net/url"
"strings"
)
// PrepareGetUser only for test
func PrepareGetUser(roundTripper *mhttp.MockRoundTripper, rootURL, user, passwd string) (
response *http.Response) {
request, _ := http.NewRequest(http.MethodGet, fmt.Sprintf("%s/user/%s/api/json", rootURL, user), nil)
response = &http.Response{
StatusCode: 200,
Request: request,
Body: ioutil.NopCloser(bytes.NewBufferString(`{"fullName":"admin","description":"fake-description"}`)),
}
roundTripper.EXPECT().
RoundTrip(NewRequestMatcher(request)).Return(response, nil)
if user != "" && passwd != "" {
request.SetBasicAuth(user, passwd)
}
return
}
// PrepareCreateUser only for test
func PrepareCreateUser(roundTripper *mhttp.MockRoundTripper, rootURL,
user, passwd, targetUserName string) (response *http.Response) {
payload, _ := genSimpleUserAsPayload(targetUserName, "fakePass")
request, _ := http.NewRequest(http.MethodPost, fmt.Sprintf("%s/securityRealm/createAccountByAdmin", rootURL), payload)
request.Header.Add(httpdownloader.ContentType, httpdownloader.ApplicationForm)
response = PrepareCommonPost(request, "", roundTripper, user, passwd, rootURL)
return
}
// PrepareCreateToken only for test
func PrepareCreateToken(roundTripper *mhttp.MockRoundTripper, rootURL,
user, passwd, newTokenName, targetUser string) (response *http.Response) {
formData := url.Values{}
formData.Add("newTokenName", newTokenName)
payload := strings.NewReader(formData.Encode())
request, _ := http.NewRequest(http.MethodPost, fmt.Sprintf("%s/user/%s/descriptorByName/jenkins.security.ApiTokenProperty/generateNewToken", rootURL, targetUser), payload)
request.Header.Add(httpdownloader.ContentType, httpdownloader.ApplicationForm)
response = PrepareCommonPost(request, `{"status":"ok"}`, roundTripper, user, passwd, rootURL)
return
}
// PrepareForEditUserDesc only for test
func PrepareForEditUserDesc(roundTripper *mhttp.MockRoundTripper, rootURL, userName, description, user, passwd string) {
formData := url.Values{}
formData.Add("description", description)
payload := strings.NewReader(formData.Encode())
request, _ := http.NewRequest(http.MethodPost, fmt.Sprintf("%s/user/%s/submitDescription", rootURL, userName), payload)
request.Header.Add(httpdownloader.ContentType, httpdownloader.ApplicationForm)
PrepareCommonPost(request, "", roundTripper, user, passwd, rootURL)
return
}
// PrepareForDeleteUser only for test
func PrepareForDeleteUser(roundTripper *mhttp.MockRoundTripper, rootURL, userName, user, passwd string) (
response *http.Response) {
request, _ := http.NewRequest(http.MethodPost, fmt.Sprintf("%s/securityRealm/user/%s/doDelete", rootURL, userName), nil)
request.Header.Add(httpdownloader.ContentType, httpdownloader.ApplicationForm)
response = PrepareCommonPost(request, "", roundTripper, user, passwd, rootURL)
return
}