loading up the forgejo repo on tangled to test page performance
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Convert to url auth to header auth in tests (#28484)

Related #28390

authored by

KN4CK3R and committed by
GitHub
838db2f8 04b235d0

+1714 -1522
+43 -46
tests/integration/api_actions_artifact_test.go
··· 30 30 req := NewRequestWithJSON(t, "POST", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts", getUploadArtifactRequest{ 31 31 Type: "actions_storage", 32 32 Name: "artifact", 33 - }) 34 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 33 + }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 35 34 resp := MakeRequest(t, req, http.StatusOK) 36 35 var uploadResp uploadArtifactResponse 37 36 DecodeJSON(t, resp, &uploadResp) ··· 43 42 44 43 // upload artifact chunk 45 44 body := strings.Repeat("A", 1024) 46 - req = NewRequestWithBody(t, "PUT", url, strings.NewReader(body)) 47 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 48 - req.Header.Add("Content-Range", "bytes 0-1023/1024") 49 - req.Header.Add("x-tfs-filelength", "1024") 50 - req.Header.Add("x-actions-results-md5", "1HsSe8LeLWh93ILaw1TEFQ==") // base64(md5(body)) 45 + req = NewRequestWithBody(t, "PUT", url, strings.NewReader(body)). 46 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a"). 47 + SetHeader("Content-Range", "bytes 0-1023/1024"). 48 + SetHeader("x-tfs-filelength", "1024"). 49 + SetHeader("x-actions-results-md5", "1HsSe8LeLWh93ILaw1TEFQ==") // base64(md5(body)) 51 50 MakeRequest(t, req, http.StatusOK) 52 51 53 52 t.Logf("Create artifact confirm") 54 53 55 54 // confirm artifact upload 56 - req = NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts?artifactName=artifact") 57 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 55 + req = NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts?artifactName=artifact"). 56 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 58 57 MakeRequest(t, req, http.StatusOK) 59 58 } 60 59 ··· 64 63 // artifact id 54321 not exist 65 64 url := "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts/8e5b948a454515dbabfc7eb718ddddddd/upload?itemPath=artifact/abc.txt" 66 65 body := strings.Repeat("A", 1024) 67 - req := NewRequestWithBody(t, "PUT", url, strings.NewReader(body)) 68 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 69 - req.Header.Add("Content-Range", "bytes 0-1023/1024") 70 - req.Header.Add("x-tfs-filelength", "1024") 71 - req.Header.Add("x-actions-results-md5", "1HsSe8LeLWh93ILaw1TEFQ==") // base64(md5(body)) 66 + req := NewRequestWithBody(t, "PUT", url, strings.NewReader(body)). 67 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a"). 68 + SetHeader("Content-Range", "bytes 0-1023/1024"). 69 + SetHeader("x-tfs-filelength", "1024"). 70 + SetHeader("x-actions-results-md5", "1HsSe8LeLWh93ILaw1TEFQ==") // base64(md5(body)) 72 71 resp := MakeRequest(t, req, http.StatusBadRequest) 73 72 assert.Contains(t, resp.Body.String(), "Invalid artifact hash") 74 73 } ··· 76 75 func TestActionsArtifactConfirmUploadWithoutName(t *testing.T) { 77 76 defer tests.PrepareTestEnv(t)() 78 77 79 - req := NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts") 80 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 78 + req := NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). 79 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 81 80 resp := MakeRequest(t, req, http.StatusBadRequest) 82 81 assert.Contains(t, resp.Body.String(), "artifact name is empty") 83 82 } ··· 111 110 func TestActionsArtifactDownload(t *testing.T) { 112 111 defer tests.PrepareTestEnv(t)() 113 112 114 - req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts") 115 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 113 + req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). 114 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 116 115 resp := MakeRequest(t, req, http.StatusOK) 117 116 var listResp listArtifactsResponse 118 117 DecodeJSON(t, resp, &listResp) ··· 122 121 123 122 idx := strings.Index(listResp.Value[0].FileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/") 124 123 url := listResp.Value[0].FileContainerResourceURL[idx+1:] + "?itemPath=artifact" 125 - req = NewRequest(t, "GET", url) 126 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 124 + req = NewRequest(t, "GET", url). 125 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 127 126 resp = MakeRequest(t, req, http.StatusOK) 128 127 var downloadResp downloadArtifactResponse 129 128 DecodeJSON(t, resp, &downloadResp) ··· 134 133 135 134 idx = strings.Index(downloadResp.Value[0].ContentLocation, "/api/actions_pipeline/_apis/pipelines/") 136 135 url = downloadResp.Value[0].ContentLocation[idx:] 137 - req = NewRequest(t, "GET", url) 138 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 136 + req = NewRequest(t, "GET", url). 137 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 139 138 resp = MakeRequest(t, req, http.StatusOK) 140 139 body := strings.Repeat("A", 1024) 141 140 assert.Equal(t, resp.Body.String(), body) ··· 150 149 req := NewRequestWithJSON(t, "POST", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts", getUploadArtifactRequest{ 151 150 Type: "actions_storage", 152 151 Name: testArtifactName, 153 - }) 154 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 152 + }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 155 153 resp := MakeRequest(t, req, http.StatusOK) 156 154 var uploadResp uploadArtifactResponse 157 155 DecodeJSON(t, resp, &uploadResp) ··· 182 180 url := uploadResp.FileContainerResourceURL[idx:] + "?itemPath=" + testArtifactName + "/" + f.Path 183 181 184 182 // upload artifact chunk 185 - req = NewRequestWithBody(t, "PUT", url, strings.NewReader(f.Content)) 186 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 187 - req.Header.Add("Content-Range", "bytes 0-1023/1024") 188 - req.Header.Add("x-tfs-filelength", "1024") 189 - req.Header.Add("x-actions-results-md5", f.MD5) // base64(md5(body)) 183 + req = NewRequestWithBody(t, "PUT", url, strings.NewReader(f.Content)). 184 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a"). 185 + SetHeader("Content-Range", "bytes 0-1023/1024"). 186 + SetHeader("x-tfs-filelength", "1024"). 187 + SetHeader("x-actions-results-md5", f.MD5) // base64(md5(body)) 190 188 MakeRequest(t, req, http.StatusOK) 191 189 } 192 190 193 191 t.Logf("Create artifact confirm") 194 192 195 193 // confirm artifact upload 196 - req = NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts?artifactName="+testArtifactName) 197 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 194 + req = NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts?artifactName="+testArtifactName). 195 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 198 196 MakeRequest(t, req, http.StatusOK) 199 197 } 200 198 ··· 203 201 204 202 const testArtifactName = "multi-files" 205 203 206 - req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts") 207 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 204 + req := NewRequest(t, "GET", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts"). 205 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 208 206 resp := MakeRequest(t, req, http.StatusOK) 209 207 var listResp listArtifactsResponse 210 208 DecodeJSON(t, resp, &listResp) ··· 221 219 222 220 idx := strings.Index(fileContainerResourceURL, "/api/actions_pipeline/_apis/pipelines/") 223 221 url := fileContainerResourceURL[idx+1:] + "?itemPath=" + testArtifactName 224 - req = NewRequest(t, "GET", url) 225 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 222 + req = NewRequest(t, "GET", url). 223 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 226 224 resp = MakeRequest(t, req, http.StatusOK) 227 225 var downloadResp downloadArtifactResponse 228 226 DecodeJSON(t, resp, &downloadResp) ··· 246 244 247 245 idx = strings.Index(value.ContentLocation, "/api/actions_pipeline/_apis/pipelines/") 248 246 url = value.ContentLocation[idx:] 249 - req = NewRequest(t, "GET", url) 250 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 247 + req = NewRequest(t, "GET", url). 248 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 251 249 resp = MakeRequest(t, req, http.StatusOK) 252 250 body := strings.Repeat(bodyChar, 1024) 253 251 assert.Equal(t, resp.Body.String(), body) ··· 262 260 Type: "actions_storage", 263 261 Name: "artifact-retention-days", 264 262 RetentionDays: 9, 265 - }) 266 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 263 + }).AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 267 264 resp := MakeRequest(t, req, http.StatusOK) 268 265 var uploadResp uploadArtifactResponse 269 266 DecodeJSON(t, resp, &uploadResp) ··· 276 273 277 274 // upload artifact chunk 278 275 body := strings.Repeat("A", 1024) 279 - req = NewRequestWithBody(t, "PUT", url, strings.NewReader(body)) 280 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 281 - req.Header.Add("Content-Range", "bytes 0-1023/1024") 282 - req.Header.Add("x-tfs-filelength", "1024") 283 - req.Header.Add("x-actions-results-md5", "1HsSe8LeLWh93ILaw1TEFQ==") // base64(md5(body)) 276 + req = NewRequestWithBody(t, "PUT", url, strings.NewReader(body)). 277 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a"). 278 + SetHeader("Content-Range", "bytes 0-1023/1024"). 279 + SetHeader("x-tfs-filelength", "1024"). 280 + SetHeader("x-actions-results-md5", "1HsSe8LeLWh93ILaw1TEFQ==") // base64(md5(body)) 284 281 MakeRequest(t, req, http.StatusOK) 285 282 286 283 t.Logf("Create artifact confirm") 287 284 288 285 // confirm artifact upload 289 - req = NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts?artifactName=artifact-retention-days") 290 - req = addTokenAuthHeader(req, "Bearer 8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 286 + req = NewRequest(t, "PATCH", "/api/actions_pipeline/_apis/pipelines/workflows/791/artifacts?artifactName=artifact-retention-days"). 287 + AddTokenAuth("8061e833a55f6fc0157c98b883e91fcfeeb1a71a") 291 288 MakeRequest(t, req, http.StatusOK) 292 289 }
+2 -2
tests/integration/api_activitypub_person_test.go
··· 32 32 onGiteaRun(t, func(*testing.T, *url.URL) { 33 33 userID := 2 34 34 username := "user2" 35 - req := NewRequestf(t, "GET", fmt.Sprintf("/api/v1/activitypub/user-id/%v", userID)) 35 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/activitypub/user-id/%v", userID)) 36 36 resp := MakeRequest(t, req, http.StatusOK) 37 37 body := resp.Body.Bytes() 38 38 assert.Contains(t, string(body), "@context") ··· 68 68 }() 69 69 70 70 onGiteaRun(t, func(*testing.T, *url.URL) { 71 - req := NewRequestf(t, "GET", "/api/v1/activitypub/user-id/999999999") 71 + req := NewRequest(t, "GET", "/api/v1/activitypub/user-id/999999999") 72 72 resp := MakeRequest(t, req, http.StatusNotFound) 73 73 assert.Contains(t, resp.Body.String(), "user does not exist") 74 74 })
+6 -3
tests/integration/api_admin_org_test.go
··· 31 31 Location: "Shanghai", 32 32 Visibility: "private", 33 33 } 34 - req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs?token="+token, &org) 34 + req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org). 35 + AddTokenAuth(token) 35 36 resp := MakeRequest(t, req, http.StatusCreated) 36 37 37 38 var apiOrg api.Organization ··· 65 66 Location: "Shanghai", 66 67 Visibility: "notvalid", 67 68 } 68 - req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs?token="+token, &org) 69 + req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org). 70 + AddTokenAuth(token) 69 71 MakeRequest(t, req, http.StatusUnprocessableEntity) 70 72 }) 71 73 } ··· 83 85 Location: "Shanghai", 84 86 Visibility: "public", 85 87 } 86 - req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs?token="+token, &org) 88 + req := NewRequestWithJSON(t, "POST", "/api/v1/admin/users/user2/orgs", &org). 89 + AddTokenAuth(token) 87 90 MakeRequest(t, req, http.StatusForbidden) 88 91 }
+45 -44
tests/integration/api_admin_test.go
··· 27 27 keyOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{Name: "user2"}) 28 28 29 29 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteAdmin) 30 - urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys?token=%s", keyOwner.Name, token) 30 + urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys", keyOwner.Name) 31 31 req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 32 32 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4cn+iXnA4KvcQYSV88vGn0Yi91vG47t1P7okprVmhNTkipNRIHWr6WdCO4VDr/cvsRkuVJAsLO2enwjGWWueOO6BodiBgyAOZ/5t5nJNMCNuLGT5UIo/RI1b0WRQwxEZTRjt6mFNw6lH14wRd8ulsr9toSWBPMOGWoYs1PDeDL0JuTjL+tr1SZi/EyxCngpYszKdXllJEHyI79KQgeD0Vt3pTrkbNVTOEcCNqZePSVmUH8X8Vhugz3bnE0/iE9Pb5fkWO9c4AnM1FgI/8Bvp27Fw2ShryIXuR6kKvUqhVMTuOSDHwu6A8jLE5Owt3GAYugDpDYuwTVNGrHLXKpPzrGGPE/jPmaLCMZcsdkec95dYeU3zKODEm8UQZFhmJmDeWVJ36nGrGZHL4J5aTTaeFUJmmXDaJYiJ+K2/ioKgXqnXvltu0A9R8/LGy4nrTJRr4JMLuJFoUXvGm1gXQ70w2LSpk6yl71RNC0hCtsBe8BP8IhYCM0EP5jh7eCMQZNvM= nocomment\n", 33 33 "title": "test-key", 34 - }) 34 + }).AddTokenAuth(token) 35 35 resp := MakeRequest(t, req, http.StatusCreated) 36 36 37 37 var newPublicKey api.PublicKey ··· 43 43 OwnerID: keyOwner.ID, 44 44 }) 45 45 46 - req = NewRequestf(t, "DELETE", "/api/v1/admin/users/%s/keys/%d?token=%s", 47 - keyOwner.Name, newPublicKey.ID, token) 46 + req = NewRequestf(t, "DELETE", "/api/v1/admin/users/%s/keys/%d", keyOwner.Name, newPublicKey.ID). 47 + AddTokenAuth(token) 48 48 MakeRequest(t, req, http.StatusNoContent) 49 49 unittest.AssertNotExistsBean(t, &asymkey_model.PublicKey{ID: newPublicKey.ID}) 50 50 } ··· 54 54 55 55 // user1 is an admin user 56 56 token := getUserToken(t, "user1", auth_model.AccessTokenScopeWriteAdmin) 57 - req := NewRequestf(t, "DELETE", "/api/v1/admin/users/user1/keys/%d?token=%s", unittest.NonexistentID, token) 57 + req := NewRequestf(t, "DELETE", "/api/v1/admin/users/user1/keys/%d", unittest.NonexistentID). 58 + AddTokenAuth(token) 58 59 MakeRequest(t, req, http.StatusNotFound) 59 60 } 60 61 ··· 64 65 normalUsername := "user2" 65 66 token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeWriteAdmin) 66 67 67 - urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys?token=%s", adminUsername, token) 68 + urlStr := fmt.Sprintf("/api/v1/admin/users/%s/keys", adminUsername) 68 69 req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 69 70 "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4cn+iXnA4KvcQYSV88vGn0Yi91vG47t1P7okprVmhNTkipNRIHWr6WdCO4VDr/cvsRkuVJAsLO2enwjGWWueOO6BodiBgyAOZ/5t5nJNMCNuLGT5UIo/RI1b0WRQwxEZTRjt6mFNw6lH14wRd8ulsr9toSWBPMOGWoYs1PDeDL0JuTjL+tr1SZi/EyxCngpYszKdXllJEHyI79KQgeD0Vt3pTrkbNVTOEcCNqZePSVmUH8X8Vhugz3bnE0/iE9Pb5fkWO9c4AnM1FgI/8Bvp27Fw2ShryIXuR6kKvUqhVMTuOSDHwu6A8jLE5Owt3GAYugDpDYuwTVNGrHLXKpPzrGGPE/jPmaLCMZcsdkec95dYeU3zKODEm8UQZFhmJmDeWVJ36nGrGZHL4J5aTTaeFUJmmXDaJYiJ+K2/ioKgXqnXvltu0A9R8/LGy4nrTJRr4JMLuJFoUXvGm1gXQ70w2LSpk6yl71RNC0hCtsBe8BP8IhYCM0EP5jh7eCMQZNvM= nocomment\n", 70 71 "title": "test-key", 71 - }) 72 + }).AddTokenAuth(token) 72 73 resp := MakeRequest(t, req, http.StatusCreated) 73 74 var newPublicKey api.PublicKey 74 75 DecodeJSON(t, resp, &newPublicKey) 75 76 76 77 token = getUserToken(t, normalUsername) 77 - req = NewRequestf(t, "DELETE", "/api/v1/admin/users/%s/keys/%d?token=%s", 78 - adminUsername, newPublicKey.ID, token) 78 + req = NewRequestf(t, "DELETE", "/api/v1/admin/users/%s/keys/%d", adminUsername, newPublicKey.ID). 79 + AddTokenAuth(token) 79 80 MakeRequest(t, req, http.StatusForbidden) 80 81 } 81 82 ··· 85 86 normalUsername := "user2" 86 87 token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeReadUser) 87 88 88 - urlStr := fmt.Sprintf("/api/v1/user?sudo=%s&token=%s", normalUsername, token) 89 - req := NewRequest(t, "GET", urlStr) 89 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user?sudo=%s", normalUsername)). 90 + AddTokenAuth(token) 90 91 resp := MakeRequest(t, req, http.StatusOK) 91 92 var user api.User 92 93 DecodeJSON(t, resp, &user) ··· 100 101 normalUsername := "user2" 101 102 102 103 token := getUserToken(t, normalUsername, auth_model.AccessTokenScopeReadAdmin) 103 - urlStr := fmt.Sprintf("/api/v1/user?sudo=%s&token=%s", adminUsername, token) 104 - req := NewRequest(t, "GET", urlStr) 104 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user?sudo=%s", adminUsername)). 105 + AddTokenAuth(token) 105 106 MakeRequest(t, req, http.StatusForbidden) 106 107 } 107 108 ··· 110 111 adminUsername := "user1" 111 112 token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeReadAdmin) 112 113 113 - urlStr := fmt.Sprintf("/api/v1/admin/users?token=%s", token) 114 - req := NewRequest(t, "GET", urlStr) 114 + req := NewRequest(t, "GET", "/api/v1/admin/users"). 115 + AddTokenAuth(token) 115 116 resp := MakeRequest(t, req, http.StatusOK) 116 117 var users []api.User 117 118 DecodeJSON(t, resp, &users) ··· 137 138 defer tests.PrepareTestEnv(t)() 138 139 nonAdminUsername := "user2" 139 140 token := getUserToken(t, nonAdminUsername) 140 - req := NewRequestf(t, "GET", "/api/v1/admin/users?token=%s", token) 141 + req := NewRequest(t, "GET", "/api/v1/admin/users"). 142 + AddTokenAuth(token) 141 143 MakeRequest(t, req, http.StatusForbidden) 142 144 } 143 145 ··· 145 147 defer tests.PrepareTestEnv(t)() 146 148 adminUsername := "user1" 147 149 token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeWriteAdmin) 148 - urlStr := fmt.Sprintf("/api/v1/admin/users?token=%s", token) 149 - req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 150 + req := NewRequestWithValues(t, "POST", "/api/v1/admin/users", map[string]string{ 150 151 "email": "invalid_email@domain.com\r\n", 151 152 "full_name": "invalid user", 152 153 "login_name": "invalidUser", ··· 155 156 "send_notify": "true", 156 157 "source_id": "0", 157 158 "username": "invalidUser", 158 - }) 159 + }).AddTokenAuth(token) 159 160 MakeRequest(t, req, http.StatusUnprocessableEntity) 160 161 } 161 162 ··· 167 168 req := NewRequestWithValues( 168 169 t, 169 170 "POST", 170 - fmt.Sprintf("/api/v1/admin/users?token=%s", token), 171 + "/api/v1/admin/users", 171 172 map[string]string{ 172 173 "email": "deleteme@domain.com", 173 174 "full_name": "delete me", ··· 178 179 "source_id": "0", 179 180 "username": "deleteme", 180 181 }, 181 - ) 182 + ).AddTokenAuth(token) 182 183 MakeRequest(t, req, http.StatusCreated) 183 184 184 - req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/admin/users/deleteme?token=%s", token)) 185 + req = NewRequest(t, "DELETE", "/api/v1/admin/users/deleteme"). 186 + AddTokenAuth(token) 185 187 MakeRequest(t, req, http.StatusNoContent) 186 188 } 187 189 ··· 189 191 defer tests.PrepareTestEnv(t)() 190 192 adminUsername := "user1" 191 193 token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeWriteAdmin) 192 - urlStr := fmt.Sprintf("/api/v1/admin/users/%s?token=%s", "user2", token) 194 + urlStr := fmt.Sprintf("/api/v1/admin/users/%s", "user2") 193 195 194 196 req := NewRequestWithValues(t, "PATCH", urlStr, map[string]string{ 195 197 // required ··· 197 199 "source_id": "0", 198 200 // to change 199 201 "full_name": "Full Name User 2", 200 - }) 202 + }).AddTokenAuth(token) 201 203 MakeRequest(t, req, http.StatusOK) 202 204 203 205 empty := "" ··· 205 207 LoginName: "user2", 206 208 SourceID: 0, 207 209 Email: &empty, 208 - }) 210 + }).AddTokenAuth(token) 209 211 resp := MakeRequest(t, req, http.StatusUnprocessableEntity) 210 212 211 213 errMap := make(map[string]any) ··· 221 223 SourceID: 0, 222 224 // to change 223 225 Restricted: &bTrue, 224 - }) 226 + }).AddTokenAuth(token) 225 227 MakeRequest(t, req, http.StatusOK) 226 228 user2 = unittest.AssertExistsAndLoadBean(t, &user_model.User{LoginName: "user2"}) 227 229 assert.True(t, user2.IsRestricted) ··· 235 237 req := NewRequestWithJSON( 236 238 t, 237 239 "POST", 238 - fmt.Sprintf("/api/v1/admin/users/%s/repos?token=%s", adminUsername, token), 240 + fmt.Sprintf("/api/v1/admin/users/%s/repos", adminUsername), 239 241 &api.CreateRepoOption{ 240 242 Name: "admincreatedrepo", 241 243 }, 242 - ) 244 + ).AddTokenAuth(token) 243 245 MakeRequest(t, req, http.StatusCreated) 244 246 } 245 247 ··· 247 249 defer tests.PrepareTestEnv(t)() 248 250 adminUsername := "user1" 249 251 token := getUserToken(t, adminUsername, auth_model.AccessTokenScopeWriteAdmin) 250 - urlStr := fmt.Sprintf("/api/v1/admin/users/%s/rename?token=%s", "user2", token) 252 + urlStr := fmt.Sprintf("/api/v1/admin/users/%s/rename", "user2") 251 253 req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 252 254 // required 253 255 "new_name": "User2", 254 - }) 256 + }).AddTokenAuth(token) 255 257 MakeRequest(t, req, http.StatusOK) 256 258 257 - urlStr = fmt.Sprintf("/api/v1/admin/users/%s/rename?token=%s", "User2", token) 259 + urlStr = fmt.Sprintf("/api/v1/admin/users/%s/rename", "User2") 258 260 req = NewRequestWithValues(t, "POST", urlStr, map[string]string{ 259 261 // required 260 262 "new_name": "User2-2-2", 261 - }) 263 + }).AddTokenAuth(token) 262 264 MakeRequest(t, req, http.StatusOK) 263 265 264 - urlStr = fmt.Sprintf("/api/v1/admin/users/%s/rename?token=%s", "User2", token) 265 266 req = NewRequestWithValues(t, "POST", urlStr, map[string]string{ 266 267 // required 267 268 "new_name": "user1", 268 - }) 269 + }).AddTokenAuth(token) 269 270 // the old user name still be used by with a redirect 270 271 MakeRequest(t, req, http.StatusTemporaryRedirect) 271 272 272 - urlStr = fmt.Sprintf("/api/v1/admin/users/%s/rename?token=%s", "User2-2-2", token) 273 + urlStr = fmt.Sprintf("/api/v1/admin/users/%s/rename", "User2-2-2") 273 274 req = NewRequestWithValues(t, "POST", urlStr, map[string]string{ 274 275 // required 275 276 "new_name": "user1", 276 - }) 277 + }).AddTokenAuth(token) 277 278 MakeRequest(t, req, http.StatusUnprocessableEntity) 278 279 279 - urlStr = fmt.Sprintf("/api/v1/admin/users/%s/rename?token=%s", "User2-2-2", token) 280 280 req = NewRequestWithValues(t, "POST", urlStr, map[string]string{ 281 281 // required 282 282 "new_name": "user2", 283 - }) 283 + }).AddTokenAuth(token) 284 284 MakeRequest(t, req, http.StatusOK) 285 285 } 286 286 ··· 294 294 defer tests.PrintCurrentTest(t)() 295 295 296 296 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadAdmin) 297 - urlStr := fmt.Sprintf("/api/v1/admin/cron?token=%s", token) 298 - req := NewRequest(t, "GET", urlStr) 297 + 298 + req := NewRequest(t, "GET", "/api/v1/admin/cron"). 299 + AddTokenAuth(token) 299 300 resp := MakeRequest(t, req, http.StatusOK) 300 301 301 302 assert.Equal(t, "28", resp.Header().Get("X-Total-Count")) ··· 313 314 // Archive cleanup is harmless, because in the test environment there are none 314 315 // and is thus an NOOP operation and therefore doesn't interfere with any other 315 316 // tests. 316 - urlStr := fmt.Sprintf("/api/v1/admin/cron/archive_cleanup?token=%s", token) 317 - req := NewRequest(t, "POST", urlStr) 317 + req := NewRequest(t, "POST", "/api/v1/admin/cron/archive_cleanup"). 318 + AddTokenAuth(token) 318 319 MakeRequest(t, req, http.StatusNoContent) 319 320 320 321 // Check for the latest run time for this cron, to ensure it has been run. 321 - urlStr = fmt.Sprintf("/api/v1/admin/cron?token=%s", token) 322 - req = NewRequest(t, "GET", urlStr) 322 + req = NewRequest(t, "GET", "/api/v1/admin/cron"). 323 + AddTokenAuth(token) 323 324 resp := MakeRequest(t, req, http.StatusOK) 324 325 325 326 var crons []api.Cron
+14 -9
tests/integration/api_branch_test.go
··· 17 17 18 18 func testAPIGetBranch(t *testing.T, branchName string, exists bool) { 19 19 token := getUserToken(t, "user2", auth_model.AccessTokenScopeReadRepository) 20 - req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/branches/%s?token=%s", branchName, token) 20 + req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/branches/%s", branchName). 21 + AddTokenAuth(token) 21 22 resp := MakeRequest(t, req, NoExpectedStatus) 22 23 if !exists { 23 24 assert.EqualValues(t, http.StatusNotFound, resp.Code) ··· 33 34 34 35 func testAPIGetBranchProtection(t *testing.T, branchName string, expectedHTTPStatus int) *api.BranchProtection { 35 36 token := getUserToken(t, "user2", auth_model.AccessTokenScopeReadRepository) 36 - req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/branch_protections/%s?token=%s", branchName, token) 37 + req := NewRequestf(t, "GET", "/api/v1/repos/user2/repo1/branch_protections/%s", branchName). 38 + AddTokenAuth(token) 37 39 resp := MakeRequest(t, req, expectedHTTPStatus) 38 40 39 41 if resp.Code == http.StatusOK { ··· 47 49 48 50 func testAPICreateBranchProtection(t *testing.T, branchName string, expectedHTTPStatus int) { 49 51 token := getUserToken(t, "user2", auth_model.AccessTokenScopeWriteRepository) 50 - req := NewRequestWithJSON(t, "POST", "/api/v1/repos/user2/repo1/branch_protections?token="+token, &api.BranchProtection{ 52 + req := NewRequestWithJSON(t, "POST", "/api/v1/repos/user2/repo1/branch_protections", &api.BranchProtection{ 51 53 RuleName: branchName, 52 - }) 54 + }).AddTokenAuth(token) 53 55 resp := MakeRequest(t, req, expectedHTTPStatus) 54 56 55 57 if resp.Code == http.StatusCreated { ··· 61 63 62 64 func testAPIEditBranchProtection(t *testing.T, branchName string, body *api.BranchProtection, expectedHTTPStatus int) { 63 65 token := getUserToken(t, "user2", auth_model.AccessTokenScopeWriteRepository) 64 - req := NewRequestWithJSON(t, "PATCH", "/api/v1/repos/user2/repo1/branch_protections/"+branchName+"?token="+token, body) 66 + req := NewRequestWithJSON(t, "PATCH", "/api/v1/repos/user2/repo1/branch_protections/"+branchName, body). 67 + AddTokenAuth(token) 65 68 resp := MakeRequest(t, req, expectedHTTPStatus) 66 69 67 70 if resp.Code == http.StatusOK { ··· 73 76 74 77 func testAPIDeleteBranchProtection(t *testing.T, branchName string, expectedHTTPStatus int) { 75 78 token := getUserToken(t, "user2", auth_model.AccessTokenScopeWriteRepository) 76 - req := NewRequestf(t, "DELETE", "/api/v1/repos/user2/repo1/branch_protections/%s?token=%s", branchName, token) 79 + req := NewRequestf(t, "DELETE", "/api/v1/repos/user2/repo1/branch_protections/%s", branchName). 80 + AddTokenAuth(token) 77 81 MakeRequest(t, req, expectedHTTPStatus) 78 82 } 79 83 80 84 func testAPIDeleteBranch(t *testing.T, branchName string, expectedHTTPStatus int) { 81 85 token := getUserToken(t, "user2", auth_model.AccessTokenScopeWriteRepository) 82 - req := NewRequestf(t, "DELETE", "/api/v1/repos/user2/repo1/branches/%s?token=%s", branchName, token) 86 + req := NewRequestf(t, "DELETE", "/api/v1/repos/user2/repo1/branches/%s", branchName). 87 + AddTokenAuth(token) 83 88 MakeRequest(t, req, expectedHTTPStatus) 84 89 } 85 90 ··· 152 157 153 158 func testAPICreateBranch(t testing.TB, session *TestSession, user, repo, oldBranch, newBranch string, status int) bool { 154 159 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 155 - req := NewRequestWithJSON(t, "POST", "/api/v1/repos/"+user+"/"+repo+"/branches?token="+token, &api.CreateBranchRepoOption{ 160 + req := NewRequestWithJSON(t, "POST", "/api/v1/repos/"+user+"/"+repo+"/branches", &api.CreateBranchRepoOption{ 156 161 BranchName: newBranch, 157 162 OldBranchName: oldBranch, 158 - }) 163 + }).AddTokenAuth(token) 159 164 resp := MakeRequest(t, req, status) 160 165 161 166 var branch api.Branch
+16 -15
tests/integration/api_comment_attachment_test.go
··· 39 39 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}) 40 40 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 41 41 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 42 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d?token=%s", repoOwner.Name, repo.Name, comment.ID, attachment.ID, token) 42 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID). 43 + AddTokenAuth(token) 43 44 MakeRequest(t, req, http.StatusNotFound) 44 45 }) 45 46 46 47 session := loginUser(t, repoOwner.Name) 47 48 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue) 48 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d?token=%s", repoOwner.Name, repo.Name, comment.ID, attachment.ID, token) 49 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID). 50 + AddTokenAuth(token) 49 51 session.MakeRequest(t, req, http.StatusOK) 50 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d?token=%s", repoOwner.Name, repo.Name, comment.ID, attachment.ID, token) 52 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID). 53 + AddTokenAuth(token) 51 54 resp := session.MakeRequest(t, req, http.StatusOK) 52 55 53 56 var apiAttachment api.Attachment ··· 71 74 72 75 session := loginUser(t, repoOwner.Name) 73 76 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue) 74 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets?token=%s", 75 - repoOwner.Name, repo.Name, comment.ID, token) 77 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d/assets", repoOwner.Name, repo.Name, comment.ID). 78 + AddTokenAuth(token) 76 79 resp := session.MakeRequest(t, req, http.StatusOK) 77 80 78 81 var apiAttachments []*api.Attachment ··· 93 96 94 97 session := loginUser(t, repoOwner.Name) 95 98 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 96 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/assets?token=%s", 97 - repoOwner.Name, repo.Name, comment.ID, token) 98 99 99 100 filename := "image.png" 100 101 buff := generateImg() ··· 109 110 err = writer.Close() 110 111 assert.NoError(t, err) 111 112 112 - req := NewRequestWithBody(t, "POST", urlStr, body) 113 - req.Header.Add("Content-Type", writer.FormDataContentType()) 113 + req := NewRequestWithBody(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/assets", repoOwner.Name, repo.Name, comment.ID), body). 114 + AddTokenAuth(token). 115 + SetHeader("Content-Type", writer.FormDataContentType()) 114 116 resp := session.MakeRequest(t, req, http.StatusCreated) 115 117 116 118 apiAttachment := new(api.Attachment) ··· 132 134 133 135 session := loginUser(t, repoOwner.Name) 134 136 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 135 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/assets/%d?token=%s", 136 - repoOwner.Name, repo.Name, comment.ID, attachment.ID, token) 137 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", 138 + repoOwner.Name, repo.Name, comment.ID, attachment.ID) 137 139 req := NewRequestWithValues(t, "PATCH", urlStr, map[string]string{ 138 140 "name": newAttachmentName, 139 - }) 141 + }).AddTokenAuth(token) 140 142 resp := session.MakeRequest(t, req, http.StatusCreated) 141 143 apiAttachment := new(api.Attachment) 142 144 DecodeJSON(t, resp, &apiAttachment) ··· 155 157 156 158 session := loginUser(t, repoOwner.Name) 157 159 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 158 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/assets/%d?token=%s", 159 - repoOwner.Name, repo.Name, comment.ID, attachment.ID, token) 160 160 161 - req := NewRequestf(t, "DELETE", urlStr) 161 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/assets/%d", repoOwner.Name, repo.Name, comment.ID, attachment.ID)). 162 + AddTokenAuth(token) 162 163 session.MakeRequest(t, req, http.StatusNoContent) 163 164 164 165 unittest.AssertNotExistsBean(t, &repo_model.Attachment{ID: attachment.ID, CommentID: comment.ID})
+18 -18
tests/integration/api_comment_test.go
··· 77 77 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 78 78 79 79 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeReadIssue) 80 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/comments?token=%s", 81 - repoOwner.Name, repo.Name, issue.Index, token) 80 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/comments", repoOwner.Name, repo.Name, issue.Index). 81 + AddTokenAuth(token) 82 82 resp := MakeRequest(t, req, http.StatusOK) 83 83 84 84 var comments []*api.Comment ··· 97 97 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 98 98 99 99 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 100 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/comments?token=%s", 101 - repoOwner.Name, repo.Name, issue.Index, token) 100 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/comments", 101 + repoOwner.Name, repo.Name, issue.Index) 102 102 req := NewRequestWithValues(t, "POST", urlStr, map[string]string{ 103 103 "body": commentBody, 104 - }) 104 + }).AddTokenAuth(token) 105 105 resp := MakeRequest(t, req, http.StatusCreated) 106 106 107 107 var updatedComment api.Comment ··· 121 121 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeReadIssue) 122 122 req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID) 123 123 MakeRequest(t, req, http.StatusOK) 124 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d?token=%s", repoOwner.Name, repo.Name, comment.ID, token) 124 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID). 125 + AddTokenAuth(token) 125 126 resp := MakeRequest(t, req, http.StatusOK) 126 127 127 128 var apiComment api.Comment ··· 188 189 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}) 189 190 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 190 191 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 191 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d?token=%s", 192 - repoOwner.Name, repo.Name, comment.ID, token) 192 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d", 193 + repoOwner.Name, repo.Name, comment.ID) 193 194 req := NewRequestWithValues(t, "PATCH", urlStr, map[string]string{ 194 195 "body": newCommentBody, 195 - }) 196 + }).AddTokenAuth(token) 196 197 MakeRequest(t, req, http.StatusNotFound) 197 198 }) 198 199 199 200 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 200 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d?token=%s", 201 - repoOwner.Name, repo.Name, comment.ID, token) 201 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d", 202 + repoOwner.Name, repo.Name, comment.ID) 202 203 req := NewRequestWithValues(t, "PATCH", urlStr, map[string]string{ 203 204 "body": newCommentBody, 204 - }) 205 + }).AddTokenAuth(token) 205 206 resp := MakeRequest(t, req, http.StatusOK) 206 207 207 208 var updatedComment api.Comment ··· 225 226 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}) 226 227 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 227 228 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 228 - req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/comments/%d?token=%s", 229 - repoOwner.Name, repo.Name, comment.ID, token) 229 + req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID). 230 + AddTokenAuth(token) 230 231 MakeRequest(t, req, http.StatusNotFound) 231 232 }) 232 233 233 234 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 234 - req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/comments/%d?token=%s", 235 - repoOwner.Name, repo.Name, comment.ID, token) 235 + req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/comments/%d", repoOwner.Name, repo.Name, comment.ID). 236 + AddTokenAuth(token) 236 237 MakeRequest(t, req, http.StatusNoContent) 237 238 238 239 unittest.AssertNotExistsBean(t, &issues_model.Comment{ID: comment.ID}) ··· 247 248 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 248 249 249 250 // make request 250 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/timeline", 251 - repoOwner.Name, repo.Name, issue.Index) 251 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/timeline", repoOwner.Name, repo.Name, issue.Index) 252 252 resp := MakeRequest(t, req, http.StatusOK) 253 253 254 254 // check if lens of list returned by API and
+23 -13
tests/integration/api_gpg_keys_test.go
··· 16 16 "github.com/stretchr/testify/assert" 17 17 ) 18 18 19 - type makeRequestFunc func(testing.TB, *http.Request, int) *httptest.ResponseRecorder 19 + type makeRequestFunc func(testing.TB, *RequestWrapper, int) *httptest.ResponseRecorder 20 20 21 21 func TestGPGKeys(t *testing.T) { 22 22 defer tests.PrepareTestEnv(t)() ··· 79 79 t.Run("CheckState", func(t *testing.T) { 80 80 var keys []*api.GPGKey 81 81 82 - req := NewRequest(t, "GET", "/api/v1/user/gpg_keys?token="+tokenWithGPGKeyScope) // GET all keys 82 + req := NewRequest(t, "GET", "/api/v1/user/gpg_keys"). // GET all keys 83 + AddTokenAuth(tokenWithGPGKeyScope) 83 84 resp := MakeRequest(t, req, http.StatusOK) 84 85 DecodeJSON(t, resp, &keys) 85 86 assert.Len(t, keys, 1) ··· 95 96 assert.Empty(t, subKey.Emails) 96 97 97 98 var key api.GPGKey 98 - req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(primaryKey1.ID, 10)+"?token="+tokenWithGPGKeyScope) // Primary key 1 99 + req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(primaryKey1.ID, 10)). // Primary key 1 100 + AddTokenAuth(tokenWithGPGKeyScope) 99 101 resp = MakeRequest(t, req, http.StatusOK) 100 102 DecodeJSON(t, resp, &key) 101 103 assert.EqualValues(t, "38EA3BCED732982C", key.KeyID) ··· 103 105 assert.EqualValues(t, "user2@example.com", key.Emails[0].Email) 104 106 assert.True(t, key.Emails[0].Verified) 105 107 106 - req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(subKey.ID, 10)+"?token="+tokenWithGPGKeyScope) // Subkey of 38EA3BCED732982C 108 + req = NewRequest(t, "GET", "/api/v1/user/gpg_keys/"+strconv.FormatInt(subKey.ID, 10)). // Subkey of 38EA3BCED732982C 109 + AddTokenAuth(tokenWithGPGKeyScope) 107 110 resp = MakeRequest(t, req, http.StatusOK) 108 111 DecodeJSON(t, resp, &key) 109 112 assert.EqualValues(t, "70D7C694D17D03AD", key.KeyID) ··· 114 117 t.Run("CheckCommits", func(t *testing.T) { 115 118 t.Run("NotSigned", func(t *testing.T) { 116 119 var branch api.Branch 117 - req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/not-signed?token="+token) 120 + req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/not-signed"). 121 + AddTokenAuth(token) 118 122 resp := MakeRequest(t, req, http.StatusOK) 119 123 DecodeJSON(t, resp, &branch) 120 124 assert.False(t, branch.Commit.Verification.Verified) ··· 122 126 123 127 t.Run("SignedWithNotValidatedEmail", func(t *testing.T) { 124 128 var branch api.Branch 125 - req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign-not-yet-validated?token="+token) 129 + req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign-not-yet-validated"). 130 + AddTokenAuth(token) 126 131 resp := MakeRequest(t, req, http.StatusOK) 127 132 DecodeJSON(t, resp, &branch) 128 133 assert.False(t, branch.Commit.Verification.Verified) ··· 130 135 131 136 t.Run("SignedWithValidEmail", func(t *testing.T) { 132 137 var branch api.Branch 133 - req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign?token="+token) 138 + req := NewRequest(t, "GET", "/api/v1/repos/user2/repo16/branches/good-sign"). 139 + AddTokenAuth(token) 134 140 resp := MakeRequest(t, req, http.StatusOK) 135 141 DecodeJSON(t, resp, &branch) 136 142 assert.True(t, branch.Commit.Verification.Verified) ··· 139 145 } 140 146 141 147 func testViewOwnGPGKeys(t *testing.T, makeRequest makeRequestFunc, token string, expected int) { 142 - req := NewRequest(t, "GET", "/api/v1/user/gpg_keys?token="+token) 148 + req := NewRequest(t, "GET", "/api/v1/user/gpg_keys"). 149 + AddTokenAuth(token) 143 150 makeRequest(t, req, expected) 144 151 } 145 152 146 153 func testViewGPGKeys(t *testing.T, makeRequest makeRequestFunc, token string, expected int) { 147 - req := NewRequest(t, "GET", "/api/v1/users/user2/gpg_keys?token="+token) 154 + req := NewRequest(t, "GET", "/api/v1/users/user2/gpg_keys"). 155 + AddTokenAuth(token) 148 156 makeRequest(t, req, expected) 149 157 } 150 158 151 159 func testGetGPGKey(t *testing.T, makeRequest makeRequestFunc, token string, expected int) { 152 - req := NewRequest(t, "GET", "/api/v1/user/gpg_keys/1?token="+token) 160 + req := NewRequest(t, "GET", "/api/v1/user/gpg_keys/1"). 161 + AddTokenAuth(token) 153 162 makeRequest(t, req, expected) 154 163 } 155 164 156 165 func testDeleteGPGKey(t *testing.T, makeRequest makeRequestFunc, token string, expected int) { 157 - req := NewRequest(t, "DELETE", "/api/v1/user/gpg_keys/1?token="+token) 166 + req := NewRequest(t, "DELETE", "/api/v1/user/gpg_keys/1"). 167 + AddTokenAuth(token) 158 168 makeRequest(t, req, expected) 159 169 } 160 170 161 171 func testCreateGPGKey(t *testing.T, makeRequest makeRequestFunc, token string, expected int, publicKey string) { 162 - req := NewRequestWithJSON(t, "POST", "/api/v1/user/gpg_keys?token="+token, api.CreateGPGKeyOption{ 172 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/gpg_keys", api.CreateGPGKeyOption{ 163 173 ArmoredKey: publicKey, 164 - }) 174 + }).AddTokenAuth(token) 165 175 makeRequest(t, req, expected) 166 176 } 167 177
+47 -61
tests/integration/api_helper_for_declarative_test.go
··· 59 59 License: "WTFPL", 60 60 Readme: "Default", 61 61 } 62 - req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos?token="+ctx.Token, createRepoOption) 62 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos", createRepoOption). 63 + AddTokenAuth(ctx.Token) 63 64 if ctx.ExpectedCode != 0 { 64 65 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 65 66 return ··· 76 77 77 78 func doAPIEditRepository(ctx APITestContext, editRepoOption *api.EditRepoOption, callback ...func(*testing.T, api.Repository)) func(*testing.T) { 78 79 return func(t *testing.T) { 79 - req := NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", url.PathEscape(ctx.Username), url.PathEscape(ctx.Reponame), ctx.Token), editRepoOption) 80 + req := NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", url.PathEscape(ctx.Username), url.PathEscape(ctx.Reponame)), editRepoOption). 81 + AddTokenAuth(ctx.Token) 80 82 if ctx.ExpectedCode != 0 { 81 83 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 82 84 return ··· 103 105 addCollaboratorOption := &api.AddCollaboratorOption{ 104 106 Permission: &permission, 105 107 } 106 - req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/collaborators/%s?token=%s", ctx.Username, ctx.Reponame, username, ctx.Token), addCollaboratorOption) 108 + req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/collaborators/%s", ctx.Username, ctx.Reponame, username), addCollaboratorOption). 109 + AddTokenAuth(ctx.Token) 107 110 if ctx.ExpectedCode != 0 { 108 111 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 109 112 return ··· 115 118 func doAPIForkRepository(ctx APITestContext, username string, callback ...func(*testing.T, api.Repository)) func(*testing.T) { 116 119 return func(t *testing.T) { 117 120 createForkOption := &api.CreateForkOption{} 118 - req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/forks?token=%s", username, ctx.Reponame, ctx.Token), createForkOption) 121 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/forks", username, ctx.Reponame), createForkOption). 122 + AddTokenAuth(ctx.Token) 119 123 if ctx.ExpectedCode != 0 { 120 124 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 121 125 return ··· 131 135 132 136 func doAPIGetRepository(ctx APITestContext, callback ...func(*testing.T, api.Repository)) func(*testing.T) { 133 137 return func(t *testing.T) { 134 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", ctx.Username, ctx.Reponame, ctx.Token) 135 - 136 - req := NewRequest(t, "GET", urlStr) 138 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s", ctx.Username, ctx.Reponame)). 139 + AddTokenAuth(ctx.Token) 137 140 if ctx.ExpectedCode != 0 { 138 141 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 139 142 return ··· 150 153 151 154 func doAPIDeleteRepository(ctx APITestContext) func(*testing.T) { 152 155 return func(t *testing.T) { 153 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", ctx.Username, ctx.Reponame, ctx.Token) 154 - 155 - req := NewRequest(t, "DELETE", urlStr) 156 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s", ctx.Username, ctx.Reponame)). 157 + AddTokenAuth(ctx.Token) 156 158 if ctx.ExpectedCode != 0 { 157 159 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 158 160 return ··· 163 165 164 166 func doAPICreateUserKey(ctx APITestContext, keyname, keyFile string, callback ...func(*testing.T, api.PublicKey)) func(*testing.T) { 165 167 return func(t *testing.T) { 166 - urlStr := fmt.Sprintf("/api/v1/user/keys?token=%s", ctx.Token) 167 - 168 168 dataPubKey, err := os.ReadFile(keyFile + ".pub") 169 169 assert.NoError(t, err) 170 - req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateKeyOption{ 170 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/keys", &api.CreateKeyOption{ 171 171 Title: keyname, 172 172 Key: string(dataPubKey), 173 - }) 173 + }).AddTokenAuth(ctx.Token) 174 174 if ctx.ExpectedCode != 0 { 175 175 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 176 176 return ··· 186 186 187 187 func doAPIDeleteUserKey(ctx APITestContext, keyID int64) func(*testing.T) { 188 188 return func(t *testing.T) { 189 - urlStr := fmt.Sprintf("/api/v1/user/keys/%d?token=%s", keyID, ctx.Token) 190 - 191 - req := NewRequest(t, "DELETE", urlStr) 189 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/keys/%d", keyID)). 190 + AddTokenAuth(ctx.Token) 192 191 if ctx.ExpectedCode != 0 { 193 192 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 194 193 return ··· 199 198 200 199 func doAPICreateDeployKey(ctx APITestContext, keyname, keyFile string, readOnly bool) func(*testing.T) { 201 200 return func(t *testing.T) { 202 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/keys?token=%s", ctx.Username, ctx.Reponame, ctx.Token) 203 - 204 201 dataPubKey, err := os.ReadFile(keyFile + ".pub") 205 202 assert.NoError(t, err) 206 - req := NewRequestWithJSON(t, "POST", urlStr, api.CreateKeyOption{ 203 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/keys", ctx.Username, ctx.Reponame), api.CreateKeyOption{ 207 204 Title: keyname, 208 205 Key: string(dataPubKey), 209 206 ReadOnly: readOnly, 210 - }) 207 + }).AddTokenAuth(ctx.Token) 211 208 212 209 if ctx.ExpectedCode != 0 { 213 210 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) ··· 219 216 220 217 func doAPICreatePullRequest(ctx APITestContext, owner, repo, baseBranch, headBranch string) func(*testing.T) (api.PullRequest, error) { 221 218 return func(t *testing.T) (api.PullRequest, error) { 222 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", 223 - owner, repo, ctx.Token) 224 - req := NewRequestWithJSON(t, http.MethodPost, urlStr, &api.CreatePullRequestOption{ 219 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", owner, repo), &api.CreatePullRequestOption{ 225 220 Head: headBranch, 226 221 Base: baseBranch, 227 222 Title: fmt.Sprintf("create a pr from %s to %s", headBranch, baseBranch), 228 - }) 223 + }).AddTokenAuth(ctx.Token) 229 224 230 225 expected := http.StatusCreated 231 226 if ctx.ExpectedCode != 0 { ··· 242 237 243 238 func doAPIGetPullRequest(ctx APITestContext, owner, repo string, index int64) func(*testing.T) (api.PullRequest, error) { 244 239 return func(t *testing.T) (api.PullRequest, error) { 245 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d?token=%s", 246 - owner, repo, index, ctx.Token) 247 - req := NewRequest(t, http.MethodGet, urlStr) 240 + req := NewRequest(t, http.MethodGet, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d", owner, repo, index)). 241 + AddTokenAuth(ctx.Token) 248 242 249 243 expected := http.StatusOK 250 244 if ctx.ExpectedCode != 0 { ··· 261 255 262 256 func doAPIMergePullRequest(ctx APITestContext, owner, repo string, index int64) func(*testing.T) { 263 257 return func(t *testing.T) { 264 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge?token=%s", 265 - owner, repo, index, ctx.Token) 258 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge", owner, repo, index) 266 259 267 - var req *http.Request 260 + var req *RequestWrapper 268 261 var resp *httptest.ResponseRecorder 269 262 270 263 for i := 0; i < 6; i++ { 271 264 req = NewRequestWithJSON(t, http.MethodPost, urlStr, &forms.MergePullRequestForm{ 272 265 MergeMessageField: "doAPIMergePullRequest Merge", 273 266 Do: string(repo_model.MergeStyleMerge), 274 - }) 267 + }).AddTokenAuth(ctx.Token) 275 268 276 269 resp = ctx.Session.MakeRequest(t, req, NoExpectedStatus) 277 270 ··· 299 292 300 293 func doAPIManuallyMergePullRequest(ctx APITestContext, owner, repo, commitID string, index int64) func(*testing.T) { 301 294 return func(t *testing.T) { 302 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge?token=%s", 303 - owner, repo, index, ctx.Token) 295 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge", owner, repo, index) 304 296 req := NewRequestWithJSON(t, http.MethodPost, urlStr, &forms.MergePullRequestForm{ 305 297 Do: string(repo_model.MergeStyleManuallyMerged), 306 298 MergeCommitID: commitID, 307 - }) 299 + }).AddTokenAuth(ctx.Token) 308 300 309 301 if ctx.ExpectedCode != 0 { 310 302 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) ··· 316 308 317 309 func doAPIAutoMergePullRequest(ctx APITestContext, owner, repo string, index int64) func(*testing.T) { 318 310 return func(t *testing.T) { 319 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge?token=%s", 320 - owner, repo, index, ctx.Token) 311 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge", owner, repo, index) 321 312 req := NewRequestWithJSON(t, http.MethodPost, urlStr, &forms.MergePullRequestForm{ 322 313 MergeMessageField: "doAPIMergePullRequest Merge", 323 314 Do: string(repo_model.MergeStyleMerge), 324 315 MergeWhenChecksSucceed: true, 325 - }) 316 + }).AddTokenAuth(ctx.Token) 326 317 327 318 if ctx.ExpectedCode != 0 { 328 319 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 329 320 return 330 321 } 331 - ctx.Session.MakeRequest(t, req, 200) 322 + ctx.Session.MakeRequest(t, req, http.StatusOK) 332 323 } 333 324 } 334 325 335 326 func doAPICancelAutoMergePullRequest(ctx APITestContext, owner, repo string, index int64) func(*testing.T) { 336 327 return func(t *testing.T) { 337 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge?token=%s", 338 - owner, repo, index, ctx.Token) 339 - req := NewRequest(t, http.MethodDelete, urlStr) 328 + req := NewRequest(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge", owner, repo, index)). 329 + AddTokenAuth(ctx.Token) 340 330 if ctx.ExpectedCode != 0 { 341 331 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 342 332 return 343 333 } 344 - ctx.Session.MakeRequest(t, req, 204) 334 + ctx.Session.MakeRequest(t, req, http.StatusNoContent) 345 335 } 346 336 } 347 337 348 338 func doAPIGetBranch(ctx APITestContext, branch string, callback ...func(*testing.T, api.Branch)) func(*testing.T) { 349 339 return func(t *testing.T) { 350 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/branches/%s?token=%s", ctx.Username, ctx.Reponame, branch, ctx.Token) 340 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/branches/%s", ctx.Username, ctx.Reponame, branch). 341 + AddTokenAuth(ctx.Token) 351 342 if ctx.ExpectedCode != 0 { 352 343 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 353 344 return ··· 364 355 365 356 func doAPICreateFile(ctx APITestContext, treepath string, options *api.CreateFileOptions, callback ...func(*testing.T, api.FileResponse)) func(*testing.T) { 366 357 return func(t *testing.T) { 367 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", ctx.Username, ctx.Reponame, treepath, ctx.Token) 368 - req := NewRequestWithJSON(t, "POST", url, &options) 358 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", ctx.Username, ctx.Reponame, treepath), &options). 359 + AddTokenAuth(ctx.Token) 369 360 if ctx.ExpectedCode != 0 { 370 361 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 371 362 return ··· 382 373 383 374 func doAPICreateOrganization(ctx APITestContext, options *api.CreateOrgOption, callback ...func(*testing.T, api.Organization)) func(t *testing.T) { 384 375 return func(t *testing.T) { 385 - url := fmt.Sprintf("/api/v1/orgs?token=%s", ctx.Token) 386 - 387 - req := NewRequestWithJSON(t, "POST", url, &options) 376 + req := NewRequestWithJSON(t, "POST", "/api/v1/orgs", &options). 377 + AddTokenAuth(ctx.Token) 388 378 if ctx.ExpectedCode != 0 { 389 379 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 390 380 return ··· 401 391 402 392 func doAPICreateOrganizationRepository(ctx APITestContext, orgName string, options *api.CreateRepoOption, callback ...func(*testing.T, api.Repository)) func(t *testing.T) { 403 393 return func(t *testing.T) { 404 - url := fmt.Sprintf("/api/v1/orgs/%s/repos?token=%s", orgName, ctx.Token) 405 - 406 - req := NewRequestWithJSON(t, "POST", url, &options) 394 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/repos", orgName), &options). 395 + AddTokenAuth(ctx.Token) 407 396 if ctx.ExpectedCode != 0 { 408 397 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 409 398 return ··· 420 409 421 410 func doAPICreateOrganizationTeam(ctx APITestContext, orgName string, options *api.CreateTeamOption, callback ...func(*testing.T, api.Team)) func(t *testing.T) { 422 411 return func(t *testing.T) { 423 - url := fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", orgName, ctx.Token) 424 - 425 - req := NewRequestWithJSON(t, "POST", url, &options) 412 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", orgName), &options). 413 + AddTokenAuth(ctx.Token) 426 414 if ctx.ExpectedCode != 0 { 427 415 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 428 416 return ··· 439 427 440 428 func doAPIAddUserToOrganizationTeam(ctx APITestContext, teamID int64, username string) func(t *testing.T) { 441 429 return func(t *testing.T) { 442 - url := fmt.Sprintf("/api/v1/teams/%d/members/%s?token=%s", teamID, username, ctx.Token) 443 - 444 - req := NewRequest(t, "PUT", url) 430 + req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/teams/%d/members/%s", teamID, username)). 431 + AddTokenAuth(ctx.Token) 445 432 if ctx.ExpectedCode != 0 { 446 433 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 447 434 return ··· 452 439 453 440 func doAPIAddRepoToOrganizationTeam(ctx APITestContext, teamID int64, orgName, repoName string) func(t *testing.T) { 454 441 return func(t *testing.T) { 455 - url := fmt.Sprintf("/api/v1/teams/%d/repos/%s/%s?token=%s", teamID, orgName, repoName, ctx.Token) 456 - 457 - req := NewRequest(t, "PUT", url) 442 + req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/teams/%d/repos/%s/%s", teamID, orgName, repoName)). 443 + AddTokenAuth(ctx.Token) 458 444 if ctx.ExpectedCode != 0 { 459 445 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 460 446 return
+7 -7
tests/integration/api_httpsig_test.go
··· 5 5 6 6 import ( 7 7 "encoding/base64" 8 - "fmt" 9 8 "net/http" 10 9 "net/url" 11 10 "testing" ··· 57 56 defer test.MockVariableValue(&setting.SSH.MinimumKeySizeCheck, false)() 58 57 session := loginUser(t, "user1") 59 58 token := url.QueryEscape(getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser)) 60 - keysURL := fmt.Sprintf("/api/v1/user/keys?token=%s", token) 61 59 keyType := "ssh-rsa" 62 60 keyContent := "AAAAB3NzaC1yc2EAAAADAQABAAABAQCqOZB5vkRvXFXups1/0StDRdG8plbNSwsWEnNnP4Bvurxa0+z3W9B8GLKnDiLw5MbpbMNyBlpXw13GfuIeciy10DWTz0xUbiy3J3KabCaT36asIw2y7k6Z0jL0UBnrVENwq5/lUbZYqSZ4rRU744wkhh8TULpzM14npQCZwg6aEbG+MwjzddQ72fR+3BPBrKn5dTmmu8rH99O+U+Nuto81Tg7PA+NUupcHOmhdiEGq49plgVFXK98Vks5tiybL4GuzFyWgyX73Dg/QBMn2eMHt1EMv5Gs3i6GFhKKGo4rjDi9qI6PX5oDR4LTNe6cR8td8YhVD8WFZwLLl/vaYyIqd" 63 61 rawKeyBody := api.CreateKeyOption{ 64 62 Title: "test-key", 65 63 Key: keyType + " " + keyContent, 66 64 } 67 - req := NewRequestWithJSON(t, "POST", keysURL, rawKeyBody) 65 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/keys", rawKeyBody). 66 + AddTokenAuth(token) 68 67 MakeRequest(t, req, http.StatusCreated) 69 68 70 69 // parse our private key and create the httpsig request ··· 73 72 74 73 // create the request 75 74 token = getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadAdmin) 76 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/admin/users?token=%s", token)) 75 + req = NewRequest(t, "GET", "/api/v1/admin/users"). 76 + AddTokenAuth(token) 77 77 78 78 signer, _, err := httpsig.NewSSHSigner(sshSigner, httpsig.DigestSha512, []string{httpsig.RequestTarget, "(created)", "(expires)"}, httpsig.Signature, 10) 79 79 if err != nil { ··· 81 81 } 82 82 83 83 // sign the request 84 - err = signer.SignRequest(keyID, req, nil) 84 + err = signer.SignRequest(keyID, req.Request, nil) 85 85 if err != nil { 86 86 t.Fatal(err) 87 87 } ··· 124 124 125 125 // add our cert to the request 126 126 certString := base64.RawStdEncoding.EncodeToString(pkcert.(*ssh.Certificate).Marshal()) 127 - req.Header.Add("x-ssh-certificate", certString) 127 + req.SetHeader("x-ssh-certificate", certString) 128 128 129 129 signer, _, err := httpsig.NewSSHSigner(certSigner, httpsig.DigestSha512, []string{httpsig.RequestTarget, "(created)", "(expires)", "x-ssh-certificate"}, httpsig.Signature, 10) 130 130 if err != nil { ··· 132 132 } 133 133 134 134 // sign the request 135 - err = signer.SignRequest(keyID, req, nil) 135 + err = signer.SignRequest(keyID, req.Request, nil) 136 136 if err != nil { 137 137 t.Fatal(err) 138 138 }
+11 -15
tests/integration/api_issue_attachment_test.go
··· 33 33 34 34 session := loginUser(t, repoOwner.Name) 35 35 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue) 36 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d?token=%s", 37 - repoOwner.Name, repo.Name, issue.Index, attachment.ID, token) 38 36 39 - req := NewRequest(t, "GET", urlStr) 37 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d", repoOwner.Name, repo.Name, issue.Index, attachment.ID)). 38 + AddTokenAuth(token) 40 39 resp := session.MakeRequest(t, req, http.StatusOK) 41 40 apiAttachment := new(api.Attachment) 42 41 DecodeJSON(t, resp, &apiAttachment) ··· 54 53 55 54 session := loginUser(t, repoOwner.Name) 56 55 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue) 57 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets?token=%s", 58 - repoOwner.Name, repo.Name, issue.Index, token) 59 56 60 - req := NewRequest(t, "GET", urlStr) 57 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets", repoOwner.Name, repo.Name, issue.Index)). 58 + AddTokenAuth(token) 61 59 resp := session.MakeRequest(t, req, http.StatusOK) 62 60 apiAttachment := new([]api.Attachment) 63 61 DecodeJSON(t, resp, &apiAttachment) ··· 74 72 75 73 session := loginUser(t, repoOwner.Name) 76 74 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 77 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets?token=%s", 78 - repoOwner.Name, repo.Name, issue.Index, token) 79 75 80 76 filename := "image.png" 81 77 buff := generateImg() ··· 90 86 err = writer.Close() 91 87 assert.NoError(t, err) 92 88 93 - req := NewRequestWithBody(t, "POST", urlStr, body) 89 + req := NewRequestWithBody(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets", repoOwner.Name, repo.Name, issue.Index), body). 90 + AddTokenAuth(token) 94 91 req.Header.Add("Content-Type", writer.FormDataContentType()) 95 92 resp := session.MakeRequest(t, req, http.StatusCreated) 96 93 ··· 112 109 113 110 session := loginUser(t, repoOwner.Name) 114 111 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 115 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d?token=%s", 116 - repoOwner.Name, repo.Name, issue.Index, attachment.ID, token) 112 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d", 113 + repoOwner.Name, repo.Name, issue.Index, attachment.ID) 117 114 req := NewRequestWithValues(t, "PATCH", urlStr, map[string]string{ 118 115 "name": newAttachmentName, 119 - }) 116 + }).AddTokenAuth(token) 120 117 resp := session.MakeRequest(t, req, http.StatusCreated) 121 118 apiAttachment := new(api.Attachment) 122 119 DecodeJSON(t, resp, &apiAttachment) ··· 134 131 135 132 session := loginUser(t, repoOwner.Name) 136 133 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 137 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d?token=%s", 138 - repoOwner.Name, repo.Name, issue.Index, attachment.ID, token) 139 134 140 - req := NewRequest(t, "DELETE", urlStr) 135 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/assets/%d", repoOwner.Name, repo.Name, issue.Index, attachment.ID)). 136 + AddTokenAuth(token) 141 137 session.MakeRequest(t, req, http.StatusNoContent) 142 138 143 139 unittest.AssertNotExistsBean(t, &repo_model.Attachment{ID: attachment.ID, IssueID: issue.ID})
+32 -26
tests/integration/api_issue_label_test.go
··· 26 26 owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 27 27 session := loginUser(t, owner.Name) 28 28 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 29 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/labels?token=%s", owner.Name, repo.Name, token) 29 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/labels", owner.Name, repo.Name) 30 30 31 31 // CreateLabel 32 32 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateLabelOption{ 33 33 Name: "TestL 1", 34 34 Color: "abcdef", 35 35 Description: "test label", 36 - }) 36 + }).AddTokenAuth(token) 37 37 resp := MakeRequest(t, req, http.StatusCreated) 38 38 apiLabel := new(api.Label) 39 39 DecodeJSON(t, resp, &apiLabel) ··· 45 45 Name: "TestL 2", 46 46 Color: "#123456", 47 47 Description: "jet another test label", 48 - }) 48 + }).AddTokenAuth(token) 49 49 MakeRequest(t, req, http.StatusCreated) 50 50 req = NewRequestWithJSON(t, "POST", urlStr, &api.CreateLabelOption{ 51 51 Name: "WrongTestL", 52 52 Color: "#12345g", 53 - }) 53 + }).AddTokenAuth(token) 54 54 MakeRequest(t, req, http.StatusUnprocessableEntity) 55 55 56 56 // ListLabels 57 - req = NewRequest(t, "GET", urlStr) 57 + req = NewRequest(t, "GET", urlStr). 58 + AddTokenAuth(token) 58 59 resp = MakeRequest(t, req, http.StatusOK) 59 60 var apiLabels []*api.Label 60 61 DecodeJSON(t, resp, &apiLabels) 61 62 assert.Len(t, apiLabels, 2) 62 63 63 64 // GetLabel 64 - singleURLStr := fmt.Sprintf("/api/v1/repos/%s/%s/labels/%d?token=%s", owner.Name, repo.Name, dbLabel.ID, token) 65 - req = NewRequest(t, "GET", singleURLStr) 65 + singleURLStr := fmt.Sprintf("/api/v1/repos/%s/%s/labels/%d", owner.Name, repo.Name, dbLabel.ID) 66 + req = NewRequest(t, "GET", singleURLStr). 67 + AddTokenAuth(token) 66 68 resp = MakeRequest(t, req, http.StatusOK) 67 69 DecodeJSON(t, resp, &apiLabel) 68 70 assert.EqualValues(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color) ··· 74 76 req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{ 75 77 Name: &newName, 76 78 Color: &newColor, 77 - }) 79 + }).AddTokenAuth(token) 78 80 resp = MakeRequest(t, req, http.StatusOK) 79 81 DecodeJSON(t, resp, &apiLabel) 80 82 assert.EqualValues(t, newColor, apiLabel.Color) 81 83 req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{ 82 84 Color: &newColorWrong, 83 - }) 85 + }).AddTokenAuth(token) 84 86 MakeRequest(t, req, http.StatusUnprocessableEntity) 85 87 86 88 // DeleteLabel 87 - req = NewRequest(t, "DELETE", singleURLStr) 89 + req = NewRequest(t, "DELETE", singleURLStr). 90 + AddTokenAuth(token) 88 91 MakeRequest(t, req, http.StatusNoContent) 89 92 } 90 93 ··· 98 101 99 102 session := loginUser(t, owner.Name) 100 103 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 101 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/labels?token=%s", 102 - repo.OwnerName, repo.Name, issue.Index, token) 104 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/labels", 105 + repo.OwnerName, repo.Name, issue.Index) 103 106 req := NewRequestWithJSON(t, "POST", urlStr, &api.IssueLabelsOption{ 104 107 Labels: []int64{1, 2}, 105 - }) 108 + }).AddTokenAuth(token) 106 109 resp := MakeRequest(t, req, http.StatusOK) 107 110 var apiLabels []*api.Label 108 111 DecodeJSON(t, resp, &apiLabels) ··· 121 124 122 125 session := loginUser(t, owner.Name) 123 126 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 124 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/labels?token=%s", 125 - owner.Name, repo.Name, issue.Index, token) 127 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/labels", 128 + owner.Name, repo.Name, issue.Index) 126 129 req := NewRequestWithJSON(t, "PUT", urlStr, &api.IssueLabelsOption{ 127 130 Labels: []int64{label.ID}, 128 - }) 131 + }).AddTokenAuth(token) 129 132 resp := MakeRequest(t, req, http.StatusOK) 130 133 var apiLabels []*api.Label 131 134 DecodeJSON(t, resp, &apiLabels) ··· 145 148 user := "user1" 146 149 session := loginUser(t, user) 147 150 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteOrganization) 148 - urlStr := fmt.Sprintf("/api/v1/orgs/%s/labels?token=%s", owner.Name, token) 151 + urlStr := fmt.Sprintf("/api/v1/orgs/%s/labels", owner.Name) 149 152 150 153 // CreateLabel 151 154 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateLabelOption{ 152 155 Name: "TestL 1", 153 156 Color: "abcdef", 154 157 Description: "test label", 155 - }) 158 + }).AddTokenAuth(token) 156 159 resp := MakeRequest(t, req, http.StatusCreated) 157 160 apiLabel := new(api.Label) 158 161 DecodeJSON(t, resp, &apiLabel) ··· 164 167 Name: "TestL 2", 165 168 Color: "#123456", 166 169 Description: "jet another test label", 167 - }) 170 + }).AddTokenAuth(token) 168 171 MakeRequest(t, req, http.StatusCreated) 169 172 req = NewRequestWithJSON(t, "POST", urlStr, &api.CreateLabelOption{ 170 173 Name: "WrongTestL", 171 174 Color: "#12345g", 172 - }) 175 + }).AddTokenAuth(token) 173 176 MakeRequest(t, req, http.StatusUnprocessableEntity) 174 177 175 178 // ListLabels 176 - req = NewRequest(t, "GET", urlStr) 179 + req = NewRequest(t, "GET", urlStr). 180 + AddTokenAuth(token) 177 181 resp = MakeRequest(t, req, http.StatusOK) 178 182 var apiLabels []*api.Label 179 183 DecodeJSON(t, resp, &apiLabels) 180 184 assert.Len(t, apiLabels, 4) 181 185 182 186 // GetLabel 183 - singleURLStr := fmt.Sprintf("/api/v1/orgs/%s/labels/%d?token=%s", owner.Name, dbLabel.ID, token) 184 - req = NewRequest(t, "GET", singleURLStr) 187 + singleURLStr := fmt.Sprintf("/api/v1/orgs/%s/labels/%d", owner.Name, dbLabel.ID) 188 + req = NewRequest(t, "GET", singleURLStr). 189 + AddTokenAuth(token) 185 190 resp = MakeRequest(t, req, http.StatusOK) 186 191 DecodeJSON(t, resp, &apiLabel) 187 192 assert.EqualValues(t, strings.TrimLeft(dbLabel.Color, "#"), apiLabel.Color) ··· 193 198 req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{ 194 199 Name: &newName, 195 200 Color: &newColor, 196 - }) 201 + }).AddTokenAuth(token) 197 202 resp = MakeRequest(t, req, http.StatusOK) 198 203 DecodeJSON(t, resp, &apiLabel) 199 204 assert.EqualValues(t, newColor, apiLabel.Color) 200 205 req = NewRequestWithJSON(t, "PATCH", singleURLStr, &api.EditLabelOption{ 201 206 Color: &newColorWrong, 202 - }) 207 + }).AddTokenAuth(token) 203 208 MakeRequest(t, req, http.StatusUnprocessableEntity) 204 209 205 210 // DeleteLabel 206 - req = NewRequest(t, "DELETE", singleURLStr) 211 + req = NewRequest(t, "DELETE", singleURLStr). 212 + AddTokenAuth(token) 207 213 MakeRequest(t, req, http.StatusNoContent) 208 214 }
+14 -9
tests/integration/api_issue_milestone_test.go
··· 34 34 // update values of issue 35 35 milestoneState := "closed" 36 36 37 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d?token=%s", owner.Name, repo.Name, milestone.ID, token) 37 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d", owner.Name, repo.Name, milestone.ID) 38 38 req := NewRequestWithJSON(t, "PATCH", urlStr, structs.EditMilestoneOption{ 39 39 State: &milestoneState, 40 - }) 40 + }).AddTokenAuth(token) 41 41 resp := MakeRequest(t, req, http.StatusOK) 42 42 var apiMilestone structs.Milestone 43 43 DecodeJSON(t, resp, &apiMilestone) 44 44 assert.EqualValues(t, "closed", apiMilestone.State) 45 45 46 - req = NewRequest(t, "GET", urlStr) 46 + req = NewRequest(t, "GET", urlStr). 47 + AddTokenAuth(token) 47 48 resp = MakeRequest(t, req, http.StatusOK) 48 49 var apiMilestone2 structs.Milestone 49 50 DecodeJSON(t, resp, &apiMilestone2) 50 51 assert.EqualValues(t, "closed", apiMilestone2.State) 51 52 52 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?token=%s", owner.Name, repo.Name, token), structs.CreateMilestoneOption{ 53 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/milestones", owner.Name, repo.Name), structs.CreateMilestoneOption{ 53 54 Title: "wow", 54 55 Description: "closed one", 55 56 State: "closed", 56 - }) 57 + }).AddTokenAuth(token) 57 58 resp = MakeRequest(t, req, http.StatusCreated) 58 59 DecodeJSON(t, resp, &apiMilestone) 59 60 assert.Equal(t, "wow", apiMilestone.Title) 60 61 assert.Equal(t, structs.StateClosed, apiMilestone.State) 61 62 62 63 var apiMilestones []structs.Milestone 63 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s&token=%s", owner.Name, repo.Name, "all", token)) 64 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s", owner.Name, repo.Name, "all")). 65 + AddTokenAuth(token) 64 66 resp = MakeRequest(t, req, http.StatusOK) 65 67 DecodeJSON(t, resp, &apiMilestones) 66 68 assert.Len(t, apiMilestones, 4) 67 69 68 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%s?token=%s", owner.Name, repo.Name, apiMilestones[2].Title, token)) 70 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%s", owner.Name, repo.Name, apiMilestones[2].Title)). 71 + AddTokenAuth(token) 69 72 resp = MakeRequest(t, req, http.StatusOK) 70 73 DecodeJSON(t, resp, &apiMilestone) 71 74 assert.EqualValues(t, apiMilestones[2], apiMilestone) 72 75 73 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s&name=%s&token=%s", owner.Name, repo.Name, "all", "milestone2", token)) 76 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/milestones?state=%s&name=%s", owner.Name, repo.Name, "all", "milestone2")). 77 + AddTokenAuth(token) 74 78 resp = MakeRequest(t, req, http.StatusOK) 75 79 DecodeJSON(t, resp, &apiMilestones) 76 80 assert.Len(t, apiMilestones, 1) 77 81 assert.Equal(t, int64(2), apiMilestones[0].ID) 78 82 79 - req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d?token=%s", owner.Name, repo.Name, apiMilestone.ID, token)) 83 + req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/milestones/%d", owner.Name, repo.Name, apiMilestone.ID)). 84 + AddTokenAuth(token) 80 85 MakeRequest(t, req, http.StatusNoContent) 81 86 }
+23 -39
tests/integration/api_issue_pin_test.go
··· 32 32 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 33 33 34 34 // Pin the Issue 35 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin?token=%s", 36 - repo.OwnerName, repo.Name, issue.Index, token) 37 - req := NewRequest(t, "POST", urlStr) 35 + req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin", repo.OwnerName, repo.Name, issue.Index)). 36 + AddTokenAuth(token) 38 37 MakeRequest(t, req, http.StatusNoContent) 39 38 40 39 // Check if the Issue is pinned 41 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index) 42 - req = NewRequest(t, "GET", urlStr) 40 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) 43 41 resp := MakeRequest(t, req, http.StatusOK) 44 42 var issueAPI api.Issue 45 43 DecodeJSON(t, resp, &issueAPI) ··· 59 57 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 60 58 61 59 // Pin the Issue 62 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin?token=%s", 63 - repo.OwnerName, repo.Name, issue.Index, token) 64 - req := NewRequest(t, "POST", urlStr) 60 + req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin", repo.OwnerName, repo.Name, issue.Index)). 61 + AddTokenAuth(token) 65 62 MakeRequest(t, req, http.StatusNoContent) 66 63 67 64 // Check if the Issue is pinned 68 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index) 69 - req = NewRequest(t, "GET", urlStr) 65 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) 70 66 resp := MakeRequest(t, req, http.StatusOK) 71 67 var issueAPI api.Issue 72 68 DecodeJSON(t, resp, &issueAPI) 73 69 assert.Equal(t, 1, issueAPI.PinOrder) 74 70 75 71 // Unpin the Issue 76 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin?token=%s", 77 - repo.OwnerName, repo.Name, issue.Index, token) 78 - req = NewRequest(t, "DELETE", urlStr) 72 + req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin", repo.OwnerName, repo.Name, issue.Index)). 73 + AddTokenAuth(token) 79 74 MakeRequest(t, req, http.StatusNoContent) 80 75 81 76 // Check if the Issue is no longer pinned 82 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index) 83 - req = NewRequest(t, "GET", urlStr) 77 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) 84 78 resp = MakeRequest(t, req, http.StatusOK) 85 79 DecodeJSON(t, resp, &issueAPI) 86 80 assert.Equal(t, 0, issueAPI.PinOrder) ··· 100 94 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 101 95 102 96 // Pin the first Issue 103 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin?token=%s", 104 - repo.OwnerName, repo.Name, issue.Index, token) 105 - req := NewRequest(t, "POST", urlStr) 97 + req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin", repo.OwnerName, repo.Name, issue.Index)). 98 + AddTokenAuth(token) 106 99 MakeRequest(t, req, http.StatusNoContent) 107 100 108 101 // Check if the first Issue is pinned at position 1 109 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index) 110 - req = NewRequest(t, "GET", urlStr) 102 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) 111 103 resp := MakeRequest(t, req, http.StatusOK) 112 104 var issueAPI api.Issue 113 105 DecodeJSON(t, resp, &issueAPI) 114 106 assert.Equal(t, 1, issueAPI.PinOrder) 115 107 116 108 // Pin the second Issue 117 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin?token=%s", 118 - repo.OwnerName, repo.Name, issue2.Index, token) 119 - req = NewRequest(t, "POST", urlStr) 109 + req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin", repo.OwnerName, repo.Name, issue2.Index)). 110 + AddTokenAuth(token) 120 111 MakeRequest(t, req, http.StatusNoContent) 121 112 122 113 // Move the first Issue to position 2 123 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin/2?token=%s", 124 - repo.OwnerName, repo.Name, issue.Index, token) 125 - req = NewRequest(t, "PATCH", urlStr) 114 + req = NewRequest(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin/2", repo.OwnerName, repo.Name, issue.Index)). 115 + AddTokenAuth(token) 126 116 MakeRequest(t, req, http.StatusNoContent) 127 117 128 118 // Check if the first Issue is pinned at position 2 129 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index) 130 - req = NewRequest(t, "GET", urlStr) 119 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue.Index)) 131 120 resp = MakeRequest(t, req, http.StatusOK) 132 121 var issueAPI3 api.Issue 133 122 DecodeJSON(t, resp, &issueAPI3) 134 123 assert.Equal(t, 2, issueAPI3.PinOrder) 135 124 136 125 // Check if the second Issue is pinned at position 1 137 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue2.Index) 138 - req = NewRequest(t, "GET", urlStr) 126 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", repo.OwnerName, repo.Name, issue2.Index)) 139 127 resp = MakeRequest(t, req, http.StatusOK) 140 128 var issueAPI4 api.Issue 141 129 DecodeJSON(t, resp, &issueAPI4) ··· 155 143 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 156 144 157 145 // Pin the Issue 158 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin?token=%s", 159 - repo.OwnerName, repo.Name, issue.Index, token) 160 - req := NewRequest(t, "POST", urlStr) 146 + req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/pin", repo.OwnerName, repo.Name, issue.Index)). 147 + AddTokenAuth(token) 161 148 MakeRequest(t, req, http.StatusNoContent) 162 149 163 150 // Check if the Issue is in the List 164 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/pinned", repo.OwnerName, repo.Name) 165 - req = NewRequest(t, "GET", urlStr) 151 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/pinned", repo.OwnerName, repo.Name)) 166 152 resp := MakeRequest(t, req, http.StatusOK) 167 153 var issueList []api.Issue 168 154 DecodeJSON(t, resp, &issueList) ··· 178 164 179 165 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 180 166 181 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/pinned", repo.OwnerName, repo.Name) 182 - req := NewRequest(t, "GET", urlStr) 167 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/pulls/pinned", repo.OwnerName, repo.Name)) 183 168 resp := MakeRequest(t, req, http.StatusOK) 184 169 var prList []api.PullRequest 185 170 DecodeJSON(t, resp, &prList) ··· 193 178 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 194 179 owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 195 180 196 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/new_pin_allowed", owner.Name, repo.Name) 197 - req := NewRequest(t, "GET", urlStr) 181 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/new_pin_allowed", owner.Name, repo.Name)) 198 182 resp := MakeRequest(t, req, http.StatusOK) 199 183 200 184 var newPinsAllowed api.NewIssuePinsAllowed
+17 -17
tests/integration/api_issue_reaction_test.go
··· 33 33 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 34 34 35 35 user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 36 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/reactions?token=%s", 37 - owner.Name, issue.Repo.Name, issue.Index, token) 36 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/reactions", owner.Name, issue.Repo.Name, issue.Index) 38 37 39 38 // Try to add not allowed reaction 40 39 req := NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ 41 40 Reaction: "wrong", 42 - }) 41 + }).AddTokenAuth(token) 43 42 MakeRequest(t, req, http.StatusForbidden) 44 43 45 44 // Delete not allowed reaction 46 45 req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{ 47 46 Reaction: "zzz", 48 - }) 47 + }).AddTokenAuth(token) 49 48 MakeRequest(t, req, http.StatusOK) 50 49 51 50 // Add allowed reaction 52 51 req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ 53 52 Reaction: "rocket", 54 - }) 53 + }).AddTokenAuth(token) 55 54 resp := MakeRequest(t, req, http.StatusCreated) 56 55 var apiNewReaction api.Reaction 57 56 DecodeJSON(t, resp, &apiNewReaction) ··· 60 59 MakeRequest(t, req, http.StatusForbidden) 61 60 62 61 // Get end result of reaction list of issue #1 63 - req = NewRequestf(t, "GET", urlStr) 62 + req = NewRequest(t, "GET", urlStr). 63 + AddTokenAuth(token) 64 64 resp = MakeRequest(t, req, http.StatusOK) 65 65 var apiReactions []*api.Reaction 66 66 DecodeJSON(t, resp, &apiReactions) ··· 93 93 94 94 user1 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) 95 95 user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 96 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/reactions?token=%s", 97 - owner.Name, issue.Repo.Name, comment.ID, token) 96 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/reactions", owner.Name, issue.Repo.Name, comment.ID) 98 97 99 98 // Try to add not allowed reaction 100 99 req := NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ 101 100 Reaction: "wrong", 102 - }) 101 + }).AddTokenAuth(token) 103 102 MakeRequest(t, req, http.StatusForbidden) 104 103 105 104 // Delete none existing reaction 106 105 req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{ 107 106 Reaction: "eyes", 108 - }) 107 + }).AddTokenAuth(token) 109 108 MakeRequest(t, req, http.StatusOK) 110 109 111 110 t.Run("UnrelatedCommentID", func(t *testing.T) { ··· 113 112 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}) 114 113 repoOwner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 115 114 token := getUserToken(t, repoOwner.Name, auth_model.AccessTokenScopeWriteIssue) 116 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/reactions?token=%s", 117 - repoOwner.Name, repo.Name, comment.ID, token) 115 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/comments/%d/reactions", repoOwner.Name, repo.Name, comment.ID) 118 116 req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ 119 117 Reaction: "+1", 120 - }) 118 + }).AddTokenAuth(token) 121 119 MakeRequest(t, req, http.StatusNotFound) 122 120 req = NewRequestWithJSON(t, "DELETE", urlStr, &api.EditReactionOption{ 123 121 Reaction: "+1", 124 - }) 122 + }).AddTokenAuth(token) 125 123 MakeRequest(t, req, http.StatusNotFound) 126 124 127 - req = NewRequestf(t, "GET", urlStr) 125 + req = NewRequest(t, "GET", urlStr). 126 + AddTokenAuth(token) 128 127 MakeRequest(t, req, http.StatusNotFound) 129 128 }) 130 129 131 130 // Add allowed reaction 132 131 req = NewRequestWithJSON(t, "POST", urlStr, &api.EditReactionOption{ 133 132 Reaction: "+1", 134 - }) 133 + }).AddTokenAuth(token) 135 134 resp := MakeRequest(t, req, http.StatusCreated) 136 135 var apiNewReaction api.Reaction 137 136 DecodeJSON(t, resp, &apiNewReaction) ··· 140 139 MakeRequest(t, req, http.StatusForbidden) 141 140 142 141 // Get end result of reaction list of issue #1 143 - req = NewRequestf(t, "GET", urlStr) 142 + req = NewRequest(t, "GET", urlStr). 143 + AddTokenAuth(token) 144 144 resp = MakeRequest(t, req, http.StatusOK) 145 145 var apiReactions []*api.Reaction 146 146 DecodeJSON(t, resp, &apiReactions)
+8 -4
tests/integration/api_issue_stopwatch_test.go
··· 27 27 28 28 session := loginUser(t, owner.Name) 29 29 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository, auth_model.AccessTokenScopeReadUser) 30 - req := NewRequestf(t, "GET", "/api/v1/user/stopwatches?token=%s", token) 30 + req := NewRequest(t, "GET", "/api/v1/user/stopwatches"). 31 + AddTokenAuth(token) 31 32 resp := MakeRequest(t, req, http.StatusOK) 32 33 var apiWatches []*api.StopWatch 33 34 DecodeJSON(t, resp, &apiWatches) ··· 54 55 session := loginUser(t, user.Name) 55 56 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 56 57 57 - req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/issues/%d/stopwatch/stop?token=%s", owner.Name, issue.Repo.Name, issue.Index, token) 58 + req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/issues/%d/stopwatch/stop", owner.Name, issue.Repo.Name, issue.Index). 59 + AddTokenAuth(token) 58 60 MakeRequest(t, req, http.StatusCreated) 59 61 MakeRequest(t, req, http.StatusConflict) 60 62 } ··· 70 72 session := loginUser(t, user.Name) 71 73 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 72 74 73 - req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/stopwatch/delete?token=%s", owner.Name, issue.Repo.Name, issue.Index, token) 75 + req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/stopwatch/delete", owner.Name, issue.Repo.Name, issue.Index). 76 + AddTokenAuth(token) 74 77 MakeRequest(t, req, http.StatusNoContent) 75 78 MakeRequest(t, req, http.StatusConflict) 76 79 } ··· 86 89 session := loginUser(t, user.Name) 87 90 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 88 91 89 - req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/issues/%d/stopwatch/start?token=%s", owner.Name, issue.Repo.Name, issue.Index, token) 92 + req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/issues/%d/stopwatch/start", owner.Name, issue.Repo.Name, issue.Index). 93 + AddTokenAuth(token) 90 94 MakeRequest(t, req, http.StatusCreated) 91 95 MakeRequest(t, req, http.StatusConflict) 92 96 }
+12 -8
tests/integration/api_issue_subscription_test.go
··· 37 37 testSubscription := func(issue *issues_model.Issue, isWatching bool) { 38 38 issueRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: issue.RepoID}) 39 39 40 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/subscriptions/check?token=%s", issueRepo.OwnerName, issueRepo.Name, issue.Index, token) 41 - req := NewRequest(t, "GET", urlStr) 40 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/subscriptions/check", issueRepo.OwnerName, issueRepo.Name, issue.Index)). 41 + AddTokenAuth(token) 42 42 resp := MakeRequest(t, req, http.StatusOK) 43 43 wi := new(api.WatchInfo) 44 44 DecodeJSON(t, resp, wi) ··· 57 57 testSubscription(issue5, false) 58 58 59 59 issue1Repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: issue1.RepoID}) 60 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/subscriptions/%s?token=%s", issue1Repo.OwnerName, issue1Repo.Name, issue1.Index, owner.Name, token) 61 - req := NewRequest(t, "DELETE", urlStr) 60 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/subscriptions/%s", issue1Repo.OwnerName, issue1Repo.Name, issue1.Index, owner.Name) 61 + req := NewRequest(t, "DELETE", urlStr). 62 + AddTokenAuth(token) 62 63 MakeRequest(t, req, http.StatusCreated) 63 64 testSubscription(issue1, false) 64 65 65 - req = NewRequest(t, "DELETE", urlStr) 66 + req = NewRequest(t, "DELETE", urlStr). 67 + AddTokenAuth(token) 66 68 MakeRequest(t, req, http.StatusOK) 67 69 testSubscription(issue1, false) 68 70 69 71 issue5Repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: issue5.RepoID}) 70 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/subscriptions/%s?token=%s", issue5Repo.OwnerName, issue5Repo.Name, issue5.Index, owner.Name, token) 71 - req = NewRequest(t, "PUT", urlStr) 72 + urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/subscriptions/%s", issue5Repo.OwnerName, issue5Repo.Name, issue5.Index, owner.Name) 73 + req = NewRequest(t, "PUT", urlStr). 74 + AddTokenAuth(token) 72 75 MakeRequest(t, req, http.StatusCreated) 73 76 testSubscription(issue5, true) 74 77 75 - req = NewRequest(t, "PUT", urlStr) 78 + req = NewRequest(t, "PUT", urlStr). 79 + AddTokenAuth(token) 76 80 MakeRequest(t, req, http.StatusOK) 77 81 testSubscription(issue5, true) 78 82 }
+6 -6
tests/integration/api_issue_test.go
··· 84 84 85 85 session := loginUser(t, owner.Name) 86 86 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 87 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues?state=all&token=%s", owner.Name, repoBefore.Name, token) 87 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues?state=all", owner.Name, repoBefore.Name) 88 88 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateIssueOption{ 89 89 Body: body, 90 90 Title: title, 91 91 Assignee: owner.Name, 92 - }) 92 + }).AddTokenAuth(token) 93 93 resp := MakeRequest(t, req, http.StatusCreated) 94 94 var apiIssue api.Issue 95 95 DecodeJSON(t, resp, &apiIssue) ··· 117 117 118 118 session := loginUser(t, owner.Name) 119 119 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 120 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues?state=all&token=%s", owner.Name, repoBefore.Name, token) 120 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues?state=all", owner.Name, repoBefore.Name) 121 121 122 122 var wg sync.WaitGroup 123 123 for i := 0; i < 10; i++ { ··· 130 130 Body: newBody, 131 131 Title: newTitle, 132 132 Assignee: owner.Name, 133 - }) 133 + }).AddTokenAuth(token) 134 134 resp := MakeRequest(t, req, http.StatusCreated) 135 135 var apiIssue api.Issue 136 136 DecodeJSON(t, resp, &apiIssue) ··· 171 171 body := "new content!" 172 172 title := "new title from api set" 173 173 174 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d?token=%s", owner.Name, repoBefore.Name, issueBefore.Index, token) 174 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d", owner.Name, repoBefore.Name, issueBefore.Index) 175 175 req := NewRequestWithJSON(t, "PATCH", urlStr, api.EditIssueOption{ 176 176 State: &issueState, 177 177 RemoveDeadline: &removeDeadline, ··· 180 180 Title: title, 181 181 182 182 // ToDo change more 183 - }) 183 + }).AddTokenAuth(token) 184 184 resp := MakeRequest(t, req, http.StatusCreated) 185 185 var apiIssue api.Issue 186 186 DecodeJSON(t, resp, &apiIssue)
+12 -7
tests/integration/api_issue_tracked_time_test.go
··· 30 30 session := loginUser(t, user2.Name) 31 31 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadIssue) 32 32 33 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times?token=%s", user2.Name, issue2.Repo.Name, issue2.Index, token) 33 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times", user2.Name, issue2.Repo.Name, issue2.Index). 34 + AddTokenAuth(token) 34 35 resp := MakeRequest(t, req, http.StatusOK) 35 36 var apiTimes api.TrackedTimeList 36 37 DecodeJSON(t, resp, &apiTimes) ··· 53 54 since := "2000-01-01T00%3A00%3A02%2B00%3A00" // 946684802 54 55 before := "2000-01-01T00%3A00%3A12%2B00%3A00" // 946684812 55 56 56 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times?since=%s&before=%s&token=%s", user2.Name, issue2.Repo.Name, issue2.Index, since, before, token) 57 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/issues/%d/times?since=%s&before=%s", user2.Name, issue2.Repo.Name, issue2.Index, since, before). 58 + AddTokenAuth(token) 57 59 resp = MakeRequest(t, req, http.StatusOK) 58 60 var filterAPITimes api.TrackedTimeList 59 61 DecodeJSON(t, resp, &filterAPITimes) ··· 74 76 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 75 77 76 78 // Deletion not allowed 77 - req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/times/%d?token=%s", user2.Name, issue2.Repo.Name, issue2.Index, time6.ID, token) 79 + req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/times/%d", user2.Name, issue2.Repo.Name, issue2.Index, time6.ID). 80 + AddTokenAuth(token) 78 81 MakeRequest(t, req, http.StatusForbidden) 79 82 80 83 time3 := unittest.AssertExistsAndLoadBean(t, &issues_model.TrackedTime{ID: 3}) 81 - req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/times/%d?token=%s", user2.Name, issue2.Repo.Name, issue2.Index, time3.ID, token) 84 + req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/times/%d", user2.Name, issue2.Repo.Name, issue2.Index, time3.ID). 85 + AddTokenAuth(token) 82 86 MakeRequest(t, req, http.StatusNoContent) 83 87 // Delete non existing time 84 88 MakeRequest(t, req, http.StatusNotFound) ··· 88 92 assert.NoError(t, err) 89 93 assert.Equal(t, int64(3661), trackedSeconds) 90 94 91 - req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/times?token=%s", user2.Name, issue2.Repo.Name, issue2.Index, token) 95 + req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/issues/%d/times", user2.Name, issue2.Repo.Name, issue2.Index). 96 + AddTokenAuth(token) 92 97 MakeRequest(t, req, http.StatusNoContent) 93 98 MakeRequest(t, req, http.StatusNotFound) 94 99 ··· 108 113 session := loginUser(t, admin.Name) 109 114 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 110 115 111 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/times?token=%s", user2.Name, issue2.Repo.Name, issue2.Index, token) 116 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues/%d/times", user2.Name, issue2.Repo.Name, issue2.Index) 112 117 113 118 req := NewRequestWithJSON(t, "POST", urlStr, &api.AddTimeOption{ 114 119 Time: 33, 115 120 User: user2.Name, 116 121 Created: time.Unix(947688818, 0), 117 - }) 122 + }).AddTokenAuth(token) 118 123 resp := MakeRequest(t, req, http.StatusOK) 119 124 var apiNewTime api.TrackedTime 120 125 DecodeJSON(t, resp, &apiNewTime)
+27 -27
tests/integration/api_keys_test.go
··· 55 55 56 56 session := loginUser(t, repoOwner.Name) 57 57 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 58 - keysURL := fmt.Sprintf("/api/v1/repos/%s/%s/keys?token=%s", repoOwner.Name, repo.Name, token) 58 + keysURL := fmt.Sprintf("/api/v1/repos/%s/%s/keys", repoOwner.Name, repo.Name) 59 59 rawKeyBody := api.CreateKeyOption{ 60 60 Title: "read-only", 61 61 Key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4cn+iXnA4KvcQYSV88vGn0Yi91vG47t1P7okprVmhNTkipNRIHWr6WdCO4VDr/cvsRkuVJAsLO2enwjGWWueOO6BodiBgyAOZ/5t5nJNMCNuLGT5UIo/RI1b0WRQwxEZTRjt6mFNw6lH14wRd8ulsr9toSWBPMOGWoYs1PDeDL0JuTjL+tr1SZi/EyxCngpYszKdXllJEHyI79KQgeD0Vt3pTrkbNVTOEcCNqZePSVmUH8X8Vhugz3bnE0/iE9Pb5fkWO9c4AnM1FgI/8Bvp27Fw2ShryIXuR6kKvUqhVMTuOSDHwu6A8jLE5Owt3GAYugDpDYuwTVNGrHLXKpPzrGGPE/jPmaLCMZcsdkec95dYeU3zKODEm8UQZFhmJmDeWVJ36nGrGZHL4J5aTTaeFUJmmXDaJYiJ+K2/ioKgXqnXvltu0A9R8/LGy4nrTJRr4JMLuJFoUXvGm1gXQ70w2LSpk6yl71RNC0hCtsBe8BP8IhYCM0EP5jh7eCMQZNvM= nocomment\n", 62 62 ReadOnly: true, 63 63 } 64 - req := NewRequestWithJSON(t, "POST", keysURL, rawKeyBody) 64 + req := NewRequestWithJSON(t, "POST", keysURL, rawKeyBody). 65 + AddTokenAuth(token) 65 66 resp := MakeRequest(t, req, http.StatusCreated) 66 67 67 68 var newDeployKey api.DeployKey ··· 75 76 76 77 // Using the ID of a key that does not belong to the repository must fail 77 78 { 78 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/keys/%d?token=%s", repoOwner.Name, repo.Name, newDeployKey.ID, token)) 79 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/keys/%d", repoOwner.Name, repo.Name, newDeployKey.ID)). 80 + AddTokenAuth(token) 79 81 MakeRequest(t, req, http.StatusOK) 80 82 81 83 session5 := loginUser(t, "user5") 82 84 token5 := getTokenForLoggedInUser(t, session5, auth_model.AccessTokenScopeWriteRepository) 83 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user5/repo4/keys/%d?token=%s", newDeployKey.ID, token5)) 85 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user5/repo4/keys/%d", newDeployKey.ID)). 86 + AddTokenAuth(token5) 84 87 MakeRequest(t, req, http.StatusNotFound) 85 88 } 86 89 } ··· 92 95 93 96 session := loginUser(t, repoOwner.Name) 94 97 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 95 - keysURL := fmt.Sprintf("/api/v1/repos/%s/%s/keys?token=%s", repoOwner.Name, repo.Name, token) 98 + keysURL := fmt.Sprintf("/api/v1/repos/%s/%s/keys", repoOwner.Name, repo.Name) 96 99 rawKeyBody := api.CreateKeyOption{ 97 100 Title: "read-write", 98 101 Key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC4cn+iXnA4KvcQYSV88vGn0Yi91vG47t1P7okprVmhNTkipNRIHWr6WdCO4VDr/cvsRkuVJAsLO2enwjGWWueOO6BodiBgyAOZ/5t5nJNMCNuLGT5UIo/RI1b0WRQwxEZTRjt6mFNw6lH14wRd8ulsr9toSWBPMOGWoYs1PDeDL0JuTjL+tr1SZi/EyxCngpYszKdXllJEHyI79KQgeD0Vt3pTrkbNVTOEcCNqZePSVmUH8X8Vhugz3bnE0/iE9Pb5fkWO9c4AnM1FgI/8Bvp27Fw2ShryIXuR6kKvUqhVMTuOSDHwu6A8jLE5Owt3GAYugDpDYuwTVNGrHLXKpPzrGGPE/jPmaLCMZcsdkec95dYeU3zKODEm8UQZFhmJmDeWVJ36nGrGZHL4J5aTTaeFUJmmXDaJYiJ+K2/ioKgXqnXvltu0A9R8/LGy4nrTJRr4JMLuJFoUXvGm1gXQ70w2LSpk6yl71RNC0hCtsBe8BP8IhYCM0EP5jh7eCMQZNvM= nocomment\n", 99 102 } 100 - req := NewRequestWithJSON(t, "POST", keysURL, rawKeyBody) 103 + req := NewRequestWithJSON(t, "POST", keysURL, rawKeyBody). 104 + AddTokenAuth(token) 101 105 resp := MakeRequest(t, req, http.StatusCreated) 102 106 103 107 var newDeployKey api.DeployKey ··· 116 120 117 121 session := loginUser(t, "user1") 118 122 token := url.QueryEscape(getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser)) 119 - keysURL := fmt.Sprintf("/api/v1/user/keys?token=%s", token) 120 123 keyType := "ssh-rsa" 121 124 keyContent := "AAAAB3NzaC1yc2EAAAADAQABAAABgQC4cn+iXnA4KvcQYSV88vGn0Yi91vG47t1P7okprVmhNTkipNRIHWr6WdCO4VDr/cvsRkuVJAsLO2enwjGWWueOO6BodiBgyAOZ/5t5nJNMCNuLGT5UIo/RI1b0WRQwxEZTRjt6mFNw6lH14wRd8ulsr9toSWBPMOGWoYs1PDeDL0JuTjL+tr1SZi/EyxCngpYszKdXllJEHyI79KQgeD0Vt3pTrkbNVTOEcCNqZePSVmUH8X8Vhugz3bnE0/iE9Pb5fkWO9c4AnM1FgI/8Bvp27Fw2ShryIXuR6kKvUqhVMTuOSDHwu6A8jLE5Owt3GAYugDpDYuwTVNGrHLXKpPzrGGPE/jPmaLCMZcsdkec95dYeU3zKODEm8UQZFhmJmDeWVJ36nGrGZHL4J5aTTaeFUJmmXDaJYiJ+K2/ioKgXqnXvltu0A9R8/LGy4nrTJRr4JMLuJFoUXvGm1gXQ70w2LSpk6yl71RNC0hCtsBe8BP8IhYCM0EP5jh7eCMQZNvM=" 122 125 rawKeyBody := api.CreateKeyOption{ 123 126 Title: "test-key", 124 127 Key: keyType + " " + keyContent, 125 128 } 126 - req := NewRequestWithJSON(t, "POST", keysURL, rawKeyBody) 129 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/keys", rawKeyBody). 130 + AddTokenAuth(token) 127 131 resp := MakeRequest(t, req, http.StatusCreated) 128 132 129 133 var newPublicKey api.PublicKey ··· 139 143 }) 140 144 141 145 // Search by fingerprint 142 - fingerprintURL := fmt.Sprintf("/api/v1/user/keys?token=%s&fingerprint=%s", token, newPublicKey.Fingerprint) 143 - 144 - req = NewRequest(t, "GET", fingerprintURL) 146 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/keys?fingerprint=%s", newPublicKey.Fingerprint)). 147 + AddTokenAuth(token) 145 148 resp = MakeRequest(t, req, http.StatusOK) 146 149 147 150 var fingerprintPublicKeys []api.PublicKey ··· 150 153 assert.Equal(t, newPublicKey.ID, fingerprintPublicKeys[0].ID) 151 154 assert.Equal(t, user.ID, fingerprintPublicKeys[0].Owner.ID) 152 155 153 - fingerprintURL = fmt.Sprintf("/api/v1/users/%s/keys?token=%s&fingerprint=%s", user.Name, token, newPublicKey.Fingerprint) 154 - 155 - req = NewRequest(t, "GET", fingerprintURL) 156 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/keys?fingerprint=%s", user.Name, newPublicKey.Fingerprint)). 157 + AddTokenAuth(token) 156 158 resp = MakeRequest(t, req, http.StatusOK) 157 159 158 160 DecodeJSON(t, resp, &fingerprintPublicKeys) ··· 161 163 assert.Equal(t, user.ID, fingerprintPublicKeys[0].Owner.ID) 162 164 163 165 // Fail search by fingerprint 164 - fingerprintURL = fmt.Sprintf("/api/v1/user/keys?token=%s&fingerprint=%sA", token, newPublicKey.Fingerprint) 165 - 166 - req = NewRequest(t, "GET", fingerprintURL) 166 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/keys?fingerprint=%sA", newPublicKey.Fingerprint)). 167 + AddTokenAuth(token) 167 168 resp = MakeRequest(t, req, http.StatusOK) 168 169 169 170 DecodeJSON(t, resp, &fingerprintPublicKeys) 170 171 assert.Len(t, fingerprintPublicKeys, 0) 171 172 172 173 // Fail searching for wrong users key 173 - fingerprintURL = fmt.Sprintf("/api/v1/users/%s/keys?token=%s&fingerprint=%s", "user2", token, newPublicKey.Fingerprint) 174 - req = NewRequest(t, "GET", fingerprintURL) 174 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/keys?fingerprint=%s", "user2", newPublicKey.Fingerprint)). 175 + AddTokenAuth(token) 175 176 resp = MakeRequest(t, req, http.StatusOK) 176 177 177 178 DecodeJSON(t, resp, &fingerprintPublicKeys) ··· 179 180 180 181 // Now login as user 2 181 182 session2 := loginUser(t, "user2") 182 - token2 := url.QueryEscape(getTokenForLoggedInUser(t, session2, auth_model.AccessTokenScopeWriteUser)) 183 + token2 := getTokenForLoggedInUser(t, session2, auth_model.AccessTokenScopeWriteUser) 183 184 184 185 // Should find key even though not ours, but we shouldn't know whose it is 185 - fingerprintURL = fmt.Sprintf("/api/v1/user/keys?token=%s&fingerprint=%s", token2, newPublicKey.Fingerprint) 186 - req = NewRequest(t, "GET", fingerprintURL) 186 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/keys?fingerprint=%s", newPublicKey.Fingerprint)). 187 + AddTokenAuth(token2) 187 188 resp = MakeRequest(t, req, http.StatusOK) 188 189 189 190 DecodeJSON(t, resp, &fingerprintPublicKeys) ··· 192 193 assert.Nil(t, fingerprintPublicKeys[0].Owner) 193 194 194 195 // Should find key even though not ours, but we shouldn't know whose it is 195 - fingerprintURL = fmt.Sprintf("/api/v1/users/%s/keys?token=%s&fingerprint=%s", user.Name, token2, newPublicKey.Fingerprint) 196 - 197 - req = NewRequest(t, "GET", fingerprintURL) 196 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/keys?fingerprint=%s", user.Name, newPublicKey.Fingerprint)). 197 + AddTokenAuth(token2) 198 198 resp = MakeRequest(t, req, http.StatusOK) 199 199 200 200 DecodeJSON(t, resp, &fingerprintPublicKeys) ··· 203 203 assert.Nil(t, fingerprintPublicKeys[0].Owner) 204 204 205 205 // Fail when searching for key if it is not ours 206 - fingerprintURL = fmt.Sprintf("/api/v1/users/%s/keys?token=%s&fingerprint=%s", "user2", token2, newPublicKey.Fingerprint) 207 - req = NewRequest(t, "GET", fingerprintURL) 206 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/keys?fingerprint=%s", "user2", newPublicKey.Fingerprint)). 207 + AddTokenAuth(token2) 208 208 resp = MakeRequest(t, req, http.StatusOK) 209 209 210 210 DecodeJSON(t, resp, &fingerprintPublicKeys)
+1 -1
tests/integration/api_nodeinfo_test.go
··· 24 24 }() 25 25 26 26 onGiteaRun(t, func(*testing.T, *url.URL) { 27 - req := NewRequestf(t, "GET", "/api/v1/nodeinfo") 27 + req := NewRequest(t, "GET", "/api/v1/nodeinfo") 28 28 resp := MakeRequest(t, req, http.StatusOK) 29 29 VerifyJSONSchema(t, resp, "nodeinfo_2.1.json") 30 30
+30 -15
tests/integration/api_notification_test.go
··· 35 35 // -- GET /notifications -- 36 36 // test filter 37 37 since := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 38 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?since=%s&token=%s", since, token)) 38 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?since=%s", since)). 39 + AddTokenAuth(token) 39 40 resp := MakeRequest(t, req, http.StatusOK) 40 41 var apiNL []api.NotificationThread 41 42 DecodeJSON(t, resp, &apiNL) ··· 46 47 // test filter 47 48 before := "2000-01-01T01%3A06%3A59%2B00%3A00" // 946688819 48 49 49 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?all=%s&before=%s&token=%s", "true", before, token)) 50 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?all=%s&before=%s", "true", before)). 51 + AddTokenAuth(token) 50 52 resp = MakeRequest(t, req, http.StatusOK) 51 53 DecodeJSON(t, resp, &apiNL) 52 54 ··· 62 64 assert.False(t, apiNL[2].Pinned) 63 65 64 66 // -- GET /repos/{owner}/{repo}/notifications -- 65 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread&token=%s", user2.Name, repo1.Name, token)) 67 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread", user2.Name, repo1.Name)). 68 + AddTokenAuth(token) 66 69 resp = MakeRequest(t, req, http.StatusOK) 67 70 DecodeJSON(t, resp, &apiNL) 68 71 ··· 70 73 assert.EqualValues(t, 4, apiNL[0].ID) 71 74 72 75 // -- GET /repos/{owner}/{repo}/notifications -- multiple status-types 73 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread&status-types=pinned&token=%s", user2.Name, repo1.Name, token)) 76 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?status-types=unread&status-types=pinned", user2.Name, repo1.Name)). 77 + AddTokenAuth(token) 74 78 resp = MakeRequest(t, req, http.StatusOK) 75 79 DecodeJSON(t, resp, &apiNL) 76 80 ··· 86 90 87 91 // -- GET /notifications/threads/{id} -- 88 92 // get forbidden 89 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", 1, token)) 93 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d", 1)). 94 + AddTokenAuth(token) 90 95 MakeRequest(t, req, http.StatusForbidden) 91 96 92 97 // get own 93 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", thread5.ID, token)) 98 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/threads/%d", thread5.ID)). 99 + AddTokenAuth(token) 94 100 resp = MakeRequest(t, req, http.StatusOK) 95 101 var apiN api.NotificationThread 96 102 DecodeJSON(t, resp, &apiN) ··· 110 116 }{} 111 117 112 118 // -- check notifications -- 113 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/new?token=%s", token)) 119 + req = NewRequest(t, "GET", "/api/v1/notifications/new"). 120 + AddTokenAuth(token) 114 121 resp = MakeRequest(t, req, http.StatusOK) 115 122 DecodeJSON(t, resp, &new) 116 123 assert.True(t, new.New > 0) 117 124 118 125 // -- mark notifications as read -- 119 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?status-types=unread&token=%s", token)) 126 + req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). 127 + AddTokenAuth(token) 120 128 resp = MakeRequest(t, req, http.StatusOK) 121 129 DecodeJSON(t, resp, &apiNL) 122 130 assert.Len(t, apiNL, 2) 123 131 124 132 lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 <- only Notification 4 is in this filter ... 125 - req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s&token=%s", user2.Name, repo1.Name, lastReadAt, token)) 133 + req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s", user2.Name, repo1.Name, lastReadAt)). 134 + AddTokenAuth(token) 126 135 MakeRequest(t, req, http.StatusResetContent) 127 136 128 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?status-types=unread&token=%s", token)) 137 + req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). 138 + AddTokenAuth(token) 129 139 resp = MakeRequest(t, req, http.StatusOK) 130 140 DecodeJSON(t, resp, &apiNL) 131 141 assert.Len(t, apiNL, 1) 132 142 133 143 // -- PATCH /notifications/threads/{id} -- 134 - req = NewRequest(t, "PATCH", fmt.Sprintf("/api/v1/notifications/threads/%d?token=%s", thread5.ID, token)) 144 + req = NewRequest(t, "PATCH", fmt.Sprintf("/api/v1/notifications/threads/%d", thread5.ID)). 145 + AddTokenAuth(token) 135 146 MakeRequest(t, req, http.StatusResetContent) 136 147 137 148 assert.Equal(t, activities_model.NotificationStatusUnread, thread5.Status) ··· 139 150 assert.Equal(t, activities_model.NotificationStatusRead, thread5.Status) 140 151 141 152 // -- check notifications -- 142 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications/new?token=%s", token)) 153 + req = NewRequest(t, "GET", "/api/v1/notifications/new"). 154 + AddTokenAuth(token) 143 155 resp = MakeRequest(t, req, http.StatusOK) 144 156 DecodeJSON(t, resp, &new) 145 157 assert.True(t, new.New == 0) ··· 155 167 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteNotification) 156 168 157 169 // Check notifications are as expected 158 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?all=true&token=%s", token)) 170 + req := NewRequest(t, "GET", "/api/v1/notifications?all=true"). 171 + AddTokenAuth(token) 159 172 resp := MakeRequest(t, req, http.StatusOK) 160 173 var apiNL []api.NotificationThread 161 174 DecodeJSON(t, resp, &apiNL) ··· 178 191 // Notification ID 2 is the only one with status-type read & pinned 179 192 // change it to unread. 180 193 // 181 - req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/notifications?status-types=read&status-type=pinned&to-status=unread&token=%s", token)) 194 + req = NewRequest(t, "PUT", "/api/v1/notifications?status-types=read&status-type=pinned&to-status=unread"). 195 + AddTokenAuth(token) 182 196 resp = MakeRequest(t, req, http.StatusResetContent) 183 197 DecodeJSON(t, resp, &apiNL) 184 198 assert.Len(t, apiNL, 1) ··· 189 203 // 190 204 // Now nofication ID 2 is the first in the list and is unread. 191 205 // 192 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?all=true&token=%s", token)) 206 + req = NewRequest(t, "GET", "/api/v1/notifications?all=true"). 207 + AddTokenAuth(token) 193 208 resp = MakeRequest(t, req, http.StatusOK) 194 209 DecodeJSON(t, resp, &apiNL) 195 210
+13 -11
tests/integration/api_oauth2_apps_test.go
··· 36 36 ConfidentialClient: true, 37 37 } 38 38 39 - req := NewRequestWithJSON(t, "POST", "/api/v1/user/applications/oauth2", &appBody) 40 - req = AddBasicAuthHeader(req, user.Name) 39 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/applications/oauth2", &appBody). 40 + AddBasicAuth(user.Name) 41 41 resp := MakeRequest(t, req, http.StatusCreated) 42 42 43 43 var createdApp *api.OAuth2Application ··· 66 66 ConfidentialClient: true, 67 67 }) 68 68 69 - urlStr := fmt.Sprintf("/api/v1/user/applications/oauth2?token=%s", token) 70 - req := NewRequest(t, "GET", urlStr) 69 + req := NewRequest(t, "GET", "/api/v1/user/applications/oauth2"). 70 + AddTokenAuth(token) 71 71 resp := MakeRequest(t, req, http.StatusOK) 72 72 73 73 var appList api.OAuth2ApplicationList ··· 93 93 Name: "test-app-1", 94 94 }) 95 95 96 - urlStr := fmt.Sprintf("/api/v1/user/applications/oauth2/%d?token=%s", oldApp.ID, token) 97 - req := NewRequest(t, "DELETE", urlStr) 96 + urlStr := fmt.Sprintf("/api/v1/user/applications/oauth2/%d", oldApp.ID) 97 + req := NewRequest(t, "DELETE", urlStr). 98 + AddTokenAuth(token) 98 99 MakeRequest(t, req, http.StatusNoContent) 99 100 100 101 unittest.AssertNotExistsBean(t, &auth_model.OAuth2Application{UID: oldApp.UID, Name: oldApp.Name}) 101 102 102 103 // Delete again will return not found 103 - req = NewRequest(t, "DELETE", urlStr) 104 + req = NewRequest(t, "DELETE", urlStr). 105 + AddTokenAuth(token) 104 106 MakeRequest(t, req, http.StatusNotFound) 105 107 } 106 108 ··· 118 120 ConfidentialClient: true, 119 121 }) 120 122 121 - urlStr := fmt.Sprintf("/api/v1/user/applications/oauth2/%d?token=%s", existApp.ID, token) 122 - req := NewRequest(t, "GET", urlStr) 123 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/applications/oauth2/%d", existApp.ID)). 124 + AddTokenAuth(token) 123 125 resp := MakeRequest(t, req, http.StatusOK) 124 126 125 127 var app api.OAuth2Application ··· 157 159 } 158 160 159 161 urlStr := fmt.Sprintf("/api/v1/user/applications/oauth2/%d", existApp.ID) 160 - req := NewRequestWithJSON(t, "PATCH", urlStr, &appBody) 161 - req = AddBasicAuthHeader(req, user.Name) 162 + req := NewRequestWithJSON(t, "PATCH", urlStr, &appBody). 163 + AddBasicAuth(user.Name) 162 164 resp := MakeRequest(t, req, http.StatusOK) 163 165 164 166 var app api.OAuth2Application
+8 -4
tests/integration/api_org_avatar_test.go
··· 34 34 Image: base64.StdEncoding.EncodeToString(avatar), 35 35 } 36 36 37 - req := NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar?token="+token, &opts) 37 + req := NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar", &opts). 38 + AddTokenAuth(token) 38 39 MakeRequest(t, req, http.StatusNoContent) 39 40 40 41 // Test what happens if you don't have a valid Base64 string ··· 42 43 Image: "Invalid", 43 44 } 44 45 45 - req = NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar?token="+token, &opts) 46 + req = NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar", &opts). 47 + AddTokenAuth(token) 46 48 MakeRequest(t, req, http.StatusBadRequest) 47 49 48 50 // Test what happens if you use a file that is not an image ··· 56 58 Image: base64.StdEncoding.EncodeToString(text), 57 59 } 58 60 59 - req = NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar?token="+token, &opts) 61 + req = NewRequestWithJSON(t, "POST", "/api/v1/orgs/org3/avatar", &opts). 62 + AddTokenAuth(token) 60 63 MakeRequest(t, req, http.StatusInternalServerError) 61 64 } 62 65 ··· 67 70 68 71 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteOrganization) 69 72 70 - req := NewRequest(t, "DELETE", "/api/v1/orgs/org3/avatar?token="+token) 73 + req := NewRequest(t, "DELETE", "/api/v1/orgs/org3/avatar"). 74 + AddTokenAuth(token) 71 75 MakeRequest(t, req, http.StatusNoContent) 72 76 }
+21 -13
tests/integration/api_org_test.go
··· 36 36 Location: "Shanghai", 37 37 Visibility: "limited", 38 38 } 39 - req := NewRequestWithJSON(t, "POST", "/api/v1/orgs?token="+token, &org) 39 + req := NewRequestWithJSON(t, "POST", "/api/v1/orgs", &org). 40 + AddTokenAuth(token) 40 41 resp := MakeRequest(t, req, http.StatusCreated) 41 42 42 43 var apiOrg api.Organization ··· 71 72 }) 72 73 } 73 74 74 - req = NewRequestf(t, "GET", "/api/v1/orgs/%s?token=%s", org.UserName, token) 75 + req = NewRequestf(t, "GET", "/api/v1/orgs/%s", org.UserName). 76 + AddTokenAuth(token) 75 77 resp = MakeRequest(t, req, http.StatusOK) 76 78 DecodeJSON(t, resp, &apiOrg) 77 79 assert.EqualValues(t, org.UserName, apiOrg.Name) 78 80 79 - req = NewRequestf(t, "GET", "/api/v1/orgs/%s/repos?token=%s", org.UserName, token) 81 + req = NewRequestf(t, "GET", "/api/v1/orgs/%s/repos", org.UserName). 82 + AddTokenAuth(token) 80 83 resp = MakeRequest(t, req, http.StatusOK) 81 84 82 85 var repos []*api.Repository ··· 85 88 assert.False(t, repo.Private) 86 89 } 87 90 88 - req = NewRequestf(t, "GET", "/api/v1/orgs/%s/members?token=%s", org.UserName, token) 91 + req = NewRequestf(t, "GET", "/api/v1/orgs/%s/members", org.UserName). 92 + AddTokenAuth(token) 89 93 resp = MakeRequest(t, req, http.StatusOK) 90 94 91 95 // user1 on this org is public ··· 108 112 Location: "Beijing", 109 113 Visibility: "private", 110 114 } 111 - req := NewRequestWithJSON(t, "PATCH", "/api/v1/orgs/org3?token="+token, &org) 115 + req := NewRequestWithJSON(t, "PATCH", "/api/v1/orgs/org3", &org). 116 + AddTokenAuth(token) 112 117 resp := MakeRequest(t, req, http.StatusOK) 113 118 114 119 var apiOrg api.Organization ··· 135 140 Location: "Beijing", 136 141 Visibility: "badvisibility", 137 142 } 138 - req := NewRequestWithJSON(t, "PATCH", "/api/v1/orgs/org3?token="+token, &org) 143 + req := NewRequestWithJSON(t, "PATCH", "/api/v1/orgs/org3", &org). 144 + AddTokenAuth(token) 139 145 MakeRequest(t, req, http.StatusUnprocessableEntity) 140 146 }) 141 147 } ··· 165 171 token := getUserToken(t, "user1", auth_model.AccessTokenScopeReadOrganization) 166 172 167 173 // accessing with a token will return all orgs 168 - req := NewRequestf(t, "GET", "/api/v1/orgs?token=%s", token) 174 + req := NewRequest(t, "GET", "/api/v1/orgs"). 175 + AddTokenAuth(token) 169 176 resp := MakeRequest(t, req, http.StatusOK) 170 177 var apiOrgList []*api.Organization 171 178 ··· 175 182 assert.Equal(t, "limited", apiOrgList[1].Visibility) 176 183 177 184 // accessing without a token will return only public orgs 178 - req = NewRequestf(t, "GET", "/api/v1/orgs") 185 + req = NewRequest(t, "GET", "/api/v1/orgs") 179 186 resp = MakeRequest(t, req, http.StatusOK) 180 187 181 188 DecodeJSON(t, resp, &apiOrgList) ··· 190 197 orgName := "org_with_empty_team" 191 198 192 199 // create org 193 - req := NewRequestWithJSON(t, "POST", "/api/v1/orgs?token="+token, &api.CreateOrgOption{ 200 + req := NewRequestWithJSON(t, "POST", "/api/v1/orgs", &api.CreateOrgOption{ 194 201 UserName: orgName, 195 - }) 202 + }).AddTokenAuth(token) 196 203 MakeRequest(t, req, http.StatusCreated) 197 204 198 205 // create team with no member 199 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", orgName, token), &api.CreateTeamOption{ 206 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", orgName), &api.CreateTeamOption{ 200 207 Name: "Empty", 201 208 IncludesAllRepositories: true, 202 209 Permission: "read", 203 210 Units: []string{"repo.code", "repo.issues", "repo.ext_issues", "repo.wiki", "repo.pulls"}, 204 - }) 211 + }).AddTokenAuth(token) 205 212 MakeRequest(t, req, http.StatusCreated) 206 213 207 214 // case-insensitive search for teams that have no members 208 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/teams/search?q=%s&token=%s", orgName, "empty", token)) 215 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/orgs/%s/teams/search?q=%s", orgName, "empty")). 216 + AddTokenAuth(token) 209 217 resp := MakeRequest(t, req, http.StatusOK) 210 218 data := struct { 211 219 Ok bool
+6 -6
tests/integration/api_packages_alpine_test.go
··· 85 85 req := NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader([]byte{})) 86 86 MakeRequest(t, req, http.StatusUnauthorized) 87 87 88 - req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader([]byte{})) 89 - AddBasicAuthHeader(req, user.Name) 88 + req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader([]byte{})). 89 + AddBasicAuth(user.Name) 90 90 MakeRequest(t, req, http.StatusBadRequest) 91 91 92 - req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)) 93 - AddBasicAuthHeader(req, user.Name) 92 + req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)). 93 + AddBasicAuth(user.Name) 94 94 MakeRequest(t, req, http.StatusCreated) 95 95 96 96 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeAlpine) ··· 216 216 req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s/x86_64/%s-%s.apk", rootURL, branch, repository, packageName, packageVersion)) 217 217 MakeRequest(t, req, http.StatusUnauthorized) 218 218 219 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s/x86_64/%s-%s.apk", rootURL, branch, repository, packageName, packageVersion)) 220 - AddBasicAuthHeader(req, user.Name) 219 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s/x86_64/%s-%s.apk", rootURL, branch, repository, packageName, packageVersion)). 220 + AddBasicAuth(user.Name) 221 221 MakeRequest(t, req, http.StatusNoContent) 222 222 223 223 // Deleting the last file of an architecture should remove that index
+18 -18
tests/integration/api_packages_cargo_test.go
··· 132 132 133 133 content := createPackage("0test", "1.0.0") 134 134 135 - req := NewRequestWithBody(t, "PUT", url+"/new", content) 136 - req = AddBasicAuthHeader(req, user.Name) 135 + req := NewRequestWithBody(t, "PUT", url+"/new", content). 136 + AddBasicAuth(user.Name) 137 137 resp := MakeRequest(t, req, http.StatusBadRequest) 138 138 139 139 var status cargo_router.StatusResponse ··· 142 142 143 143 content = createPackage("test", "-1.0.0") 144 144 145 - req = NewRequestWithBody(t, "PUT", url+"/new", content) 146 - req = AddBasicAuthHeader(req, user.Name) 145 + req = NewRequestWithBody(t, "PUT", url+"/new", content). 146 + AddBasicAuth(user.Name) 147 147 resp = MakeRequest(t, req, http.StatusBadRequest) 148 148 149 149 DecodeJSON(t, resp, &status) ··· 161 161 binary.Write(&buf, binary.LittleEndian, uint32(4)) 162 162 buf.WriteString("te") 163 163 164 - req := NewRequestWithBody(t, "PUT", url+"/new", &buf) 165 - req = AddBasicAuthHeader(req, user.Name) 164 + req := NewRequestWithBody(t, "PUT", url+"/new", &buf). 165 + AddBasicAuth(user.Name) 166 166 MakeRequest(t, req, http.StatusBadRequest) 167 167 }) 168 168 ··· 172 172 req := NewRequestWithBody(t, "PUT", url+"/new", createPackage(packageName, packageVersion)) 173 173 MakeRequest(t, req, http.StatusUnauthorized) 174 174 175 - req = NewRequestWithBody(t, "PUT", url+"/new", createPackage(packageName, packageVersion)) 176 - req = AddBasicAuthHeader(req, user.Name) 175 + req = NewRequestWithBody(t, "PUT", url+"/new", createPackage(packageName, packageVersion)). 176 + AddBasicAuth(user.Name) 177 177 resp := MakeRequest(t, req, http.StatusOK) 178 178 179 179 var status cargo_router.StatusResponse ··· 201 201 assert.NoError(t, err) 202 202 assert.EqualValues(t, 4, pb.Size) 203 203 204 - req = NewRequestWithBody(t, "PUT", url+"/new", createPackage(packageName, packageVersion)) 205 - req = AddBasicAuthHeader(req, user.Name) 204 + req = NewRequestWithBody(t, "PUT", url+"/new", createPackage(packageName, packageVersion)). 205 + AddBasicAuth(user.Name) 206 206 MakeRequest(t, req, http.StatusConflict) 207 207 208 208 t.Run("Index", func(t *testing.T) { ··· 288 288 assert.NoError(t, err) 289 289 assert.Len(t, pfs, 1) 290 290 291 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/download", url, neturl.PathEscape(packageName), neturl.PathEscape(pv.Version))) 292 - req = AddBasicAuthHeader(req, user.Name) 291 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/download", url, neturl.PathEscape(packageName), neturl.PathEscape(pv.Version))). 292 + AddBasicAuth(user.Name) 293 293 resp := MakeRequest(t, req, http.StatusOK) 294 294 295 295 assert.Equal(t, "test", resp.Body.String()) ··· 318 318 } 319 319 320 320 for i, c := range cases { 321 - req := NewRequest(t, "GET", fmt.Sprintf("%s?q=%s&page=%d&per_page=%d", url, c.Query, c.Page, c.PerPage)) 322 - req = AddBasicAuthHeader(req, user.Name) 321 + req := NewRequest(t, "GET", fmt.Sprintf("%s?q=%s&page=%d&per_page=%d", url, c.Query, c.Page, c.PerPage)). 322 + AddBasicAuth(user.Name) 323 323 resp := MakeRequest(t, req, http.StatusOK) 324 324 325 325 var result cargo_router.SearchResult ··· 333 333 t.Run("Yank", func(t *testing.T) { 334 334 defer tests.PrintCurrentTest(t)() 335 335 336 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s/yank", url, neturl.PathEscape(packageName), neturl.PathEscape(packageVersion))) 337 - req = AddBasicAuthHeader(req, user.Name) 336 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s/yank", url, neturl.PathEscape(packageName), neturl.PathEscape(packageVersion))). 337 + AddBasicAuth(user.Name) 338 338 resp := MakeRequest(t, req, http.StatusOK) 339 339 340 340 var status cargo_router.StatusResponse ··· 353 353 t.Run("Unyank", func(t *testing.T) { 354 354 defer tests.PrintCurrentTest(t)() 355 355 356 - req := NewRequest(t, "PUT", fmt.Sprintf("%s/%s/%s/unyank", url, neturl.PathEscape(packageName), neturl.PathEscape(packageVersion))) 357 - req = AddBasicAuthHeader(req, user.Name) 356 + req := NewRequest(t, "PUT", fmt.Sprintf("%s/%s/%s/unyank", url, neturl.PathEscape(packageName), neturl.PathEscape(packageVersion))). 357 + AddBasicAuth(user.Name) 358 358 resp := MakeRequest(t, req, http.StatusOK) 359 359 360 360 var status cargo_router.StatusResponse
+42 -41
tests/integration/api_packages_chef_test.go
··· 93 93 defer tests.PrintCurrentTest(t)() 94 94 95 95 req := NewRequest(t, "POST", "/dummy") 96 - u, err := auth.Verify(req, nil, nil, nil) 96 + u, err := auth.Verify(req.Request, nil, nil, nil) 97 97 assert.Nil(t, u) 98 98 assert.NoError(t, err) 99 99 }) ··· 101 101 t.Run("NotExistingUser", func(t *testing.T) { 102 102 defer tests.PrintCurrentTest(t)() 103 103 104 - req := NewRequest(t, "POST", "/dummy") 105 - req.Header.Set("X-Ops-Userid", "not-existing-user") 106 - u, err := auth.Verify(req, nil, nil, nil) 104 + req := NewRequest(t, "POST", "/dummy"). 105 + SetHeader("X-Ops-Userid", "not-existing-user") 106 + u, err := auth.Verify(req.Request, nil, nil, nil) 107 107 assert.Nil(t, u) 108 108 assert.Error(t, err) 109 109 }) ··· 111 111 t.Run("Timestamp", func(t *testing.T) { 112 112 defer tests.PrintCurrentTest(t)() 113 113 114 - req := NewRequest(t, "POST", "/dummy") 115 - req.Header.Set("X-Ops-Userid", user.Name) 116 - u, err := auth.Verify(req, nil, nil, nil) 114 + req := NewRequest(t, "POST", "/dummy"). 115 + SetHeader("X-Ops-Userid", user.Name) 116 + u, err := auth.Verify(req.Request, nil, nil, nil) 117 117 assert.Nil(t, u) 118 118 assert.Error(t, err) 119 119 120 - req.Header.Set("X-Ops-Timestamp", "2023-01-01T00:00:00Z") 121 - u, err = auth.Verify(req, nil, nil, nil) 120 + req.SetHeader("X-Ops-Timestamp", "2023-01-01T00:00:00Z") 121 + u, err = auth.Verify(req.Request, nil, nil, nil) 122 122 assert.Nil(t, u) 123 123 assert.Error(t, err) 124 124 }) ··· 126 126 t.Run("SigningVersion", func(t *testing.T) { 127 127 defer tests.PrintCurrentTest(t)() 128 128 129 - req := NewRequest(t, "POST", "/dummy") 130 - req.Header.Set("X-Ops-Userid", user.Name) 131 - req.Header.Set("X-Ops-Timestamp", time.Now().UTC().Format(time.RFC3339)) 132 - u, err := auth.Verify(req, nil, nil, nil) 129 + req := NewRequest(t, "POST", "/dummy"). 130 + SetHeader("X-Ops-Userid", user.Name). 131 + SetHeader("X-Ops-Timestamp", time.Now().UTC().Format(time.RFC3339)) 132 + u, err := auth.Verify(req.Request, nil, nil, nil) 133 133 assert.Nil(t, u) 134 134 assert.Error(t, err) 135 135 136 - req.Header.Set("X-Ops-Sign", "version=none") 137 - u, err = auth.Verify(req, nil, nil, nil) 136 + req.SetHeader("X-Ops-Sign", "version=none") 137 + u, err = auth.Verify(req.Request, nil, nil, nil) 138 138 assert.Nil(t, u) 139 139 assert.Error(t, err) 140 140 141 - req.Header.Set("X-Ops-Sign", "version=1.4") 142 - u, err = auth.Verify(req, nil, nil, nil) 141 + req.SetHeader("X-Ops-Sign", "version=1.4") 142 + u, err = auth.Verify(req.Request, nil, nil, nil) 143 143 assert.Nil(t, u) 144 144 assert.Error(t, err) 145 145 146 - req.Header.Set("X-Ops-Sign", "version=1.0;algorithm=sha2") 147 - u, err = auth.Verify(req, nil, nil, nil) 146 + req.SetHeader("X-Ops-Sign", "version=1.0;algorithm=sha2") 147 + u, err = auth.Verify(req.Request, nil, nil, nil) 148 148 assert.Nil(t, u) 149 149 assert.Error(t, err) 150 150 151 - req.Header.Set("X-Ops-Sign", "version=1.0;algorithm=sha256") 152 - u, err = auth.Verify(req, nil, nil, nil) 151 + req.SetHeader("X-Ops-Sign", "version=1.0;algorithm=sha256") 152 + u, err = auth.Verify(req.Request, nil, nil, nil) 153 153 assert.Nil(t, u) 154 154 assert.Error(t, err) 155 155 }) ··· 159 159 160 160 ts := time.Now().UTC().Format(time.RFC3339) 161 161 162 - req := NewRequest(t, "POST", "/dummy") 163 - req.Header.Set("X-Ops-Userid", user.Name) 164 - req.Header.Set("X-Ops-Timestamp", ts) 165 - req.Header.Set("X-Ops-Sign", "version=1.0;algorithm=sha1") 166 - req.Header.Set("X-Ops-Content-Hash", "unused") 167 - req.Header.Set("X-Ops-Authorization-4", "dummy") 168 - u, err := auth.Verify(req, nil, nil, nil) 162 + req := NewRequest(t, "POST", "/dummy"). 163 + SetHeader("X-Ops-Userid", user.Name). 164 + SetHeader("X-Ops-Timestamp", ts). 165 + SetHeader("X-Ops-Sign", "version=1.0;algorithm=sha1"). 166 + SetHeader("X-Ops-Content-Hash", "unused"). 167 + SetHeader("X-Ops-Authorization-4", "dummy") 168 + u, err := auth.Verify(req.Request, nil, nil, nil) 169 169 assert.Nil(t, u) 170 170 assert.Error(t, err) 171 171 172 - signRequest := func(t *testing.T, req *http.Request, version string) { 172 + signRequest := func(t *testing.T, rw *RequestWrapper, version string) { 173 + req := rw.Request 173 174 username := req.Header.Get("X-Ops-Userid") 174 175 if version != "1.0" && version != "1.3" { 175 176 sum := sha1.Sum([]byte(username)) ··· 255 256 defer tests.PrintCurrentTest(t)() 256 257 257 258 signRequest(t, req, v) 258 - u, err = auth.Verify(req, nil, nil, nil) 259 + u, err = auth.Verify(req.Request, nil, nil, nil) 259 260 assert.NotNil(t, u) 260 261 assert.NoError(t, err) 261 262 }) ··· 291 292 zw.Close() 292 293 mpw.Close() 293 294 294 - req := NewRequestWithBody(t, "POST", root+"/cookbooks", &body) 295 - req.Header.Add("Content-Type", mpw.FormDataContentType()) 296 - AddBasicAuthHeader(req, user.Name) 295 + req := NewRequestWithBody(t, "POST", root+"/cookbooks", &body). 296 + SetHeader("Content-Type", mpw.FormDataContentType()). 297 + AddBasicAuth(user.Name) 297 298 MakeRequest(t, req, expectedStatus) 298 299 } 299 300 ··· 394 395 } 395 396 396 397 for i, c := range cases { 397 - req := NewRequest(t, "GET", fmt.Sprintf("%s/search?q=%s&start=%d&items=%d", root, c.Query, c.Start, c.Items)) 398 - req = AddBasicAuthHeader(req, user.Name) 398 + req := NewRequest(t, "GET", fmt.Sprintf("%s/search?q=%s&start=%d&items=%d", root, c.Query, c.Start, c.Items)). 399 + AddBasicAuth(user.Name) 399 400 resp := MakeRequest(t, req, http.StatusOK) 400 401 401 402 var result Result ··· 445 446 } 446 447 447 448 for i, c := range cases { 448 - req := NewRequest(t, "GET", fmt.Sprintf("%s/cookbooks?start=%d&items=%d&sort=%s", root, c.Start, c.Items, c.Sort)) 449 - req = AddBasicAuthHeader(req, user.Name) 449 + req := NewRequest(t, "GET", fmt.Sprintf("%s/cookbooks?start=%d&items=%d&sort=%s", root, c.Start, c.Items, c.Sort)). 450 + AddBasicAuth(user.Name) 450 451 resp := MakeRequest(t, req, http.StatusOK) 451 452 452 453 var result Result ··· 533 534 req := NewRequest(t, "DELETE", fmt.Sprintf("%s/cookbooks/%s/versions/%s", root, packageName, "1.0.2")) 534 535 MakeRequest(t, req, http.StatusUnauthorized) 535 536 536 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/cookbooks/%s/versions/%s", root, packageName, "1.0.2")) 537 - AddBasicAuthHeader(req, user.Name) 537 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/cookbooks/%s/versions/%s", root, packageName, "1.0.2")). 538 + AddBasicAuth(user.Name) 538 539 MakeRequest(t, req, http.StatusOK) 539 540 540 541 pv, err := packages.GetVersionByNameAndVersion(db.DefaultContext, user.ID, packages.TypeChef, packageName, "1.0.2") ··· 548 549 req := NewRequest(t, "DELETE", fmt.Sprintf("%s/cookbooks/%s", root, packageName)) 549 550 MakeRequest(t, req, http.StatusUnauthorized) 550 551 551 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/cookbooks/%s", root, packageName)) 552 - AddBasicAuthHeader(req, user.Name) 552 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/cookbooks/%s", root, packageName)). 553 + AddBasicAuth(user.Name) 553 554 MakeRequest(t, req, http.StatusOK) 554 555 555 556 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeChef)
+16 -16
tests/integration/api_packages_composer_test.go
··· 59 59 t.Run("ServiceIndex", func(t *testing.T) { 60 60 defer tests.PrintCurrentTest(t)() 61 61 62 - req := NewRequest(t, "GET", fmt.Sprintf("%s/packages.json", url)) 63 - req = AddBasicAuthHeader(req, user.Name) 62 + req := NewRequest(t, "GET", fmt.Sprintf("%s/packages.json", url)). 63 + AddBasicAuth(user.Name) 64 64 resp := MakeRequest(t, req, http.StatusOK) 65 65 66 66 var result composer.ServiceIndexResponse ··· 75 75 t.Run("MissingVersion", func(t *testing.T) { 76 76 defer tests.PrintCurrentTest(t)() 77 77 78 - req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)) 79 - req = AddBasicAuthHeader(req, user.Name) 78 + req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)). 79 + AddBasicAuth(user.Name) 80 80 MakeRequest(t, req, http.StatusBadRequest) 81 81 }) 82 82 ··· 85 85 86 86 uploadURL := url + "?version=" + packageVersion 87 87 88 - req := NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)) 89 - req = AddBasicAuthHeader(req, user.Name) 88 + req := NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)). 89 + AddBasicAuth(user.Name) 90 90 MakeRequest(t, req, http.StatusCreated) 91 91 92 92 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeComposer) ··· 110 110 assert.NoError(t, err) 111 111 assert.Equal(t, int64(len(content)), pb.Size) 112 112 113 - req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)) 114 - req = AddBasicAuthHeader(req, user.Name) 113 + req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)). 114 + AddBasicAuth(user.Name) 115 115 MakeRequest(t, req, http.StatusConflict) 116 116 }) 117 117 }) ··· 128 128 assert.NoError(t, err) 129 129 assert.Len(t, pfs, 1) 130 130 131 - req := NewRequest(t, "GET", fmt.Sprintf("%s/files/%s/%s/%s", url, neturl.PathEscape(packageName), neturl.PathEscape(pvs[0].LowerVersion), neturl.PathEscape(pfs[0].LowerName))) 132 - req = AddBasicAuthHeader(req, user.Name) 131 + req := NewRequest(t, "GET", fmt.Sprintf("%s/files/%s/%s/%s", url, neturl.PathEscape(packageName), neturl.PathEscape(pvs[0].LowerVersion), neturl.PathEscape(pfs[0].LowerName))). 132 + AddBasicAuth(user.Name) 133 133 resp := MakeRequest(t, req, http.StatusOK) 134 134 135 135 assert.Equal(t, content, resp.Body.Bytes()) ··· 162 162 } 163 163 164 164 for i, c := range cases { 165 - req := NewRequest(t, "GET", fmt.Sprintf("%s/search.json?q=%s&type=%s&page=%d&per_page=%d", url, c.Query, c.Type, c.Page, c.PerPage)) 166 - req = AddBasicAuthHeader(req, user.Name) 165 + req := NewRequest(t, "GET", fmt.Sprintf("%s/search.json?q=%s&type=%s&page=%d&per_page=%d", url, c.Query, c.Type, c.Page, c.PerPage)). 166 + AddBasicAuth(user.Name) 167 167 resp := MakeRequest(t, req, http.StatusOK) 168 168 169 169 var result composer.SearchResultResponse ··· 177 177 t.Run("EnumeratePackages", func(t *testing.T) { 178 178 defer tests.PrintCurrentTest(t)() 179 179 180 - req := NewRequest(t, "GET", url+"/list.json") 181 - req = AddBasicAuthHeader(req, user.Name) 180 + req := NewRequest(t, "GET", url+"/list.json"). 181 + AddBasicAuth(user.Name) 182 182 resp := MakeRequest(t, req, http.StatusOK) 183 183 184 184 var result map[string][]string ··· 193 193 t.Run("PackageMetadata", func(t *testing.T) { 194 194 defer tests.PrintCurrentTest(t)() 195 195 196 - req := NewRequest(t, "GET", fmt.Sprintf("%s/p2/%s/%s.json", url, vendorName, projectName)) 197 - req = AddBasicAuthHeader(req, user.Name) 196 + req := NewRequest(t, "GET", fmt.Sprintf("%s/p2/%s/%s.json", url, vendorName, projectName)). 197 + AddBasicAuth(user.Name) 198 198 resp := MakeRequest(t, req, http.StatusOK) 199 199 200 200 var result composer.PackageMetadataResponse
+51 -61
tests/integration/api_packages_conan_test.go
··· 62 62 CC=gcc-10` 63 63 ) 64 64 65 - func addTokenAuthHeader(request *http.Request, token string) *http.Request { 66 - request.Header.Set("Authorization", token) 67 - return request 68 - } 69 - 70 65 func buildConanfileContent(name, version string) string { 71 66 return `from conans import ConanFile, CMake, tools 72 67 ··· 90 85 91 86 recipeURL := fmt.Sprintf("%s/v1/conans/%s/%s/%s/%s", baseURL, name, version, user, channel) 92 87 93 - req := NewRequest(t, "GET", recipeURL) 94 - req = addTokenAuthHeader(req, token) 88 + req := NewRequest(t, "GET", recipeURL). 89 + AddTokenAuth(token) 95 90 MakeRequest(t, req, http.StatusNotFound) 96 91 97 - req = NewRequest(t, "GET", fmt.Sprintf("%s/digest", recipeURL)) 98 - req = addTokenAuthHeader(req, token) 92 + req = NewRequest(t, "GET", fmt.Sprintf("%s/digest", recipeURL)). 93 + AddTokenAuth(token) 99 94 MakeRequest(t, req, http.StatusNotFound) 100 95 101 - req = NewRequest(t, "GET", fmt.Sprintf("%s/download_urls", recipeURL)) 102 - req = addTokenAuthHeader(req, token) 96 + req = NewRequest(t, "GET", fmt.Sprintf("%s/download_urls", recipeURL)). 97 + AddTokenAuth(token) 103 98 MakeRequest(t, req, http.StatusNotFound) 104 99 105 100 req = NewRequest(t, "POST", fmt.Sprintf("%s/upload_urls", recipeURL)) ··· 108 103 req = NewRequestWithJSON(t, "POST", fmt.Sprintf("%s/upload_urls", recipeURL), map[string]int64{ 109 104 conanfileName: int64(len(contentConanfile)), 110 105 "removed.txt": 0, 111 - }) 112 - req = addTokenAuthHeader(req, token) 106 + }).AddTokenAuth(token) 113 107 resp := MakeRequest(t, req, http.StatusOK) 114 108 115 109 uploadURLs := make(map[string]string) ··· 121 115 uploadURL := uploadURLs[conanfileName] 122 116 assert.NotEmpty(t, uploadURL) 123 117 124 - req = NewRequestWithBody(t, "PUT", uploadURL, strings.NewReader(contentConanfile)) 125 - req = addTokenAuthHeader(req, token) 118 + req = NewRequestWithBody(t, "PUT", uploadURL, strings.NewReader(contentConanfile)). 119 + AddTokenAuth(token) 126 120 MakeRequest(t, req, http.StatusCreated) 127 121 128 122 packageURL := fmt.Sprintf("%s/packages/%s", recipeURL, conanPackageReference) 129 123 130 - req = NewRequest(t, "GET", packageURL) 131 - req = addTokenAuthHeader(req, token) 124 + req = NewRequest(t, "GET", packageURL). 125 + AddTokenAuth(token) 132 126 MakeRequest(t, req, http.StatusNotFound) 133 127 134 - req = NewRequest(t, "GET", fmt.Sprintf("%s/digest", packageURL)) 135 - req = addTokenAuthHeader(req, token) 128 + req = NewRequest(t, "GET", fmt.Sprintf("%s/digest", packageURL)). 129 + AddTokenAuth(token) 136 130 MakeRequest(t, req, http.StatusNotFound) 137 131 138 - req = NewRequest(t, "GET", fmt.Sprintf("%s/download_urls", packageURL)) 139 - req = addTokenAuthHeader(req, token) 132 + req = NewRequest(t, "GET", fmt.Sprintf("%s/download_urls", packageURL)). 133 + AddTokenAuth(token) 140 134 MakeRequest(t, req, http.StatusNotFound) 141 135 142 136 req = NewRequest(t, "POST", fmt.Sprintf("%s/upload_urls", packageURL)) ··· 145 139 req = NewRequestWithJSON(t, "POST", fmt.Sprintf("%s/upload_urls", packageURL), map[string]int64{ 146 140 conaninfoName: int64(len(contentConaninfo)), 147 141 "removed.txt": 0, 148 - }) 149 - req = addTokenAuthHeader(req, token) 142 + }).AddTokenAuth(token) 150 143 resp = MakeRequest(t, req, http.StatusOK) 151 144 152 145 uploadURLs = make(map[string]string) ··· 158 151 uploadURL = uploadURLs[conaninfoName] 159 152 assert.NotEmpty(t, uploadURL) 160 153 161 - req = NewRequestWithBody(t, "PUT", uploadURL, strings.NewReader(contentConaninfo)) 162 - req = addTokenAuthHeader(req, token) 154 + req = NewRequestWithBody(t, "PUT", uploadURL, strings.NewReader(contentConaninfo)). 155 + AddTokenAuth(token) 163 156 MakeRequest(t, req, http.StatusCreated) 164 157 } 165 158 ··· 168 161 169 162 recipeURL := fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s", baseURL, name, version, user, channel, recipeRevision) 170 163 171 - req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/files/%s", recipeURL, conanfileName), strings.NewReader(contentConanfile)) 172 - req = addTokenAuthHeader(req, token) 164 + req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/files/%s", recipeURL, conanfileName), strings.NewReader(contentConanfile)). 165 + AddTokenAuth(token) 173 166 MakeRequest(t, req, http.StatusCreated) 174 167 175 - req = NewRequest(t, "GET", fmt.Sprintf("%s/files", recipeURL)) 176 - req = addTokenAuthHeader(req, token) 168 + req = NewRequest(t, "GET", fmt.Sprintf("%s/files", recipeURL)). 169 + AddTokenAuth(token) 177 170 resp := MakeRequest(t, req, http.StatusOK) 178 171 179 172 var list *struct { ··· 185 178 186 179 packageURL := fmt.Sprintf("%s/packages/%s/revisions/%s", recipeURL, conanPackageReference, packageRevision) 187 180 188 - req = NewRequest(t, "GET", fmt.Sprintf("%s/files", packageURL)) 189 - req = addTokenAuthHeader(req, token) 181 + req = NewRequest(t, "GET", fmt.Sprintf("%s/files", packageURL)). 182 + AddTokenAuth(token) 190 183 MakeRequest(t, req, http.StatusNotFound) 191 184 192 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/files/%s", packageURL, conaninfoName), strings.NewReader(contentConaninfo)) 193 - req = addTokenAuthHeader(req, token) 185 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/files/%s", packageURL, conaninfoName), strings.NewReader(contentConaninfo)). 186 + AddTokenAuth(token) 194 187 MakeRequest(t, req, http.StatusCreated) 195 188 196 - req = NewRequest(t, "GET", fmt.Sprintf("%s/files", packageURL)) 197 - req = addTokenAuthHeader(req, token) 189 + req = NewRequest(t, "GET", fmt.Sprintf("%s/files", packageURL)). 190 + AddTokenAuth(token) 198 191 resp = MakeRequest(t, req, http.StatusOK) 199 192 200 193 list = nil ··· 235 228 t.Run("Authenticate", func(t *testing.T) { 236 229 defer tests.PrintCurrentTest(t)() 237 230 238 - req := NewRequest(t, "GET", fmt.Sprintf("%s/v1/users/authenticate", url)) 239 - req = AddBasicAuthHeader(req, user.Name) 231 + req := NewRequest(t, "GET", fmt.Sprintf("%s/v1/users/authenticate", url)). 232 + AddBasicAuth(user.Name) 240 233 resp := MakeRequest(t, req, http.StatusOK) 241 234 242 - body := resp.Body.String() 243 - assert.NotEmpty(t, body) 244 - 245 - token = fmt.Sprintf("Bearer %s", body) 235 + token = resp.Body.String() 236 + assert.NotEmpty(t, token) 246 237 }) 247 238 248 239 t.Run("CheckCredentials", func(t *testing.T) { 249 240 defer tests.PrintCurrentTest(t)() 250 241 251 - req := NewRequest(t, "GET", fmt.Sprintf("%s/v1/users/check_credentials", url)) 252 - req = addTokenAuthHeader(req, token) 242 + req := NewRequest(t, "GET", fmt.Sprintf("%s/v1/users/check_credentials", url)). 243 + AddTokenAuth(token) 253 244 MakeRequest(t, req, http.StatusOK) 254 245 }) 255 246 ··· 440 431 441 432 req := NewRequestWithJSON(t, "POST", fmt.Sprintf("%s/v1/conans/%s/%s/%s/%s/packages/delete", url, name, version1, user1, c.Channel), map[string][]string{ 442 433 "package_ids": c.References, 443 - }) 444 - req = addTokenAuthHeader(req, token) 434 + }).AddTokenAuth(token) 445 435 MakeRequest(t, req, http.StatusOK) 446 436 447 437 references, err = conan_model.GetPackageReferences(db.DefaultContext, user.ID, rref) ··· 466 456 assert.NoError(t, err) 467 457 assert.NotEmpty(t, revisions) 468 458 469 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/v1/conans/%s/%s/%s/%s", url, name, version1, user1, c.Channel)) 470 - req = addTokenAuthHeader(req, token) 459 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/v1/conans/%s/%s/%s/%s", url, name, version1, user1, c.Channel)). 460 + AddTokenAuth(token) 471 461 MakeRequest(t, req, http.StatusOK) 472 462 473 463 revisions, err = conan_model.GetRecipeRevisions(db.DefaultContext, user.ID, rref) ··· 493 483 t.Run("Authenticate", func(t *testing.T) { 494 484 defer tests.PrintCurrentTest(t)() 495 485 496 - req := NewRequest(t, "GET", fmt.Sprintf("%s/v2/users/authenticate", url)) 497 - req = AddBasicAuthHeader(req, user.Name) 486 + req := NewRequest(t, "GET", fmt.Sprintf("%s/v2/users/authenticate", url)). 487 + AddBasicAuth(user.Name) 498 488 resp := MakeRequest(t, req, http.StatusOK) 499 489 500 490 body := resp.Body.String() ··· 506 496 t.Run("CheckCredentials", func(t *testing.T) { 507 497 defer tests.PrintCurrentTest(t)() 508 498 509 - req := NewRequest(t, "GET", fmt.Sprintf("%s/v2/users/check_credentials", url)) 510 - req = addTokenAuthHeader(req, token) 499 + req := NewRequest(t, "GET", fmt.Sprintf("%s/v2/users/check_credentials", url)). 500 + AddTokenAuth(token) 511 501 MakeRequest(t, req, http.StatusOK) 512 502 }) 513 503 ··· 672 662 673 663 checkPackageRevisionCount(2) 674 664 675 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/packages/%s/revisions/%s", url, name, version1, user1, channel1, revision1, conanPackageReference, revision1)) 676 - req = addTokenAuthHeader(req, token) 665 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/packages/%s/revisions/%s", url, name, version1, user1, channel1, revision1, conanPackageReference, revision1)). 666 + AddTokenAuth(token) 677 667 MakeRequest(t, req, http.StatusOK) 678 668 679 669 checkPackageRevisionCount(1) 680 670 681 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/packages/%s", url, name, version1, user1, channel1, revision1, conanPackageReference)) 682 - req = addTokenAuthHeader(req, token) 671 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/packages/%s", url, name, version1, user1, channel1, revision1, conanPackageReference)). 672 + AddTokenAuth(token) 683 673 MakeRequest(t, req, http.StatusOK) 684 674 685 675 checkPackageRevisionCount(0) ··· 688 678 689 679 checkPackageReferenceCount(1) 690 680 691 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/packages", url, name, version1, user1, channel1, revision2)) 692 - req = addTokenAuthHeader(req, token) 681 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s/packages", url, name, version1, user1, channel1, revision2)). 682 + AddTokenAuth(token) 693 683 MakeRequest(t, req, http.StatusOK) 694 684 695 685 checkPackageReferenceCount(0) ··· 708 698 709 699 checkRecipeRevisionCount(2) 710 700 711 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s", url, name, version1, user1, channel1, revision1)) 712 - req = addTokenAuthHeader(req, token) 701 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s/revisions/%s", url, name, version1, user1, channel1, revision1)). 702 + AddTokenAuth(token) 713 703 MakeRequest(t, req, http.StatusOK) 714 704 715 705 checkRecipeRevisionCount(1) 716 706 717 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s", url, name, version1, user1, channel1)) 718 - req = addTokenAuthHeader(req, token) 707 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/v2/conans/%s/%s/%s/%s", url, name, version1, user1, channel1)). 708 + AddTokenAuth(token) 719 709 MakeRequest(t, req, http.StatusOK) 720 710 721 711 checkRecipeRevisionCount(0)
+8 -8
tests/integration/api_packages_conda_test.go
··· 66 66 req := NewRequestWithBody(t, "PUT", root+"/"+filename, bytes.NewReader(buf.Bytes())) 67 67 MakeRequest(t, req, http.StatusUnauthorized) 68 68 69 - req = NewRequestWithBody(t, "PUT", root+"/"+filename, bytes.NewReader(buf.Bytes())) 70 - AddBasicAuthHeader(req, user.Name) 69 + req = NewRequestWithBody(t, "PUT", root+"/"+filename, bytes.NewReader(buf.Bytes())). 70 + AddBasicAuth(user.Name) 71 71 MakeRequest(t, req, http.StatusCreated) 72 72 73 - req = NewRequestWithBody(t, "PUT", root+"/"+filename, bytes.NewReader(buf.Bytes())) 74 - AddBasicAuthHeader(req, user.Name) 73 + req = NewRequestWithBody(t, "PUT", root+"/"+filename, bytes.NewReader(buf.Bytes())). 74 + AddBasicAuth(user.Name) 75 75 MakeRequest(t, req, http.StatusConflict) 76 76 77 77 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeConda) ··· 107 107 req := NewRequestWithBody(t, "PUT", root+"/"+channel+"/"+filename, bytes.NewReader(buf.Bytes())) 108 108 MakeRequest(t, req, http.StatusUnauthorized) 109 109 110 - req = NewRequestWithBody(t, "PUT", root+"/"+channel+"/"+filename, bytes.NewReader(buf.Bytes())) 111 - AddBasicAuthHeader(req, user.Name) 110 + req = NewRequestWithBody(t, "PUT", root+"/"+channel+"/"+filename, bytes.NewReader(buf.Bytes())). 111 + AddBasicAuth(user.Name) 112 112 MakeRequest(t, req, http.StatusCreated) 113 113 114 - req = NewRequestWithBody(t, "PUT", root+"/"+channel+"/"+filename, bytes.NewReader(buf.Bytes())) 115 - AddBasicAuthHeader(req, user.Name) 114 + req = NewRequestWithBody(t, "PUT", root+"/"+channel+"/"+filename, bytes.NewReader(buf.Bytes())). 115 + AddBasicAuth(user.Name) 116 116 MakeRequest(t, req, http.StatusConflict) 117 117 118 118 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeConda)
+105 -105
tests/integration/api_packages_container_test.go
··· 103 103 104 104 anonymousToken = fmt.Sprintf("Bearer %s", tokenResponse.Token) 105 105 106 - req = NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL)) 107 - addTokenAuthHeader(req, anonymousToken) 106 + req = NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL)). 107 + AddTokenAuth(anonymousToken) 108 108 MakeRequest(t, req, http.StatusOK) 109 109 }) 110 110 ··· 116 116 117 117 assert.ElementsMatch(t, authenticate, resp.Header().Values("WWW-Authenticate")) 118 118 119 - req = NewRequest(t, "GET", fmt.Sprintf("%sv2/token", setting.AppURL)) 120 - req = AddBasicAuthHeader(req, user.Name) 119 + req = NewRequest(t, "GET", fmt.Sprintf("%sv2/token", setting.AppURL)). 120 + AddBasicAuth(user.Name) 121 121 resp = MakeRequest(t, req, http.StatusOK) 122 122 123 123 tokenResponse := &TokenResponse{} ··· 127 127 128 128 userToken = fmt.Sprintf("Bearer %s", tokenResponse.Token) 129 129 130 - req = NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL)) 131 - addTokenAuthHeader(req, userToken) 130 + req = NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL)). 131 + AddTokenAuth(userToken) 132 132 MakeRequest(t, req, http.StatusOK) 133 133 }) 134 134 }) ··· 136 136 t.Run("DetermineSupport", func(t *testing.T) { 137 137 defer tests.PrintCurrentTest(t)() 138 138 139 - req := NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL)) 140 - addTokenAuthHeader(req, userToken) 139 + req := NewRequest(t, "GET", fmt.Sprintf("%sv2", setting.AppURL)). 140 + AddTokenAuth(userToken) 141 141 resp := MakeRequest(t, req, http.StatusOK) 142 142 assert.Equal(t, "registry/2.0", resp.Header().Get("Docker-Distribution-Api-Version")) 143 143 }) ··· 149 149 t.Run("UploadBlob/Monolithic", func(t *testing.T) { 150 150 defer tests.PrintCurrentTest(t)() 151 151 152 - req := NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads", url)) 153 - addTokenAuthHeader(req, anonymousToken) 152 + req := NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads", url)). 153 + AddTokenAuth(anonymousToken) 154 154 MakeRequest(t, req, http.StatusUnauthorized) 155 155 156 - req = NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, unknownDigest), bytes.NewReader(blobContent)) 157 - addTokenAuthHeader(req, userToken) 156 + req = NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, unknownDigest), bytes.NewReader(blobContent)). 157 + AddTokenAuth(userToken) 158 158 MakeRequest(t, req, http.StatusBadRequest) 159 159 160 - req = NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, blobDigest), bytes.NewReader(blobContent)) 161 - addTokenAuthHeader(req, userToken) 160 + req = NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, blobDigest), bytes.NewReader(blobContent)). 161 + AddTokenAuth(userToken) 162 162 resp := MakeRequest(t, req, http.StatusCreated) 163 163 164 164 assert.Equal(t, fmt.Sprintf("/v2/%s/%s/blobs/%s", user.Name, image, blobDigest), resp.Header().Get("Location")) ··· 179 179 t.Run("UploadBlob/Chunked", func(t *testing.T) { 180 180 defer tests.PrintCurrentTest(t)() 181 181 182 - req := NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads", url)) 183 - addTokenAuthHeader(req, userToken) 182 + req := NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads", url)). 183 + AddTokenAuth(userToken) 184 184 resp := MakeRequest(t, req, http.StatusAccepted) 185 185 186 186 uuid := resp.Header().Get("Docker-Upload-Uuid") ··· 193 193 uploadURL := resp.Header().Get("Location") 194 194 assert.NotEmpty(t, uploadURL) 195 195 196 - req = NewRequestWithBody(t, "PATCH", setting.AppURL+uploadURL[1:]+"000", bytes.NewReader(blobContent)) 197 - addTokenAuthHeader(req, userToken) 196 + req = NewRequestWithBody(t, "PATCH", setting.AppURL+uploadURL[1:]+"000", bytes.NewReader(blobContent)). 197 + AddTokenAuth(userToken) 198 198 MakeRequest(t, req, http.StatusNotFound) 199 199 200 - req = NewRequestWithBody(t, "PATCH", setting.AppURL+uploadURL[1:], bytes.NewReader(blobContent)) 201 - addTokenAuthHeader(req, userToken) 202 - 203 - req.Header.Set("Content-Range", "1-10") 200 + req = NewRequestWithBody(t, "PATCH", setting.AppURL+uploadURL[1:], bytes.NewReader(blobContent)). 201 + AddTokenAuth(userToken). 202 + SetHeader("Content-Range", "1-10") 204 203 MakeRequest(t, req, http.StatusRequestedRangeNotSatisfiable) 205 204 206 205 contentRange := fmt.Sprintf("0-%d", len(blobContent)-1) 207 - req.Header.Set("Content-Range", contentRange) 206 + req.SetHeader("Content-Range", contentRange) 208 207 resp = MakeRequest(t, req, http.StatusAccepted) 209 208 210 209 assert.Equal(t, uuid, resp.Header().Get("Docker-Upload-Uuid")) ··· 212 211 213 212 uploadURL = resp.Header().Get("Location") 214 213 215 - req = NewRequest(t, "GET", setting.AppURL+uploadURL[1:]) 216 - addTokenAuthHeader(req, userToken) 214 + req = NewRequest(t, "GET", setting.AppURL+uploadURL[1:]). 215 + AddTokenAuth(userToken) 217 216 resp = MakeRequest(t, req, http.StatusNoContent) 218 217 219 218 assert.Equal(t, uuid, resp.Header().Get("Docker-Upload-Uuid")) ··· 223 222 assert.NoError(t, err) 224 223 assert.EqualValues(t, len(blobContent), pbu.BytesReceived) 225 224 226 - req = NewRequest(t, "PUT", fmt.Sprintf("%s?digest=%s", setting.AppURL+uploadURL[1:], blobDigest)) 227 - addTokenAuthHeader(req, userToken) 225 + req = NewRequest(t, "PUT", fmt.Sprintf("%s?digest=%s", setting.AppURL+uploadURL[1:], blobDigest)). 226 + AddTokenAuth(userToken) 228 227 resp = MakeRequest(t, req, http.StatusCreated) 229 228 230 229 assert.Equal(t, fmt.Sprintf("/v2/%s/%s/blobs/%s", user.Name, image, blobDigest), resp.Header().Get("Location")) ··· 233 232 t.Run("Cancel", func(t *testing.T) { 234 233 defer tests.PrintCurrentTest(t)() 235 234 236 - req := NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads", url)) 237 - addTokenAuthHeader(req, userToken) 235 + req := NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads", url)). 236 + AddTokenAuth(userToken) 238 237 resp := MakeRequest(t, req, http.StatusAccepted) 239 238 240 239 uuid := resp.Header().Get("Docker-Upload-Uuid") ··· 243 242 uploadURL := resp.Header().Get("Location") 244 243 assert.NotEmpty(t, uploadURL) 245 244 246 - req = NewRequest(t, "GET", setting.AppURL+uploadURL[1:]) 247 - addTokenAuthHeader(req, userToken) 245 + req = NewRequest(t, "GET", setting.AppURL+uploadURL[1:]). 246 + AddTokenAuth(userToken) 248 247 resp = MakeRequest(t, req, http.StatusNoContent) 249 248 250 249 assert.Equal(t, uuid, resp.Header().Get("Docker-Upload-Uuid")) 251 250 assert.Equal(t, "0-0", resp.Header().Get("Range")) 252 251 253 - req = NewRequest(t, "DELETE", setting.AppURL+uploadURL[1:]) 254 - addTokenAuthHeader(req, userToken) 252 + req = NewRequest(t, "DELETE", setting.AppURL+uploadURL[1:]). 253 + AddTokenAuth(userToken) 255 254 MakeRequest(t, req, http.StatusNoContent) 256 255 257 - req = NewRequest(t, "GET", setting.AppURL+uploadURL[1:]) 258 - addTokenAuthHeader(req, userToken) 256 + req = NewRequest(t, "GET", setting.AppURL+uploadURL[1:]). 257 + AddTokenAuth(userToken) 259 258 MakeRequest(t, req, http.StatusNotFound) 260 259 }) 261 260 }) ··· 264 263 defer tests.PrintCurrentTest(t)() 265 264 266 265 privateBlobDigest := "sha256:6ccce4863b70f258d691f59609d31b4502e1ba5199942d3bc5d35d17a4ce771d" 267 - req := NewRequestWithBody(t, "POST", fmt.Sprintf("%sv2/%s/%s/blobs/uploads?digest=%s", setting.AppURL, privateUser.Name, image, privateBlobDigest), strings.NewReader("gitea")) 268 - req = AddBasicAuthHeader(req, privateUser.Name) 266 + req := NewRequestWithBody(t, "POST", fmt.Sprintf("%sv2/%s/%s/blobs/uploads?digest=%s", setting.AppURL, privateUser.Name, image, privateBlobDigest), strings.NewReader("gitea")). 267 + AddBasicAuth(privateUser.Name) 269 268 MakeRequest(t, req, http.StatusCreated) 270 269 271 - req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s", url, unknownDigest)) 272 - addTokenAuthHeader(req, userToken) 270 + req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s", url, unknownDigest)). 271 + AddTokenAuth(userToken) 273 272 MakeRequest(t, req, http.StatusAccepted) 274 273 275 - req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s", url, privateBlobDigest)) 276 - addTokenAuthHeader(req, userToken) 274 + req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s", url, privateBlobDigest)). 275 + AddTokenAuth(userToken) 277 276 MakeRequest(t, req, http.StatusAccepted) 278 277 279 - req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s", url, blobDigest)) 280 - addTokenAuthHeader(req, userToken) 278 + req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s", url, blobDigest)). 279 + AddTokenAuth(userToken) 281 280 resp := MakeRequest(t, req, http.StatusCreated) 282 281 283 282 assert.Equal(t, fmt.Sprintf("/v2/%s/%s/blobs/%s", user.Name, image, blobDigest), resp.Header().Get("Location")) 284 283 assert.Equal(t, blobDigest, resp.Header().Get("Docker-Content-Digest")) 285 284 286 - req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s&from=%s", url, unknownDigest, "unknown/image")) 287 - addTokenAuthHeader(req, userToken) 285 + req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s&from=%s", url, unknownDigest, "unknown/image")). 286 + AddTokenAuth(userToken) 288 287 MakeRequest(t, req, http.StatusAccepted) 289 288 290 - req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s&from=%s/%s", url, blobDigest, user.Name, image)) 291 - addTokenAuthHeader(req, userToken) 289 + req = NewRequest(t, "POST", fmt.Sprintf("%s/blobs/uploads?mount=%s&from=%s/%s", url, blobDigest, user.Name, image)). 290 + AddTokenAuth(userToken) 292 291 resp = MakeRequest(t, req, http.StatusCreated) 293 292 294 293 assert.Equal(t, fmt.Sprintf("/v2/%s/%s/blobs/%s", user.Name, image, blobDigest), resp.Header().Get("Location")) ··· 300 299 t.Run("UploadManifest", func(t *testing.T) { 301 300 defer tests.PrintCurrentTest(t)() 302 301 303 - req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, configDigest), strings.NewReader(configContent)) 304 - addTokenAuthHeader(req, userToken) 302 + req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, configDigest), strings.NewReader(configContent)). 303 + AddTokenAuth(userToken) 305 304 MakeRequest(t, req, http.StatusCreated) 306 305 307 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent)) 308 - addTokenAuthHeader(req, anonymousToken) 309 - req.Header.Set("Content-Type", "application/vnd.docker.distribution.manifest.v2+json") 306 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent)). 307 + AddTokenAuth(anonymousToken). 308 + SetHeader("Content-Type", "application/vnd.docker.distribution.manifest.v2+json") 310 309 MakeRequest(t, req, http.StatusUnauthorized) 311 310 312 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent)) 313 - addTokenAuthHeader(req, userToken) 314 - req.Header.Set("Content-Type", "application/vnd.docker.distribution.manifest.v2+json") 311 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent)). 312 + AddTokenAuth(userToken). 313 + SetHeader("Content-Type", "application/vnd.docker.distribution.manifest.v2+json") 315 314 resp := MakeRequest(t, req, http.StatusCreated) 316 315 317 316 assert.Equal(t, manifestDigest, resp.Header().Get("Docker-Content-Digest")) ··· 353 352 } 354 353 } 355 354 356 - req = NewRequest(t, "GET", fmt.Sprintf("%s/manifests/%s", url, tag)) 357 - addTokenAuthHeader(req, userToken) 355 + req = NewRequest(t, "GET", fmt.Sprintf("%s/manifests/%s", url, tag)). 356 + AddTokenAuth(userToken) 358 357 MakeRequest(t, req, http.StatusOK) 359 358 360 359 pv, err = packages_model.GetVersionByNameAndVersion(db.DefaultContext, user.ID, packages_model.TypeContainer, image, tag) ··· 362 361 assert.EqualValues(t, 1, pv.DownloadCount) 363 362 364 363 // Overwrite existing tag should keep the download count 365 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent)) 366 - addTokenAuthHeader(req, userToken) 367 - req.Header.Set("Content-Type", oci.MediaTypeImageManifest) 364 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, tag), strings.NewReader(manifestContent)). 365 + AddTokenAuth(userToken). 366 + SetHeader("Content-Type", oci.MediaTypeImageManifest) 368 367 MakeRequest(t, req, http.StatusCreated) 369 368 370 369 pv, err = packages_model.GetVersionByNameAndVersion(db.DefaultContext, user.ID, packages_model.TypeContainer, image, tag) ··· 375 374 t.Run("HeadManifest", func(t *testing.T) { 376 375 defer tests.PrintCurrentTest(t)() 377 376 378 - req := NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/unknown-tag", url)) 379 - addTokenAuthHeader(req, userToken) 377 + req := NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/unknown-tag", url)). 378 + AddTokenAuth(userToken) 380 379 MakeRequest(t, req, http.StatusNotFound) 381 380 382 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, tag)) 383 - addTokenAuthHeader(req, userToken) 381 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, tag)). 382 + AddTokenAuth(userToken) 384 383 resp := MakeRequest(t, req, http.StatusOK) 385 384 386 385 assert.Equal(t, fmt.Sprintf("%d", len(manifestContent)), resp.Header().Get("Content-Length")) ··· 390 389 t.Run("GetManifest", func(t *testing.T) { 391 390 defer tests.PrintCurrentTest(t)() 392 391 393 - req := NewRequest(t, "GET", fmt.Sprintf("%s/manifests/unknown-tag", url)) 394 - addTokenAuthHeader(req, userToken) 392 + req := NewRequest(t, "GET", fmt.Sprintf("%s/manifests/unknown-tag", url)). 393 + AddTokenAuth(userToken) 395 394 MakeRequest(t, req, http.StatusNotFound) 396 395 397 - req = NewRequest(t, "GET", fmt.Sprintf("%s/manifests/%s", url, tag)) 398 - addTokenAuthHeader(req, userToken) 396 + req = NewRequest(t, "GET", fmt.Sprintf("%s/manifests/%s", url, tag)). 397 + AddTokenAuth(userToken) 399 398 resp := MakeRequest(t, req, http.StatusOK) 400 399 401 400 assert.Equal(t, fmt.Sprintf("%d", len(manifestContent)), resp.Header().Get("Content-Length")) ··· 409 408 t.Run("UploadUntaggedManifest", func(t *testing.T) { 410 409 defer tests.PrintCurrentTest(t)() 411 410 412 - req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest), strings.NewReader(untaggedManifestContent)) 413 - addTokenAuthHeader(req, userToken) 414 - req.Header.Set("Content-Type", oci.MediaTypeImageManifest) 411 + req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest), strings.NewReader(untaggedManifestContent)). 412 + AddTokenAuth(userToken). 413 + SetHeader("Content-Type", oci.MediaTypeImageManifest) 415 414 resp := MakeRequest(t, req, http.StatusCreated) 416 415 417 416 assert.Equal(t, untaggedManifestDigest, resp.Header().Get("Docker-Content-Digest")) 418 417 419 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest)) 420 - addTokenAuthHeader(req, userToken) 418 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest)). 419 + AddTokenAuth(userToken) 421 420 resp = MakeRequest(t, req, http.StatusOK) 422 421 423 422 assert.Equal(t, fmt.Sprintf("%d", len(untaggedManifestContent)), resp.Header().Get("Content-Length")) ··· 449 448 t.Run("UploadIndexManifest", func(t *testing.T) { 450 449 defer tests.PrintCurrentTest(t)() 451 450 452 - req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, multiTag), strings.NewReader(indexManifestContent)) 453 - addTokenAuthHeader(req, userToken) 454 - req.Header.Set("Content-Type", oci.MediaTypeImageIndex) 451 + req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/manifests/%s", url, multiTag), strings.NewReader(indexManifestContent)). 452 + AddTokenAuth(userToken). 453 + SetHeader("Content-Type", oci.MediaTypeImageIndex) 455 454 resp := MakeRequest(t, req, http.StatusCreated) 456 455 457 456 assert.Equal(t, indexManifestDigest, resp.Header().Get("Docker-Content-Digest")) ··· 498 497 t.Run("HeadBlob", func(t *testing.T) { 499 498 defer tests.PrintCurrentTest(t)() 500 499 501 - req := NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, unknownDigest)) 502 - addTokenAuthHeader(req, userToken) 500 + req := NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, unknownDigest)). 501 + AddTokenAuth(userToken) 503 502 MakeRequest(t, req, http.StatusNotFound) 504 503 505 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, blobDigest)) 506 - addTokenAuthHeader(req, userToken) 504 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, blobDigest)). 505 + AddTokenAuth(userToken) 507 506 resp := MakeRequest(t, req, http.StatusOK) 508 507 509 508 assert.Equal(t, fmt.Sprintf("%d", len(blobContent)), resp.Header().Get("Content-Length")) 510 509 assert.Equal(t, blobDigest, resp.Header().Get("Docker-Content-Digest")) 511 510 512 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, blobDigest)) 513 - addTokenAuthHeader(req, anonymousToken) 511 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, blobDigest)). 512 + AddTokenAuth(anonymousToken) 514 513 MakeRequest(t, req, http.StatusOK) 515 514 }) 516 515 517 516 t.Run("GetBlob", func(t *testing.T) { 518 517 defer tests.PrintCurrentTest(t)() 519 518 520 - req := NewRequest(t, "GET", fmt.Sprintf("%s/blobs/%s", url, unknownDigest)) 521 - addTokenAuthHeader(req, userToken) 519 + req := NewRequest(t, "GET", fmt.Sprintf("%s/blobs/%s", url, unknownDigest)). 520 + AddTokenAuth(userToken) 522 521 MakeRequest(t, req, http.StatusNotFound) 523 522 524 - req = NewRequest(t, "GET", fmt.Sprintf("%s/blobs/%s", url, blobDigest)) 525 - addTokenAuthHeader(req, userToken) 523 + req = NewRequest(t, "GET", fmt.Sprintf("%s/blobs/%s", url, blobDigest)). 524 + AddTokenAuth(userToken) 526 525 resp := MakeRequest(t, req, http.StatusOK) 527 526 528 527 assert.Equal(t, fmt.Sprintf("%d", len(blobContent)), resp.Header().Get("Content-Length")) ··· 566 565 } 567 566 568 567 for _, c := range cases { 569 - req := NewRequest(t, "GET", c.URL) 570 - addTokenAuthHeader(req, userToken) 568 + req := NewRequest(t, "GET", c.URL). 569 + AddTokenAuth(userToken) 571 570 resp := MakeRequest(t, req, http.StatusOK) 572 571 573 572 type TagList struct { ··· 583 582 assert.Equal(t, c.ExpectedLink, resp.Header().Get("Link")) 584 583 } 585 584 586 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s?type=container&q=%s&token=%s", user.Name, image, token)) 585 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s?type=container&q=%s", user.Name, image)). 586 + AddTokenAuth(token) 587 587 resp := MakeRequest(t, req, http.StatusOK) 588 588 589 589 var apiPackages []*api.Package ··· 595 595 t.Run("Blob", func(t *testing.T) { 596 596 defer tests.PrintCurrentTest(t)() 597 597 598 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/blobs/%s", url, blobDigest)) 599 - addTokenAuthHeader(req, userToken) 598 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/blobs/%s", url, blobDigest)). 599 + AddTokenAuth(userToken) 600 600 MakeRequest(t, req, http.StatusAccepted) 601 601 602 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, blobDigest)) 603 - addTokenAuthHeader(req, userToken) 602 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/blobs/%s", url, blobDigest)). 603 + AddTokenAuth(userToken) 604 604 MakeRequest(t, req, http.StatusNotFound) 605 605 }) 606 606 607 607 t.Run("ManifestByDigest", func(t *testing.T) { 608 608 defer tests.PrintCurrentTest(t)() 609 609 610 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest)) 611 - addTokenAuthHeader(req, userToken) 610 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest)). 611 + AddTokenAuth(userToken) 612 612 MakeRequest(t, req, http.StatusAccepted) 613 613 614 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest)) 615 - addTokenAuthHeader(req, userToken) 614 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, untaggedManifestDigest)). 615 + AddTokenAuth(userToken) 616 616 MakeRequest(t, req, http.StatusNotFound) 617 617 }) 618 618 619 619 t.Run("ManifestByTag", func(t *testing.T) { 620 620 defer tests.PrintCurrentTest(t)() 621 621 622 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/manifests/%s", url, multiTag)) 623 - addTokenAuthHeader(req, userToken) 622 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/manifests/%s", url, multiTag)). 623 + AddTokenAuth(userToken) 624 624 MakeRequest(t, req, http.StatusAccepted) 625 625 626 - req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, multiTag)) 627 - addTokenAuthHeader(req, userToken) 626 + req = NewRequest(t, "HEAD", fmt.Sprintf("%s/manifests/%s", url, multiTag)). 627 + AddTokenAuth(userToken) 628 628 MakeRequest(t, req, http.StatusNotFound) 629 629 }) 630 630 }) ··· 647 647 go func() { 648 648 defer wg.Done() 649 649 650 - req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, digest), bytes.NewReader(content)) 651 - addTokenAuthHeader(req, userToken) 650 + req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/blobs/uploads?digest=%s", url, digest), bytes.NewReader(content)). 651 + AddTokenAuth(userToken) 652 652 resp := MakeRequest(t, req, http.StatusCreated) 653 653 654 654 assert.Equal(t, digest, resp.Header().Get("Docker-Content-Digest")) ··· 664 664 return func(t *testing.T) { 665 665 defer tests.PrintCurrentTest(t)() 666 666 667 - req := NewRequest(t, "GET", fmt.Sprintf("%sv2/_catalog", setting.AppURL)) 668 - addTokenAuthHeader(req, userToken) 667 + req := NewRequest(t, "GET", fmt.Sprintf("%sv2/_catalog", setting.AppURL)). 668 + AddTokenAuth(userToken) 669 669 resp := MakeRequest(t, req, http.StatusOK) 670 670 671 671 type RepositoryList struct {
+19 -26
tests/integration/api_packages_cran_test.go
··· 74 74 req = NewRequestWithBody(t, "PUT", uploadURL, createArchive( 75 75 "dummy.txt", 76 76 []byte{}, 77 - )) 78 - req = AddBasicAuthHeader(req, user.Name) 77 + )).AddBasicAuth(user.Name) 79 78 MakeRequest(t, req, http.StatusBadRequest) 80 79 81 80 req = NewRequestWithBody(t, "PUT", uploadURL, createArchive( 82 81 "package/DESCRIPTION", 83 82 createDescription(packageName, packageVersion), 84 - )) 85 - req = AddBasicAuthHeader(req, user.Name) 83 + )).AddBasicAuth(user.Name) 86 84 MakeRequest(t, req, http.StatusCreated) 87 85 88 86 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeCran) ··· 105 103 req = NewRequestWithBody(t, "PUT", uploadURL, createArchive( 106 104 "package/DESCRIPTION", 107 105 createDescription(packageName, packageVersion), 108 - )) 109 - req = AddBasicAuthHeader(req, user.Name) 106 + )).AddBasicAuth(user.Name) 110 107 MakeRequest(t, req, http.StatusConflict) 111 108 }) 112 109 113 110 t.Run("Download", func(t *testing.T) { 114 111 defer tests.PrintCurrentTest(t)() 115 112 116 - req := NewRequest(t, "GET", fmt.Sprintf("%s/src/contrib/%s_%s.tar.gz", url, packageName, packageVersion)) 117 - req = AddBasicAuthHeader(req, user.Name) 113 + req := NewRequest(t, "GET", fmt.Sprintf("%s/src/contrib/%s_%s.tar.gz", url, packageName, packageVersion)). 114 + AddBasicAuth(user.Name) 118 115 MakeRequest(t, req, http.StatusOK) 119 116 }) 120 117 121 118 t.Run("Enumerate", func(t *testing.T) { 122 119 defer tests.PrintCurrentTest(t)() 123 120 124 - req := NewRequest(t, "GET", url+"/src/contrib/PACKAGES") 125 - req = AddBasicAuthHeader(req, user.Name) 121 + req := NewRequest(t, "GET", url+"/src/contrib/PACKAGES"). 122 + AddBasicAuth(user.Name) 126 123 resp := MakeRequest(t, req, http.StatusOK) 127 124 128 125 assert.Contains(t, resp.Header().Get("Content-Type"), "text/plain") ··· 131 128 assert.Contains(t, body, fmt.Sprintf("Package: %s", packageName)) 132 129 assert.Contains(t, body, fmt.Sprintf("Version: %s", packageVersion)) 133 130 134 - req = NewRequest(t, "GET", url+"/src/contrib/PACKAGES.gz") 135 - req = AddBasicAuthHeader(req, user.Name) 131 + req = NewRequest(t, "GET", url+"/src/contrib/PACKAGES.gz"). 132 + AddBasicAuth(user.Name) 136 133 resp = MakeRequest(t, req, http.StatusOK) 137 134 138 135 assert.Contains(t, resp.Header().Get("Content-Type"), "application/x-gzip") ··· 160 157 req = NewRequestWithBody(t, "PUT", uploadURL, createArchive( 161 158 "dummy.txt", 162 159 []byte{}, 163 - )) 164 - req = AddBasicAuthHeader(req, user.Name) 160 + )).AddBasicAuth(user.Name) 165 161 MakeRequest(t, req, http.StatusBadRequest) 166 162 167 163 req = NewRequestWithBody(t, "PUT", uploadURL+"?platform=&rversion=", createArchive( 168 164 "package/DESCRIPTION", 169 165 createDescription(packageName, packageVersion), 170 - )) 171 - req = AddBasicAuthHeader(req, user.Name) 166 + )).AddBasicAuth(user.Name) 172 167 MakeRequest(t, req, http.StatusBadRequest) 173 168 174 169 uploadURL += "?platform=windows&rversion=4.2" ··· 176 171 req = NewRequestWithBody(t, "PUT", uploadURL, createArchive( 177 172 "package/DESCRIPTION", 178 173 createDescription(packageName, packageVersion), 179 - )) 180 - req = AddBasicAuthHeader(req, user.Name) 174 + )).AddBasicAuth(user.Name) 181 175 MakeRequest(t, req, http.StatusCreated) 182 176 183 177 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeCran) ··· 191 185 req = NewRequestWithBody(t, "PUT", uploadURL, createArchive( 192 186 "package/DESCRIPTION", 193 187 createDescription(packageName, packageVersion), 194 - )) 195 - req = AddBasicAuthHeader(req, user.Name) 188 + )).AddBasicAuth(user.Name) 196 189 MakeRequest(t, req, http.StatusConflict) 197 190 }) 198 191 ··· 210 203 } 211 204 212 205 for _, c := range cases { 213 - req := NewRequest(t, "GET", fmt.Sprintf("%s/bin/%s/contrib/%s/%s_%s.zip", url, c.Platform, c.RVersion, packageName, packageVersion)) 214 - req = AddBasicAuthHeader(req, user.Name) 206 + req := NewRequest(t, "GET", fmt.Sprintf("%s/bin/%s/contrib/%s/%s_%s.zip", url, c.Platform, c.RVersion, packageName, packageVersion)). 207 + AddBasicAuth(user.Name) 215 208 MakeRequest(t, req, c.ExpectedStatus) 216 209 } 217 210 }) ··· 222 215 req := NewRequest(t, "GET", url+"/bin/windows/contrib/4.1/PACKAGES") 223 216 MakeRequest(t, req, http.StatusNotFound) 224 217 225 - req = NewRequest(t, "GET", url+"/bin/windows/contrib/4.2/PACKAGES") 226 - req = AddBasicAuthHeader(req, user.Name) 218 + req = NewRequest(t, "GET", url+"/bin/windows/contrib/4.2/PACKAGES"). 219 + AddBasicAuth(user.Name) 227 220 resp := MakeRequest(t, req, http.StatusOK) 228 221 229 222 assert.Contains(t, resp.Header().Get("Content-Type"), "text/plain") ··· 232 225 assert.Contains(t, body, fmt.Sprintf("Package: %s", packageName)) 233 226 assert.Contains(t, body, fmt.Sprintf("Version: %s", packageVersion)) 234 227 235 - req = NewRequest(t, "GET", url+"/bin/windows/contrib/4.2/PACKAGES.gz") 236 - req = AddBasicAuthHeader(req, user.Name) 228 + req = NewRequest(t, "GET", url+"/bin/windows/contrib/4.2/PACKAGES.gz"). 229 + AddBasicAuth(user.Name) 237 230 resp = MakeRequest(t, req, http.StatusOK) 238 231 239 232 assert.Contains(t, resp.Header().Get("Content-Type"), "application/x-gzip")
+14 -14
tests/integration/api_packages_debian_test.go
··· 89 89 req := NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader([]byte{})) 90 90 MakeRequest(t, req, http.StatusUnauthorized) 91 91 92 - req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader([]byte{})) 93 - AddBasicAuthHeader(req, user.Name) 92 + req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader([]byte{})). 93 + AddBasicAuth(user.Name) 94 94 MakeRequest(t, req, http.StatusBadRequest) 95 95 96 - req = NewRequestWithBody(t, "PUT", uploadURL, createArchive("", "", "")) 97 - AddBasicAuthHeader(req, user.Name) 96 + req = NewRequestWithBody(t, "PUT", uploadURL, createArchive("", "", "")). 97 + AddBasicAuth(user.Name) 98 98 MakeRequest(t, req, http.StatusBadRequest) 99 99 100 - req = NewRequestWithBody(t, "PUT", uploadURL, createArchive(packageName, packageVersion, architecture)) 101 - AddBasicAuthHeader(req, user.Name) 100 + req = NewRequestWithBody(t, "PUT", uploadURL, createArchive(packageName, packageVersion, architecture)). 101 + AddBasicAuth(user.Name) 102 102 MakeRequest(t, req, http.StatusCreated) 103 103 104 104 pv, err := packages.GetVersionByNameAndVersion(db.DefaultContext, user.ID, packages.TypeDebian, packageName, packageVersion) ··· 145 145 return seen 146 146 }) 147 147 148 - req = NewRequestWithBody(t, "PUT", uploadURL, createArchive(packageName, packageVersion, architecture)) 149 - AddBasicAuthHeader(req, user.Name) 148 + req = NewRequestWithBody(t, "PUT", uploadURL, createArchive(packageName, packageVersion, architecture)). 149 + AddBasicAuth(user.Name) 150 150 MakeRequest(t, req, http.StatusConflict) 151 151 }) 152 152 ··· 162 162 t.Run("Packages", func(t *testing.T) { 163 163 defer tests.PrintCurrentTest(t)() 164 164 165 - req := NewRequestWithBody(t, "PUT", uploadURL, createArchive(packageName, packageVersion2, architecture)) 166 - AddBasicAuthHeader(req, user.Name) 165 + req := NewRequestWithBody(t, "PUT", uploadURL, createArchive(packageName, packageVersion2, architecture)). 166 + AddBasicAuth(user.Name) 167 167 MakeRequest(t, req, http.StatusCreated) 168 168 169 169 url := fmt.Sprintf("%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture) ··· 243 243 req := NewRequest(t, "DELETE", fmt.Sprintf("%s/pool/%s/%s/%s/%s/%s", rootURL, distribution, component, packageName, packageVersion, architecture)) 244 244 MakeRequest(t, req, http.StatusUnauthorized) 245 245 246 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/pool/%s/%s/%s/%s/%s", rootURL, distribution, component, packageName, packageVersion, architecture)) 247 - AddBasicAuthHeader(req, user.Name) 246 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/pool/%s/%s/%s/%s/%s", rootURL, distribution, component, packageName, packageVersion, architecture)). 247 + AddBasicAuth(user.Name) 248 248 MakeRequest(t, req, http.StatusNoContent) 249 249 250 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/pool/%s/%s/%s/%s/%s", rootURL, distribution, component, packageName, packageVersion2, architecture)) 251 - AddBasicAuthHeader(req, user.Name) 250 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/pool/%s/%s/%s/%s/%s", rootURL, distribution, component, packageName, packageVersion2, architecture)). 251 + AddBasicAuth(user.Name) 252 252 MakeRequest(t, req, http.StatusNoContent) 253 253 254 254 req = NewRequest(t, "GET", fmt.Sprintf("%s/dists/%s/%s/binary-%s/Packages", rootURL, distribution, component, architecture))
+24 -24
tests/integration/api_packages_generic_test.go
··· 35 35 t.Run("Upload", func(t *testing.T) { 36 36 defer tests.PrintCurrentTest(t)() 37 37 38 - req := NewRequestWithBody(t, "PUT", url+"/"+filename, bytes.NewReader(content)) 39 - AddBasicAuthHeader(req, user.Name) 38 + req := NewRequestWithBody(t, "PUT", url+"/"+filename, bytes.NewReader(content)). 39 + AddBasicAuth(user.Name) 40 40 MakeRequest(t, req, http.StatusCreated) 41 41 42 42 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeGeneric) ··· 62 62 t.Run("Exists", func(t *testing.T) { 63 63 defer tests.PrintCurrentTest(t)() 64 64 65 - req := NewRequestWithBody(t, "PUT", url+"/"+filename, bytes.NewReader(content)) 66 - AddBasicAuthHeader(req, user.Name) 65 + req := NewRequestWithBody(t, "PUT", url+"/"+filename, bytes.NewReader(content)). 66 + AddBasicAuth(user.Name) 67 67 MakeRequest(t, req, http.StatusConflict) 68 68 }) 69 69 70 70 t.Run("Additional", func(t *testing.T) { 71 71 defer tests.PrintCurrentTest(t)() 72 72 73 - req := NewRequestWithBody(t, "PUT", url+"/dummy.bin", bytes.NewReader(content)) 74 - AddBasicAuthHeader(req, user.Name) 73 + req := NewRequestWithBody(t, "PUT", url+"/dummy.bin", bytes.NewReader(content)). 74 + AddBasicAuth(user.Name) 75 75 MakeRequest(t, req, http.StatusCreated) 76 76 77 77 // Check deduplication ··· 84 84 t.Run("InvalidParameter", func(t *testing.T) { 85 85 defer tests.PrintCurrentTest(t)() 86 86 87 - req := NewRequestWithBody(t, "PUT", fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, "invalid+package name", packageVersion, filename), bytes.NewReader(content)) 88 - AddBasicAuthHeader(req, user.Name) 87 + req := NewRequestWithBody(t, "PUT", fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, "invalid+package name", packageVersion, filename), bytes.NewReader(content)). 88 + AddBasicAuth(user.Name) 89 89 MakeRequest(t, req, http.StatusBadRequest) 90 90 91 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, packageName, "%20test ", filename), bytes.NewReader(content)) 92 - AddBasicAuthHeader(req, user.Name) 91 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, packageName, "%20test ", filename), bytes.NewReader(content)). 92 + AddBasicAuth(user.Name) 93 93 MakeRequest(t, req, http.StatusBadRequest) 94 94 95 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, packageName, packageVersion, "inval+id.na me"), bytes.NewReader(content)) 96 - AddBasicAuthHeader(req, user.Name) 95 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, packageName, packageVersion, "inval+id.na me"), bytes.NewReader(content)). 96 + AddBasicAuth(user.Name) 97 97 MakeRequest(t, req, http.StatusBadRequest) 98 98 }) 99 99 }) ··· 187 187 req := NewRequest(t, "DELETE", url+"/"+filename) 188 188 MakeRequest(t, req, http.StatusUnauthorized) 189 189 190 - req = NewRequest(t, "DELETE", url+"/"+filename) 191 - AddBasicAuthHeader(req, user.Name) 190 + req = NewRequest(t, "DELETE", url+"/"+filename). 191 + AddBasicAuth(user.Name) 192 192 MakeRequest(t, req, http.StatusNoContent) 193 193 194 194 req = NewRequest(t, "GET", url+"/"+filename) 195 195 MakeRequest(t, req, http.StatusNotFound) 196 196 197 - req = NewRequest(t, "DELETE", url+"/"+filename) 198 - AddBasicAuthHeader(req, user.Name) 197 + req = NewRequest(t, "DELETE", url+"/"+filename). 198 + AddBasicAuth(user.Name) 199 199 MakeRequest(t, req, http.StatusNotFound) 200 200 201 201 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeGeneric) ··· 205 205 t.Run("RemovesVersion", func(t *testing.T) { 206 206 defer tests.PrintCurrentTest(t)() 207 207 208 - req = NewRequest(t, "DELETE", url+"/dummy.bin") 209 - AddBasicAuthHeader(req, user.Name) 208 + req = NewRequest(t, "DELETE", url+"/dummy.bin"). 209 + AddBasicAuth(user.Name) 210 210 MakeRequest(t, req, http.StatusNoContent) 211 211 212 212 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeGeneric) ··· 218 218 t.Run("Version", func(t *testing.T) { 219 219 defer tests.PrintCurrentTest(t)() 220 220 221 - req := NewRequestWithBody(t, "PUT", url+"/"+filename, bytes.NewReader(content)) 222 - AddBasicAuthHeader(req, user.Name) 221 + req := NewRequestWithBody(t, "PUT", url+"/"+filename, bytes.NewReader(content)). 222 + AddBasicAuth(user.Name) 223 223 MakeRequest(t, req, http.StatusCreated) 224 224 225 225 req = NewRequest(t, "DELETE", url) 226 226 MakeRequest(t, req, http.StatusUnauthorized) 227 227 228 - req = NewRequest(t, "DELETE", url) 229 - AddBasicAuthHeader(req, user.Name) 228 + req = NewRequest(t, "DELETE", url). 229 + AddBasicAuth(user.Name) 230 230 MakeRequest(t, req, http.StatusNoContent) 231 231 232 232 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeGeneric) ··· 236 236 req = NewRequest(t, "GET", url+"/"+filename) 237 237 MakeRequest(t, req, http.StatusNotFound) 238 238 239 - req = NewRequest(t, "DELETE", url) 240 - AddBasicAuthHeader(req, user.Name) 239 + req = NewRequest(t, "DELETE", url). 240 + AddBasicAuth(user.Name) 241 241 MakeRequest(t, req, http.StatusNotFound) 242 242 }) 243 243 })
+8 -8
tests/integration/api_packages_goproxy_test.go
··· 51 51 req := NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)) 52 52 MakeRequest(t, req, http.StatusUnauthorized) 53 53 54 - req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)) 55 - AddBasicAuthHeader(req, user.Name) 54 + req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)). 55 + AddBasicAuth(user.Name) 56 56 MakeRequest(t, req, http.StatusBadRequest) 57 57 58 58 content = createArchive(map[string][]byte{ 59 59 packageName + "@" + packageVersion + "/go.mod": []byte(goModContent), 60 60 }) 61 61 62 - req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)) 63 - AddBasicAuthHeader(req, user.Name) 62 + req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)). 63 + AddBasicAuth(user.Name) 64 64 MakeRequest(t, req, http.StatusCreated) 65 65 66 66 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeGo) ··· 83 83 assert.NoError(t, err) 84 84 assert.Equal(t, int64(len(content)), pb.Size) 85 85 86 - req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)) 87 - AddBasicAuthHeader(req, user.Name) 86 + req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)). 87 + AddBasicAuth(user.Name) 88 88 MakeRequest(t, req, http.StatusConflict) 89 89 90 90 time.Sleep(time.Second) ··· 93 93 packageName + "@" + packageVersion2 + "/go.mod": []byte(goModContent), 94 94 }) 95 95 96 - req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)) 97 - AddBasicAuthHeader(req, user.Name) 96 + req = NewRequestWithBody(t, "PUT", url+"/upload", bytes.NewReader(content)). 97 + AddBasicAuth(user.Name) 98 98 MakeRequest(t, req, http.StatusCreated) 99 99 }) 100 100
+8 -8
tests/integration/api_packages_helm_test.go
··· 68 68 69 69 uploadURL := url + "/api/charts" 70 70 71 - req := NewRequestWithBody(t, "POST", uploadURL, bytes.NewReader(content)) 72 - req = AddBasicAuthHeader(req, user.Name) 71 + req := NewRequestWithBody(t, "POST", uploadURL, bytes.NewReader(content)). 72 + AddBasicAuth(user.Name) 73 73 MakeRequest(t, req, http.StatusCreated) 74 74 75 75 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeHelm) ··· 93 93 assert.NoError(t, err) 94 94 assert.Equal(t, int64(len(content)), pb.Size) 95 95 96 - req = NewRequestWithBody(t, "POST", uploadURL, bytes.NewReader(content)) 97 - req = AddBasicAuthHeader(req, user.Name) 96 + req = NewRequestWithBody(t, "POST", uploadURL, bytes.NewReader(content)). 97 + AddBasicAuth(user.Name) 98 98 MakeRequest(t, req, http.StatusCreated) 99 99 }) 100 100 ··· 110 110 111 111 checkDownloadCount(0) 112 112 113 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s", url, filename)) 114 - req = AddBasicAuthHeader(req, user.Name) 113 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s", url, filename)). 114 + AddBasicAuth(user.Name) 115 115 resp := MakeRequest(t, req, http.StatusOK) 116 116 117 117 assert.Equal(t, content, resp.Body.Bytes()) ··· 122 122 t.Run("Index", func(t *testing.T) { 123 123 defer tests.PrintCurrentTest(t)() 124 124 125 - req := NewRequest(t, "GET", fmt.Sprintf("%s/index.yaml", url)) 126 - req = AddBasicAuthHeader(req, user.Name) 125 + req := NewRequest(t, "GET", fmt.Sprintf("%s/index.yaml", url)). 126 + AddBasicAuth(user.Name) 127 127 resp := MakeRequest(t, req, http.StatusOK) 128 128 129 129 type ChartVersion struct {
+18 -18
tests/integration/api_packages_maven_test.go
··· 35 35 filename := fmt.Sprintf("%s-%s.jar", packageName, packageVersion) 36 36 37 37 putFile := func(t *testing.T, path, content string, expectedStatus int) { 38 - req := NewRequestWithBody(t, "PUT", root+path, strings.NewReader(content)) 39 - req = AddBasicAuthHeader(req, user.Name) 38 + req := NewRequestWithBody(t, "PUT", root+path, strings.NewReader(content)). 39 + AddBasicAuth(user.Name) 40 40 MakeRequest(t, req, expectedStatus) 41 41 } 42 42 ··· 84 84 t.Run("Download", func(t *testing.T) { 85 85 defer tests.PrintCurrentTest(t)() 86 86 87 - req := NewRequest(t, "HEAD", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename)) 88 - req = AddBasicAuthHeader(req, user.Name) 87 + req := NewRequest(t, "HEAD", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename)). 88 + AddBasicAuth(user.Name) 89 89 resp := MakeRequest(t, req, http.StatusOK) 90 90 91 91 checkHeaders(t, resp.Header(), "application/java-archive", 4) 92 92 93 - req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename)) 94 - req = AddBasicAuthHeader(req, user.Name) 93 + req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename)). 94 + AddBasicAuth(user.Name) 95 95 resp = MakeRequest(t, req, http.StatusOK) 96 96 97 97 checkHeaders(t, resp.Header(), "application/java-archive", 4) ··· 165 165 t.Run("DownloadPOM", func(t *testing.T) { 166 166 defer tests.PrintCurrentTest(t)() 167 167 168 - req := NewRequest(t, "HEAD", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename)) 169 - req = AddBasicAuthHeader(req, user.Name) 168 + req := NewRequest(t, "HEAD", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename)). 169 + AddBasicAuth(user.Name) 170 170 resp := MakeRequest(t, req, http.StatusOK) 171 171 172 172 checkHeaders(t, resp.Header(), "text/xml", int64(len(pomContent))) 173 173 174 - req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename)) 175 - req = AddBasicAuthHeader(req, user.Name) 174 + req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename)). 175 + AddBasicAuth(user.Name) 176 176 resp = MakeRequest(t, req, http.StatusOK) 177 177 178 178 checkHeaders(t, resp.Header(), "text/xml", int64(len(pomContent))) ··· 188 188 t.Run("DownloadChecksums", func(t *testing.T) { 189 189 defer tests.PrintCurrentTest(t)() 190 190 191 - req := NewRequest(t, "GET", fmt.Sprintf("%s/1.2.3/%s", root, filename)) 192 - req = AddBasicAuthHeader(req, user.Name) 191 + req := NewRequest(t, "GET", fmt.Sprintf("%s/1.2.3/%s", root, filename)). 192 + AddBasicAuth(user.Name) 193 193 MakeRequest(t, req, http.StatusNotFound) 194 194 195 195 for key, checksum := range map[string]string{ ··· 198 198 "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", 199 199 "sha512": "ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff", 200 200 } { 201 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.%s", root, packageVersion, filename, key)) 202 - req = AddBasicAuthHeader(req, user.Name) 201 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.%s", root, packageVersion, filename, key)). 202 + AddBasicAuth(user.Name) 203 203 resp := MakeRequest(t, req, http.StatusOK) 204 204 205 205 assert.Equal(t, checksum, resp.Body.String()) ··· 209 209 t.Run("DownloadMetadata", func(t *testing.T) { 210 210 defer tests.PrintCurrentTest(t)() 211 211 212 - req := NewRequest(t, "GET", root+"/maven-metadata.xml") 213 - req = AddBasicAuthHeader(req, user.Name) 212 + req := NewRequest(t, "GET", root+"/maven-metadata.xml"). 213 + AddBasicAuth(user.Name) 214 214 resp := MakeRequest(t, req, http.StatusOK) 215 215 216 216 expectedMetadata := `<?xml version="1.0" encoding="UTF-8"?>` + "\n<metadata><groupId>com.gitea</groupId><artifactId>test-project</artifactId><versioning><release>1.0.1</release><latest>1.0.1</latest><versions><version>1.0.1</version></versions></versioning></metadata>" ··· 225 225 "sha256": "3f48322f81c4b2c3bb8649ae1e5c9801476162b520e1c2734ac06b2c06143208", 226 226 "sha512": "cb075aa2e2ef1a83cdc14dd1e08c505b72d633399b39e73a21f00f0deecb39a3e2c79f157c1163f8a3854828750706e0dec3a0f5e4778e91f8ec2cf351a855f2", 227 227 } { 228 - req := NewRequest(t, "GET", fmt.Sprintf("%s/maven-metadata.xml.%s", root, key)) 229 - req = AddBasicAuthHeader(req, user.Name) 228 + req := NewRequest(t, "GET", fmt.Sprintf("%s/maven-metadata.xml.%s", root, key)). 229 + AddBasicAuth(user.Name) 230 230 resp := MakeRequest(t, req, http.StatusOK) 231 231 232 232 assert.Equal(t, checksum, resp.Body.String())
+28 -28
tests/integration/api_packages_npm_test.go
··· 87 87 t.Run("Upload", func(t *testing.T) { 88 88 defer tests.PrintCurrentTest(t)() 89 89 90 - req := NewRequestWithBody(t, "PUT", root, strings.NewReader(buildUpload(packageVersion))) 91 - req = addTokenAuthHeader(req, token) 90 + req := NewRequestWithBody(t, "PUT", root, strings.NewReader(buildUpload(packageVersion))). 91 + AddTokenAuth(token) 92 92 MakeRequest(t, req, http.StatusCreated) 93 93 94 94 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeNpm) ··· 119 119 t.Run("UploadExists", func(t *testing.T) { 120 120 defer tests.PrintCurrentTest(t)() 121 121 122 - req := NewRequestWithBody(t, "PUT", root, strings.NewReader(buildUpload(packageVersion))) 123 - req = addTokenAuthHeader(req, token) 122 + req := NewRequestWithBody(t, "PUT", root, strings.NewReader(buildUpload(packageVersion))). 123 + AddTokenAuth(token) 124 124 MakeRequest(t, req, http.StatusConflict) 125 125 }) 126 126 127 127 t.Run("Download", func(t *testing.T) { 128 128 defer tests.PrintCurrentTest(t)() 129 129 130 - req := NewRequest(t, "GET", fmt.Sprintf("%s/-/%s/%s", root, packageVersion, filename)) 131 - req = addTokenAuthHeader(req, token) 130 + req := NewRequest(t, "GET", fmt.Sprintf("%s/-/%s/%s", root, packageVersion, filename)). 131 + AddTokenAuth(token) 132 132 resp := MakeRequest(t, req, http.StatusOK) 133 133 134 134 b, _ := base64.StdEncoding.DecodeString(data) 135 135 assert.Equal(t, b, resp.Body.Bytes()) 136 136 137 - req = NewRequest(t, "GET", fmt.Sprintf("%s/-/%s", root, filename)) 138 - req = addTokenAuthHeader(req, token) 137 + req = NewRequest(t, "GET", fmt.Sprintf("%s/-/%s", root, filename)). 138 + AddTokenAuth(token) 139 139 resp = MakeRequest(t, req, http.StatusOK) 140 140 141 141 assert.Equal(t, b, resp.Body.Bytes()) ··· 149 149 t.Run("PackageMetadata", func(t *testing.T) { 150 150 defer tests.PrintCurrentTest(t)() 151 151 152 - req := NewRequest(t, "GET", fmt.Sprintf("/api/packages/%s/npm/%s", user.Name, "does-not-exist")) 153 - req = addTokenAuthHeader(req, token) 152 + req := NewRequest(t, "GET", fmt.Sprintf("/api/packages/%s/npm/%s", user.Name, "does-not-exist")). 153 + AddTokenAuth(token) 154 154 MakeRequest(t, req, http.StatusNotFound) 155 155 156 - req = NewRequest(t, "GET", root) 157 - req = addTokenAuthHeader(req, token) 156 + req = NewRequest(t, "GET", root). 157 + AddTokenAuth(token) 158 158 resp := MakeRequest(t, req, http.StatusOK) 159 159 160 160 var result npm.PackageMetadata ··· 184 184 defer tests.PrintCurrentTest(t)() 185 185 186 186 test := func(t *testing.T, status int, tag, version string) { 187 - req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/%s", tagsRoot, tag), strings.NewReader(`"`+version+`"`)) 188 - req = addTokenAuthHeader(req, token) 187 + req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/%s", tagsRoot, tag), strings.NewReader(`"`+version+`"`)). 188 + AddTokenAuth(token) 189 189 MakeRequest(t, req, status) 190 190 } 191 191 ··· 199 199 t.Run("ListTags", func(t *testing.T) { 200 200 defer tests.PrintCurrentTest(t)() 201 201 202 - req := NewRequest(t, "GET", tagsRoot) 203 - req = addTokenAuthHeader(req, token) 202 + req := NewRequest(t, "GET", tagsRoot). 203 + AddTokenAuth(token) 204 204 resp := MakeRequest(t, req, http.StatusOK) 205 205 206 206 var result map[string]string ··· 216 216 t.Run("PackageMetadataDistTags", func(t *testing.T) { 217 217 defer tests.PrintCurrentTest(t)() 218 218 219 - req := NewRequest(t, "GET", root) 220 - req = addTokenAuthHeader(req, token) 219 + req := NewRequest(t, "GET", root). 220 + AddTokenAuth(token) 221 221 resp := MakeRequest(t, req, http.StatusOK) 222 222 223 223 var result npm.PackageMetadata ··· 234 234 defer tests.PrintCurrentTest(t)() 235 235 236 236 test := func(t *testing.T, status int, tag string) { 237 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s", tagsRoot, tag)) 238 - req = addTokenAuthHeader(req, token) 237 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s", tagsRoot, tag)). 238 + AddTokenAuth(token) 239 239 MakeRequest(t, req, status) 240 240 } 241 241 ··· 279 279 t.Run("Delete", func(t *testing.T) { 280 280 defer tests.PrintCurrentTest(t)() 281 281 282 - req := NewRequestWithBody(t, "PUT", root, strings.NewReader(buildUpload(packageVersion+"-dummy"))) 283 - req = addTokenAuthHeader(req, token) 282 + req := NewRequestWithBody(t, "PUT", root, strings.NewReader(buildUpload(packageVersion+"-dummy"))). 283 + AddTokenAuth(token) 284 284 MakeRequest(t, req, http.StatusCreated) 285 285 286 286 req = NewRequest(t, "PUT", root+"/-rev/dummy") 287 287 MakeRequest(t, req, http.StatusUnauthorized) 288 288 289 - req = NewRequest(t, "PUT", root+"/-rev/dummy") 290 - req = addTokenAuthHeader(req, token) 289 + req = NewRequest(t, "PUT", root+"/-rev/dummy"). 290 + AddTokenAuth(token) 291 291 MakeRequest(t, req, http.StatusOK) 292 292 293 293 t.Run("Version", func(t *testing.T) { ··· 300 300 req := NewRequest(t, "DELETE", fmt.Sprintf("%s/-/%s/%s/-rev/dummy", root, packageVersion, filename)) 301 301 MakeRequest(t, req, http.StatusUnauthorized) 302 302 303 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/-/%s/%s/-rev/dummy", root, packageVersion, filename)) 304 - req = addTokenAuthHeader(req, token) 303 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/-/%s/%s/-rev/dummy", root, packageVersion, filename)). 304 + AddTokenAuth(token) 305 305 MakeRequest(t, req, http.StatusOK) 306 306 307 307 pvs, err = packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeNpm) ··· 319 319 req := NewRequest(t, "DELETE", root+"/-rev/dummy") 320 320 MakeRequest(t, req, http.StatusUnauthorized) 321 321 322 - req = NewRequest(t, "DELETE", root+"/-rev/dummy") 323 - req = addTokenAuthHeader(req, token) 322 + req = NewRequest(t, "DELETE", root+"/-rev/dummy"). 323 + AddTokenAuth(token) 324 324 MakeRequest(t, req, http.StatusOK) 325 325 326 326 pvs, err = packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeNpm)
+68 -69
tests/integration/api_packages_nuget_test.go
··· 31 31 "github.com/stretchr/testify/assert" 32 32 ) 33 33 34 - func addNuGetAPIKeyHeader(request *http.Request, token string) *http.Request { 35 - request.Header.Set("X-NuGet-ApiKey", token) 36 - return request 34 + func addNuGetAPIKeyHeader(req *RequestWrapper, token string) { 35 + req.SetHeader("X-NuGet-ApiKey", token) 37 36 } 38 37 39 38 func decodeXML(t testing.TB, resp *httptest.ResponseRecorder, v any) { ··· 141 140 142 141 req := NewRequest(t, "GET", url) 143 142 if c.UseBasicAuth { 144 - req = AddBasicAuthHeader(req, user.Name) 143 + req.AddBasicAuth(user.Name) 145 144 } else if c.UseTokenAuth { 146 - req = addNuGetAPIKeyHeader(req, token) 145 + addNuGetAPIKeyHeader(req, token) 147 146 } 148 147 resp := MakeRequest(t, req, http.StatusOK) 149 148 ··· 178 177 179 178 req := NewRequest(t, "GET", fmt.Sprintf("%s/index.json", url)) 180 179 if c.UseBasicAuth { 181 - req = AddBasicAuthHeader(req, user.Name) 180 + req.AddBasicAuth(user.Name) 182 181 } else if c.UseTokenAuth { 183 - req = addNuGetAPIKeyHeader(req, token) 182 + addNuGetAPIKeyHeader(req, token) 184 183 } 185 184 resp := MakeRequest(t, req, http.StatusOK) 186 185 ··· 219 218 t.Run("DependencyPackage", func(t *testing.T) { 220 219 defer tests.PrintCurrentTest(t)() 221 220 222 - req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)) 223 - req = AddBasicAuthHeader(req, user.Name) 221 + req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)). 222 + AddBasicAuth(user.Name) 224 223 MakeRequest(t, req, http.StatusCreated) 225 224 226 225 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeNuGet) ··· 244 243 assert.NoError(t, err) 245 244 assert.Equal(t, int64(len(content)), pb.Size) 246 245 247 - req = NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)) 248 - req = AddBasicAuthHeader(req, user.Name) 246 + req = NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)). 247 + AddBasicAuth(user.Name) 249 248 MakeRequest(t, req, http.StatusConflict) 250 249 }) 251 250 ··· 278 277 return &buf 279 278 } 280 279 281 - req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage("unknown-package", "SymbolsPackage")) 282 - req = AddBasicAuthHeader(req, user.Name) 280 + req := NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage("unknown-package", "SymbolsPackage")). 281 + AddBasicAuth(user.Name) 283 282 MakeRequest(t, req, http.StatusNotFound) 284 283 285 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage(packageName, "DummyPackage")) 286 - req = AddBasicAuthHeader(req, user.Name) 284 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage(packageName, "DummyPackage")). 285 + AddBasicAuth(user.Name) 287 286 MakeRequest(t, req, http.StatusBadRequest) 288 287 289 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage(packageName, "SymbolsPackage")) 290 - req = AddBasicAuthHeader(req, user.Name) 288 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage(packageName, "SymbolsPackage")). 289 + AddBasicAuth(user.Name) 291 290 MakeRequest(t, req, http.StatusCreated) 292 291 293 292 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeNuGet) ··· 330 329 } 331 330 } 332 331 333 - req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage(packageName, "SymbolsPackage")) 334 - req = AddBasicAuthHeader(req, user.Name) 332 + req = NewRequestWithBody(t, "PUT", fmt.Sprintf("%s/symbolpackage", url), createSymbolPackage(packageName, "SymbolsPackage")). 333 + AddBasicAuth(user.Name) 335 334 MakeRequest(t, req, http.StatusConflict) 336 335 }) 337 336 }) ··· 348 347 349 348 checkDownloadCount(0) 350 349 351 - req := NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.nupkg", url, packageName, packageVersion, packageName, packageVersion)) 352 - req = AddBasicAuthHeader(req, user.Name) 350 + req := NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.nupkg", url, packageName, packageVersion, packageName, packageVersion)). 351 + AddBasicAuth(user.Name) 353 352 resp := MakeRequest(t, req, http.StatusOK) 354 353 355 354 assert.Equal(t, content, resp.Body.Bytes()) 356 355 357 356 checkDownloadCount(1) 358 357 359 - req = NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.snupkg", url, packageName, packageVersion, packageName, packageVersion)) 360 - req = AddBasicAuthHeader(req, user.Name) 358 + req = NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.snupkg", url, packageName, packageVersion, packageName, packageVersion)). 359 + AddBasicAuth(user.Name) 361 360 MakeRequest(t, req, http.StatusOK) 362 361 363 362 checkDownloadCount(1) ··· 368 367 req := NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFFFFF/gitea.pdb", url, symbolFilename, symbolID)) 369 368 MakeRequest(t, req, http.StatusBadRequest) 370 369 371 - req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFFFFF/%s", url, symbolFilename, "00000000000000000000000000000000", symbolFilename)) 372 - req = AddBasicAuthHeader(req, user.Name) 370 + req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFFFFF/%s", url, symbolFilename, "00000000000000000000000000000000", symbolFilename)). 371 + AddBasicAuth(user.Name) 373 372 MakeRequest(t, req, http.StatusNotFound) 374 373 375 - req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFffff/%s", url, symbolFilename, symbolID, symbolFilename)) 376 - req = AddBasicAuthHeader(req, user.Name) 374 + req = NewRequest(t, "GET", fmt.Sprintf("%s/symbols/%s/%sFFFFffff/%s", url, symbolFilename, symbolID, symbolFilename)). 375 + AddBasicAuth(user.Name) 377 376 MakeRequest(t, req, http.StatusOK) 378 377 379 378 checkDownloadCount(1) ··· 414 413 {"test", 1, 10, 1, 0}, 415 414 } 416 415 417 - req := NewRequestWithBody(t, "PUT", url, createPackage(packageName, "1.0.99")) 418 - req = AddBasicAuthHeader(req, user.Name) 416 + req := NewRequestWithBody(t, "PUT", url, createPackage(packageName, "1.0.99")). 417 + AddBasicAuth(user.Name) 419 418 MakeRequest(t, req, http.StatusCreated) 420 419 421 420 t.Run("v2", func(t *testing.T) { ··· 423 422 defer tests.PrintCurrentTest(t)() 424 423 425 424 for i, c := range cases { 426 - req := NewRequest(t, "GET", fmt.Sprintf("%s/Search()?searchTerm='%s'&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)) 427 - req = AddBasicAuthHeader(req, user.Name) 425 + req := NewRequest(t, "GET", fmt.Sprintf("%s/Search()?searchTerm='%s'&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)). 426 + AddBasicAuth(user.Name) 428 427 resp := MakeRequest(t, req, http.StatusOK) 429 428 430 429 var result FeedResponse ··· 433 432 assert.Equal(t, c.ExpectedTotal, result.Count, "case %d: unexpected total hits", i) 434 433 assert.Len(t, result.Entries, c.ExpectedResults, "case %d: unexpected result count", i) 435 434 436 - req = NewRequest(t, "GET", fmt.Sprintf("%s/Search()/$count?searchTerm='%s'&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)) 437 - req = AddBasicAuthHeader(req, user.Name) 435 + req = NewRequest(t, "GET", fmt.Sprintf("%s/Search()/$count?searchTerm='%s'&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)). 436 + AddBasicAuth(user.Name) 438 437 resp = MakeRequest(t, req, http.StatusOK) 439 438 440 439 assert.Equal(t, strconv.FormatInt(c.ExpectedTotal, 10), resp.Body.String(), "case %d: unexpected total hits", i) ··· 445 444 defer tests.PrintCurrentTest(t)() 446 445 447 446 for i, c := range cases { 448 - req := NewRequest(t, "GET", fmt.Sprintf("%s/Packages()?$filter=substringof('%s',tolower(Id))&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)) 449 - req = AddBasicAuthHeader(req, user.Name) 447 + req := NewRequest(t, "GET", fmt.Sprintf("%s/Packages()?$filter=substringof('%s',tolower(Id))&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)). 448 + AddBasicAuth(user.Name) 450 449 resp := MakeRequest(t, req, http.StatusOK) 451 450 452 451 var result FeedResponse ··· 455 454 assert.Equal(t, c.ExpectedTotal, result.Count, "case %d: unexpected total hits", i) 456 455 assert.Len(t, result.Entries, c.ExpectedResults, "case %d: unexpected result count", i) 457 456 458 - req = NewRequest(t, "GET", fmt.Sprintf("%s/Packages()/$count?$filter=substringof('%s',tolower(Id))&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)) 459 - req = AddBasicAuthHeader(req, user.Name) 457 + req = NewRequest(t, "GET", fmt.Sprintf("%s/Packages()/$count?$filter=substringof('%s',tolower(Id))&$skip=%d&$top=%d", url, c.Query, c.Skip, c.Take)). 458 + AddBasicAuth(user.Name) 460 459 resp = MakeRequest(t, req, http.StatusOK) 461 460 462 461 assert.Equal(t, strconv.FormatInt(c.ExpectedTotal, 10), resp.Body.String(), "case %d: unexpected total hits", i) ··· 464 463 }) 465 464 466 465 t.Run("Next", func(t *testing.T) { 467 - req := NewRequest(t, "GET", fmt.Sprintf("%s/Search()?searchTerm='test'&$skip=0&$top=1", url)) 468 - req = AddBasicAuthHeader(req, user.Name) 466 + req := NewRequest(t, "GET", fmt.Sprintf("%s/Search()?searchTerm='test'&$skip=0&$top=1", url)). 467 + AddBasicAuth(user.Name) 469 468 resp := MakeRequest(t, req, http.StatusOK) 470 469 471 470 var result FeedResponse ··· 479 478 defer tests.PrintCurrentTest(t)() 480 479 481 480 for i, c := range cases { 482 - req := NewRequest(t, "GET", fmt.Sprintf("%s/query?q=%s&skip=%d&take=%d", url, c.Query, c.Skip, c.Take)) 483 - req = AddBasicAuthHeader(req, user.Name) 481 + req := NewRequest(t, "GET", fmt.Sprintf("%s/query?q=%s&skip=%d&take=%d", url, c.Query, c.Skip, c.Take)). 482 + AddBasicAuth(user.Name) 484 483 resp := MakeRequest(t, req, http.StatusOK) 485 484 486 485 var result nuget.SearchResultResponse ··· 493 492 t.Run("EnforceGrouped", func(t *testing.T) { 494 493 defer tests.PrintCurrentTest(t)() 495 494 496 - req := NewRequestWithBody(t, "PUT", url, createPackage(packageName+".dummy", "1.0.0")) 497 - req = AddBasicAuthHeader(req, user.Name) 495 + req := NewRequestWithBody(t, "PUT", url, createPackage(packageName+".dummy", "1.0.0")). 496 + AddBasicAuth(user.Name) 498 497 MakeRequest(t, req, http.StatusCreated) 499 498 500 - req = NewRequest(t, "GET", fmt.Sprintf("%s/query?q=%s", url, packageName)) 501 - req = AddBasicAuthHeader(req, user.Name) 499 + req = NewRequest(t, "GET", fmt.Sprintf("%s/query?q=%s", url, packageName)). 500 + AddBasicAuth(user.Name) 502 501 resp := MakeRequest(t, req, http.StatusOK) 503 502 504 503 var result nuget.SearchResultResponse ··· 514 513 } 515 514 } 516 515 517 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s", url, packageName+".dummy", "1.0.0")) 518 - req = AddBasicAuthHeader(req, user.Name) 516 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s", url, packageName+".dummy", "1.0.0")). 517 + AddBasicAuth(user.Name) 519 518 MakeRequest(t, req, http.StatusNoContent) 520 519 }) 521 520 }) 522 521 523 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s", url, packageName, "1.0.99")) 524 - req = AddBasicAuthHeader(req, user.Name) 522 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s", url, packageName, "1.0.99")). 523 + AddBasicAuth(user.Name) 525 524 MakeRequest(t, req, http.StatusNoContent) 526 525 }) 527 526 ··· 533 532 t.Run("RegistrationIndex", func(t *testing.T) { 534 533 defer tests.PrintCurrentTest(t)() 535 534 536 - req := NewRequest(t, "GET", fmt.Sprintf("%s/registration/%s/index.json", url, packageName)) 537 - req = AddBasicAuthHeader(req, user.Name) 535 + req := NewRequest(t, "GET", fmt.Sprintf("%s/registration/%s/index.json", url, packageName)). 536 + AddBasicAuth(user.Name) 538 537 resp := MakeRequest(t, req, http.StatusOK) 539 538 540 539 var result nuget.RegistrationIndexResponse ··· 560 559 t.Run("v2", func(t *testing.T) { 561 560 defer tests.PrintCurrentTest(t)() 562 561 563 - req := NewRequest(t, "GET", fmt.Sprintf("%s/Packages(Id='%s',Version='%s')", url, packageName, packageVersion)) 564 - req = AddBasicAuthHeader(req, user.Name) 562 + req := NewRequest(t, "GET", fmt.Sprintf("%s/Packages(Id='%s',Version='%s')", url, packageName, packageVersion)). 563 + AddBasicAuth(user.Name) 565 564 resp := MakeRequest(t, req, http.StatusOK) 566 565 567 566 var result FeedEntry ··· 577 576 t.Run("v3", func(t *testing.T) { 578 577 defer tests.PrintCurrentTest(t)() 579 578 580 - req := NewRequest(t, "GET", fmt.Sprintf("%s/registration/%s/%s.json", url, packageName, packageVersion)) 581 - req = AddBasicAuthHeader(req, user.Name) 579 + req := NewRequest(t, "GET", fmt.Sprintf("%s/registration/%s/%s.json", url, packageName, packageVersion)). 580 + AddBasicAuth(user.Name) 582 581 resp := MakeRequest(t, req, http.StatusOK) 583 582 584 583 var result nuget.RegistrationLeafResponse ··· 595 594 t.Run("v2", func(t *testing.T) { 596 595 defer tests.PrintCurrentTest(t)() 597 596 598 - req := NewRequest(t, "GET", fmt.Sprintf("%s/FindPackagesById()?id='%s'&$top=1", url, packageName)) 599 - req = AddBasicAuthHeader(req, user.Name) 597 + req := NewRequest(t, "GET", fmt.Sprintf("%s/FindPackagesById()?id='%s'&$top=1", url, packageName)). 598 + AddBasicAuth(user.Name) 600 599 resp := MakeRequest(t, req, http.StatusOK) 601 600 602 601 var result FeedResponse ··· 606 605 assert.Equal(t, packageVersion, result.Entries[0].Properties.Version) 607 606 assert.Condition(t, containsOneNextLink(t, result.Links)) 608 607 609 - req = NewRequest(t, "GET", fmt.Sprintf("%s/FindPackagesById()/$count?id='%s'", url, packageName)) 610 - req = AddBasicAuthHeader(req, user.Name) 608 + req = NewRequest(t, "GET", fmt.Sprintf("%s/FindPackagesById()/$count?id='%s'", url, packageName)). 609 + AddBasicAuth(user.Name) 611 610 resp = MakeRequest(t, req, http.StatusOK) 612 611 613 612 assert.Equal(t, "1", resp.Body.String()) ··· 616 615 t.Run("v3", func(t *testing.T) { 617 616 defer tests.PrintCurrentTest(t)() 618 617 619 - req := NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/index.json", url, packageName)) 620 - req = AddBasicAuthHeader(req, user.Name) 618 + req := NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/index.json", url, packageName)). 619 + AddBasicAuth(user.Name) 621 620 resp := MakeRequest(t, req, http.StatusOK) 622 621 623 622 var result nuget.PackageVersionsResponse ··· 631 630 t.Run("Delete", func(t *testing.T) { 632 631 defer tests.PrintCurrentTest(t)() 633 632 634 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s", url, packageName, packageVersion)) 635 - req = AddBasicAuthHeader(req, user.Name) 633 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/%s/%s", url, packageName, packageVersion)). 634 + AddBasicAuth(user.Name) 636 635 MakeRequest(t, req, http.StatusNoContent) 637 636 638 637 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeNuGet) ··· 643 642 t.Run("DownloadNotExists", func(t *testing.T) { 644 643 defer tests.PrintCurrentTest(t)() 645 644 646 - req := NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.nupkg", url, packageName, packageVersion, packageName, packageVersion)) 647 - req = AddBasicAuthHeader(req, user.Name) 645 + req := NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.nupkg", url, packageName, packageVersion, packageName, packageVersion)). 646 + AddBasicAuth(user.Name) 648 647 MakeRequest(t, req, http.StatusNotFound) 649 648 650 - req = NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.snupkg", url, packageName, packageVersion, packageName, packageVersion)) 651 - req = AddBasicAuthHeader(req, user.Name) 649 + req = NewRequest(t, "GET", fmt.Sprintf("%s/package/%s/%s/%s.%s.snupkg", url, packageName, packageVersion, packageName, packageVersion)). 650 + AddBasicAuth(user.Name) 652 651 MakeRequest(t, req, http.StatusNotFound) 653 652 }) 654 653 655 654 t.Run("DeleteNotExists", func(t *testing.T) { 656 655 defer tests.PrintCurrentTest(t)() 657 656 658 - req := NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s", url, packageName, packageVersion)) 659 - req = AddBasicAuthHeader(req, user.Name) 657 + req := NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s", url, packageName, packageVersion)). 658 + AddBasicAuth(user.Name) 660 659 MakeRequest(t, req, http.StatusNotFound) 661 660 }) 662 661 }
+7 -7
tests/integration/api_packages_pub_test.go
··· 66 66 req := NewRequest(t, "GET", uploadURL) 67 67 MakeRequest(t, req, http.StatusUnauthorized) 68 68 69 - req = NewRequest(t, "GET", uploadURL) 70 - addTokenAuthHeader(req, token) 69 + req = NewRequest(t, "GET", uploadURL). 70 + AddTokenAuth(token) 71 71 resp := MakeRequest(t, req, http.StatusOK) 72 72 73 73 type UploadRequest struct { ··· 88 88 89 89 _ = writer.Close() 90 90 91 - req := NewRequestWithBody(t, "POST", url, body) 92 - req.Header.Add("Content-Type", writer.FormDataContentType()) 93 - addTokenAuthHeader(req, token) 91 + req := NewRequestWithBody(t, "POST", url, body). 92 + SetHeader("Content-Type", writer.FormDataContentType()). 93 + AddTokenAuth(token) 94 94 return MakeRequest(t, req, expectedStatus) 95 95 } 96 96 97 97 resp = uploadFile(t, result.URL, content, http.StatusNoContent) 98 98 99 - req = NewRequest(t, "GET", resp.Header().Get("Location")) 100 - addTokenAuthHeader(req, token) 99 + req = NewRequest(t, "GET", resp.Header().Get("Location")). 100 + AddTokenAuth(token) 101 101 MakeRequest(t, req, http.StatusOK) 102 102 103 103 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypePub)
+7 -7
tests/integration/api_packages_pypi_test.go
··· 54 54 55 55 _ = writer.Close() 56 56 57 - req := NewRequestWithBody(t, "POST", root, body) 58 - req.Header.Add("Content-Type", writer.FormDataContentType()) 59 - req = AddBasicAuthHeader(req, user.Name) 57 + req := NewRequestWithBody(t, "POST", root, body). 58 + SetHeader("Content-Type", writer.FormDataContentType()). 59 + AddBasicAuth(user.Name) 60 60 MakeRequest(t, req, expectedStatus) 61 61 } 62 62 ··· 137 137 defer tests.PrintCurrentTest(t)() 138 138 139 139 downloadFile := func(filename string) { 140 - req := NewRequest(t, "GET", fmt.Sprintf("%s/files/%s/%s/%s", root, packageName, packageVersion, filename)) 141 - req = AddBasicAuthHeader(req, user.Name) 140 + req := NewRequest(t, "GET", fmt.Sprintf("%s/files/%s/%s/%s", root, packageName, packageVersion, filename)). 141 + AddBasicAuth(user.Name) 142 142 resp := MakeRequest(t, req, http.StatusOK) 143 143 144 144 assert.Equal(t, []byte(content), resp.Body.Bytes()) ··· 156 156 t.Run("PackageMetadata", func(t *testing.T) { 157 157 defer tests.PrintCurrentTest(t)() 158 158 159 - req := NewRequest(t, "GET", fmt.Sprintf("%s/simple/%s", root, packageName)) 160 - req = AddBasicAuthHeader(req, user.Name) 159 + req := NewRequest(t, "GET", fmt.Sprintf("%s/simple/%s", root, packageName)). 160 + AddBasicAuth(user.Name) 161 161 resp := MakeRequest(t, req, http.StatusOK) 162 162 163 163 htmlDoc := NewHTMLParser(t, resp.Body)
+8 -8
tests/integration/api_packages_rpm_test.go
··· 105 105 req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)) 106 106 MakeRequest(t, req, http.StatusUnauthorized) 107 107 108 - req = NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)) 109 - req = AddBasicAuthHeader(req, user.Name) 108 + req = NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)). 109 + AddBasicAuth(user.Name) 110 110 MakeRequest(t, req, http.StatusCreated) 111 111 112 112 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeRpm) ··· 130 130 assert.NoError(t, err) 131 131 assert.Equal(t, int64(len(content)), pb.Size) 132 132 133 - req = NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)) 134 - req = AddBasicAuthHeader(req, user.Name) 133 + req = NewRequestWithBody(t, "PUT", url, bytes.NewReader(content)). 134 + AddBasicAuth(user.Name) 135 135 MakeRequest(t, req, http.StatusConflict) 136 136 }) 137 137 ··· 404 404 req := NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s/%s", rootURL, packageName, packageVersion, packageArchitecture)) 405 405 MakeRequest(t, req, http.StatusUnauthorized) 406 406 407 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s/%s", rootURL, packageName, packageVersion, packageArchitecture)) 408 - req = AddBasicAuthHeader(req, user.Name) 407 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s/%s", rootURL, packageName, packageVersion, packageArchitecture)). 408 + AddBasicAuth(user.Name) 409 409 MakeRequest(t, req, http.StatusNoContent) 410 410 411 411 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeRpm) 412 412 assert.NoError(t, err) 413 413 assert.Empty(t, pvs) 414 414 415 - req = NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s/%s", rootURL, packageName, packageVersion, packageArchitecture)) 416 - req = AddBasicAuthHeader(req, user.Name) 415 + req = NewRequest(t, "DELETE", fmt.Sprintf("%s/package/%s/%s/%s", rootURL, packageName, packageVersion, packageArchitecture)). 416 + AddBasicAuth(user.Name) 417 417 MakeRequest(t, req, http.StatusNotFound) 418 418 }) 419 419 }
+11 -11
tests/integration/api_packages_rubygems_test.go
··· 115 115 root := fmt.Sprintf("/api/packages/%s/rubygems", user.Name) 116 116 117 117 uploadFile := func(t *testing.T, expectedStatus int) { 118 - req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/api/v1/gems", root), bytes.NewReader(gemContent)) 119 - req = AddBasicAuthHeader(req, user.Name) 118 + req := NewRequestWithBody(t, "POST", fmt.Sprintf("%s/api/v1/gems", root), bytes.NewReader(gemContent)). 119 + AddBasicAuth(user.Name) 120 120 MakeRequest(t, req, expectedStatus) 121 121 } 122 122 ··· 156 156 t.Run("Download", func(t *testing.T) { 157 157 defer tests.PrintCurrentTest(t)() 158 158 159 - req := NewRequest(t, "GET", fmt.Sprintf("%s/gems/%s", root, packageFilename)) 160 - req = AddBasicAuthHeader(req, user.Name) 159 + req := NewRequest(t, "GET", fmt.Sprintf("%s/gems/%s", root, packageFilename)). 160 + AddBasicAuth(user.Name) 161 161 resp := MakeRequest(t, req, http.StatusOK) 162 162 163 163 assert.Equal(t, gemContent, resp.Body.Bytes()) ··· 171 171 t.Run("DownloadGemspec", func(t *testing.T) { 172 172 defer tests.PrintCurrentTest(t)() 173 173 174 - req := NewRequest(t, "GET", fmt.Sprintf("%s/quick/Marshal.4.8/%sspec.rz", root, packageFilename)) 175 - req = AddBasicAuthHeader(req, user.Name) 174 + req := NewRequest(t, "GET", fmt.Sprintf("%s/quick/Marshal.4.8/%sspec.rz", root, packageFilename)). 175 + AddBasicAuth(user.Name) 176 176 resp := MakeRequest(t, req, http.StatusOK) 177 177 178 178 b, _ := base64.StdEncoding.DecodeString(`eJxi4Si1EndPzbWyCi5ITc5My0xOLMnMz2M8zMIRLeGpxGWsZ6RnzGbF5hqSyempxJWeWZKayGbN ··· 191 191 defer tests.PrintCurrentTest(t)() 192 192 193 193 enumeratePackages := func(t *testing.T, endpoint string, expectedContent []byte) { 194 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s", root, endpoint)) 195 - req = AddBasicAuthHeader(req, user.Name) 194 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s", root, endpoint)). 195 + AddBasicAuth(user.Name) 196 196 resp := MakeRequest(t, req, http.StatusOK) 197 197 198 198 assert.Equal(t, expectedContent, resp.Body.Bytes()) ··· 215 215 writer.WriteField("version", packageVersion) 216 216 writer.Close() 217 217 218 - req := NewRequestWithBody(t, "DELETE", fmt.Sprintf("%s/api/v1/gems/yank", root), &body) 219 - req.Header.Add("Content-Type", writer.FormDataContentType()) 220 - req = AddBasicAuthHeader(req, user.Name) 218 + req := NewRequestWithBody(t, "DELETE", fmt.Sprintf("%s/api/v1/gems/yank", root), &body). 219 + SetHeader("Content-Type", writer.FormDataContentType()). 220 + AddBasicAuth(user.Name) 221 221 MakeRequest(t, req, http.StatusOK) 222 222 223 223 pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeRubyGems)
+35 -35
tests/integration/api_packages_swift_test.go
··· 62 62 assert.Equal(t, "application/problem+json", resp.Header().Get("Content-Type")) 63 63 } 64 64 65 - req := NewRequestWithBody(t, "PUT", url+"/scope/package/1.0.0", strings.NewReader("")) 66 - req = AddBasicAuthHeader(req, user.Name) 67 - req.Header.Add("Accept", "application/unknown") 65 + req := NewRequestWithBody(t, "PUT", url+"/scope/package/1.0.0", strings.NewReader("")). 66 + AddBasicAuth(user.Name). 67 + SetHeader("Accept", "application/unknown") 68 68 resp := MakeRequest(t, req, http.StatusBadRequest) 69 69 70 70 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 87 87 88 88 mpw.Close() 89 89 90 - req := NewRequestWithBody(t, "PUT", url, &body) 91 - req.Header.Add("Content-Type", mpw.FormDataContentType()) 92 - req.Header.Add("Accept", swift_router.AcceptJSON) 93 - req = AddBasicAuthHeader(req, user.Name) 90 + req := NewRequestWithBody(t, "PUT", url, &body). 91 + SetHeader("Content-Type", mpw.FormDataContentType()). 92 + SetHeader("Accept", swift_router.AcceptJSON). 93 + AddBasicAuth(user.Name) 94 94 MakeRequest(t, req, expectedStatus) 95 95 } 96 96 ··· 106 106 } 107 107 108 108 for _, triple := range []string{"/sc_ope/package/1.0.0", "/scope/pack~age/1.0.0", "/scope/package/1_0.0"} { 109 - req := NewRequestWithBody(t, "PUT", url+triple, bytes.NewReader([]byte{})) 110 - req = AddBasicAuthHeader(req, user.Name) 109 + req := NewRequestWithBody(t, "PUT", url+triple, bytes.NewReader([]byte{})). 110 + AddBasicAuth(user.Name) 111 111 resp := MakeRequest(t, req, http.StatusBadRequest) 112 112 113 113 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 168 168 t.Run("Download", func(t *testing.T) { 169 169 defer tests.PrintCurrentTest(t)() 170 170 171 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/%s.zip", url, packageScope, packageName, packageVersion)) 172 - req = AddBasicAuthHeader(req, user.Name) 173 - req.Header.Add("Accept", swift_router.AcceptZip) 171 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/%s.zip", url, packageScope, packageName, packageVersion)). 172 + AddBasicAuth(user.Name). 173 + SetHeader("Accept", swift_router.AcceptZip) 174 174 resp := MakeRequest(t, req, http.StatusOK) 175 175 176 176 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 188 188 t.Run("EnumeratePackageVersions", func(t *testing.T) { 189 189 defer tests.PrintCurrentTest(t)() 190 190 191 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s", url, packageScope, packageName)) 192 - req = AddBasicAuthHeader(req, user.Name) 193 - req.Header.Add("Accept", swift_router.AcceptJSON) 191 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s", url, packageScope, packageName)). 192 + AddBasicAuth(user.Name). 193 + SetHeader("Accept", swift_router.AcceptJSON) 194 194 resp := MakeRequest(t, req, http.StatusOK) 195 195 196 196 versionURL := setting.AppURL + url[1:] + fmt.Sprintf("/%s/%s/%s", packageScope, packageName, packageVersion) ··· 207 207 assert.Contains(t, result.Releases, packageVersion) 208 208 assert.Equal(t, versionURL, result.Releases[packageVersion].URL) 209 209 210 - req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.json", url, packageScope, packageName)) 211 - req = AddBasicAuthHeader(req, user.Name) 210 + req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.json", url, packageScope, packageName)). 211 + AddBasicAuth(user.Name) 212 212 resp = MakeRequest(t, req, http.StatusOK) 213 213 214 214 assert.Equal(t, body, resp.Body.String()) ··· 217 217 t.Run("PackageVersionMetadata", func(t *testing.T) { 218 218 defer tests.PrintCurrentTest(t)() 219 219 220 - req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/%s", url, packageScope, packageName, packageVersion)) 221 - req = AddBasicAuthHeader(req, user.Name) 222 - req.Header.Add("Accept", swift_router.AcceptJSON) 220 + req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/%s", url, packageScope, packageName, packageVersion)). 221 + AddBasicAuth(user.Name). 222 + SetHeader("Accept", swift_router.AcceptJSON) 223 223 resp := MakeRequest(t, req, http.StatusOK) 224 224 225 225 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 249 249 assert.Equal(t, "Swift", result.Metadata.ProgrammingLanguage.Name) 250 250 assert.Equal(t, packageAuthor, result.Metadata.Author.GivenName) 251 251 252 - req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/%s.json", url, packageScope, packageName, packageVersion)) 253 - req = AddBasicAuthHeader(req, user.Name) 252 + req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s/%s.json", url, packageScope, packageName, packageVersion)). 253 + AddBasicAuth(user.Name) 254 254 resp = MakeRequest(t, req, http.StatusOK) 255 255 256 256 assert.Equal(t, body, resp.Body.String()) ··· 262 262 t.Run("Default", func(t *testing.T) { 263 263 defer tests.PrintCurrentTest(t)() 264 264 265 - req := NewRequest(t, "GET", manifestURL) 266 - req = AddBasicAuthHeader(req, user.Name) 267 - req.Header.Add("Accept", swift_router.AcceptSwift) 265 + req := NewRequest(t, "GET", manifestURL). 266 + AddBasicAuth(user.Name). 267 + SetHeader("Accept", swift_router.AcceptSwift) 268 268 resp := MakeRequest(t, req, http.StatusOK) 269 269 270 270 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 275 275 t.Run("DifferentVersion", func(t *testing.T) { 276 276 defer tests.PrintCurrentTest(t)() 277 277 278 - req := NewRequest(t, "GET", manifestURL+"?swift-version=5.6") 279 - req = AddBasicAuthHeader(req, user.Name) 278 + req := NewRequest(t, "GET", manifestURL+"?swift-version=5.6"). 279 + AddBasicAuth(user.Name) 280 280 resp := MakeRequest(t, req, http.StatusOK) 281 281 282 282 assert.Equal(t, "1", resp.Header().Get("Content-Version")) 283 283 assert.Equal(t, "text/x-swift", resp.Header().Get("Content-Type")) 284 284 assert.Equal(t, contentManifest2, resp.Body.String()) 285 285 286 - req = NewRequest(t, "GET", manifestURL+"?swift-version=5.6.0") 287 - req = AddBasicAuthHeader(req, user.Name) 286 + req = NewRequest(t, "GET", manifestURL+"?swift-version=5.6.0"). 287 + AddBasicAuth(user.Name) 288 288 MakeRequest(t, req, http.StatusOK) 289 289 }) 290 290 291 291 t.Run("Redirect", func(t *testing.T) { 292 292 defer tests.PrintCurrentTest(t)() 293 293 294 - req := NewRequest(t, "GET", manifestURL+"?swift-version=1.0") 295 - req = AddBasicAuthHeader(req, user.Name) 294 + req := NewRequest(t, "GET", manifestURL+"?swift-version=1.0"). 295 + AddBasicAuth(user.Name) 296 296 resp := MakeRequest(t, req, http.StatusSeeOther) 297 297 298 298 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 303 303 t.Run("LookupPackageIdentifiers", func(t *testing.T) { 304 304 defer tests.PrintCurrentTest(t)() 305 305 306 - req := NewRequest(t, "GET", url+"/identifiers") 307 - req.Header.Add("Accept", swift_router.AcceptJSON) 306 + req := NewRequest(t, "GET", url+"/identifiers"). 307 + SetHeader("Accept", swift_router.AcceptJSON) 308 308 resp := MakeRequest(t, req, http.StatusBadRequest) 309 309 310 310 assert.Equal(t, "1", resp.Header().Get("Content-Version")) ··· 313 313 req = NewRequest(t, "GET", url+"/identifiers?url=https://unknown.host/") 314 314 MakeRequest(t, req, http.StatusNotFound) 315 315 316 - req = NewRequest(t, "GET", url+"/identifiers?url="+packageRepositoryURL) 317 - req.Header.Add("Accept", swift_router.AcceptJSON) 316 + req = NewRequest(t, "GET", url+"/identifiers?url="+packageRepositoryURL). 317 + SetHeader("Accept", swift_router.AcceptJSON) 318 318 resp = MakeRequest(t, req, http.StatusOK) 319 319 320 320 var result *swift_router.LookupPackageIdentifiersResponse
+38 -27
tests/integration/api_packages_test.go
··· 41 41 filename := "file.bin" 42 42 43 43 url := fmt.Sprintf("/api/packages/%s/generic/%s/%s/%s", user.Name, packageName, packageVersion, filename) 44 - req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{})) 45 - AddBasicAuthHeader(req, user.Name) 44 + req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{})). 45 + AddBasicAuth(user.Name) 46 46 MakeRequest(t, req, http.StatusCreated) 47 47 48 48 t.Run("ListPackages", func(t *testing.T) { 49 49 defer tests.PrintCurrentTest(t)() 50 50 51 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s?token=%s", user.Name, tokenReadPackage)) 51 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s", user.Name)). 52 + AddTokenAuth(tokenReadPackage) 52 53 resp := MakeRequest(t, req, http.StatusOK) 53 54 54 55 var apiPackages []*api.Package ··· 65 66 t.Run("GetPackage", func(t *testing.T) { 66 67 defer tests.PrintCurrentTest(t)() 67 68 68 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/dummy/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 69 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/dummy/%s/%s", user.Name, packageName, packageVersion)). 70 + AddTokenAuth(tokenReadPackage) 69 71 MakeRequest(t, req, http.StatusNotFound) 70 72 71 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 73 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s", user.Name, packageName, packageVersion)). 74 + AddTokenAuth(tokenReadPackage) 72 75 resp := MakeRequest(t, req, http.StatusOK) 73 76 74 77 var p *api.Package ··· 87 90 assert.NoError(t, err) 88 91 89 92 // no repository link 90 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 93 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s", user.Name, packageName, packageVersion)). 94 + AddTokenAuth(tokenReadPackage) 91 95 resp := MakeRequest(t, req, http.StatusOK) 92 96 93 97 var ap1 *api.Package ··· 97 101 // link to public repository 98 102 assert.NoError(t, packages_model.SetRepositoryLink(db.DefaultContext, p.ID, 1)) 99 103 100 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 104 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s", user.Name, packageName, packageVersion)). 105 + AddTokenAuth(tokenReadPackage) 101 106 resp = MakeRequest(t, req, http.StatusOK) 102 107 103 108 var ap2 *api.Package ··· 108 113 // link to private repository 109 114 assert.NoError(t, packages_model.SetRepositoryLink(db.DefaultContext, p.ID, 2)) 110 115 111 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 116 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s", user.Name, packageName, packageVersion)). 117 + AddTokenAuth(tokenReadPackage) 112 118 resp = MakeRequest(t, req, http.StatusOK) 113 119 114 120 var ap3 *api.Package ··· 122 128 t.Run("ListPackageFiles", func(t *testing.T) { 123 129 defer tests.PrintCurrentTest(t)() 124 130 125 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/dummy/%s/%s/files?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 131 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/dummy/%s/%s/files", user.Name, packageName, packageVersion)). 132 + AddTokenAuth(tokenReadPackage) 126 133 MakeRequest(t, req, http.StatusNotFound) 127 134 128 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s/files?token=%s", user.Name, packageName, packageVersion, tokenReadPackage)) 135 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s/files", user.Name, packageName, packageVersion)). 136 + AddTokenAuth(tokenReadPackage) 129 137 resp := MakeRequest(t, req, http.StatusOK) 130 138 131 139 var files []*api.PackageFile ··· 143 151 t.Run("DeletePackage", func(t *testing.T) { 144 152 defer tests.PrintCurrentTest(t)() 145 153 146 - req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/packages/%s/dummy/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenDeletePackage)) 154 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/packages/%s/dummy/%s/%s", user.Name, packageName, packageVersion)). 155 + AddTokenAuth(tokenDeletePackage) 147 156 MakeRequest(t, req, http.StatusNotFound) 148 157 149 - req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s?token=%s", user.Name, packageName, packageVersion, tokenDeletePackage)) 158 + req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/packages/%s/generic/%s/%s", user.Name, packageName, packageVersion)). 159 + AddTokenAuth(tokenDeletePackage) 150 160 MakeRequest(t, req, http.StatusNoContent) 151 161 }) 152 162 } ··· 170 180 url := fmt.Sprintf("/api/packages/%s/generic/test-package/1.0/%s.bin", owner.Name, filename) 171 181 req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})) 172 182 if doer != nil { 173 - AddBasicAuthHeader(req, doer.Name) 183 + req.AddBasicAuth(doer.Name) 174 184 } 175 185 MakeRequest(t, req, expectedStatus) 176 186 } ··· 179 189 url := fmt.Sprintf("/api/packages/%s/generic/test-package/1.0/admin.bin", owner.Name) 180 190 req := NewRequest(t, "GET", url) 181 191 if doer != nil { 182 - AddBasicAuthHeader(req, doer.Name) 192 + req.AddBasicAuth(doer.Name) 183 193 } 184 194 MakeRequest(t, req, expectedStatus) 185 195 } ··· 374 384 {limitedOrgNoMember, http.StatusOK}, 375 385 {publicOrgNoMember, http.StatusOK}, 376 386 } { 377 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s?token=%s", target.Owner.Name, tokenReadPackage)) 387 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/packages/%s", target.Owner.Name)). 388 + AddTokenAuth(tokenReadPackage) 378 389 MakeRequest(t, req, target.ExpectedStatus) 379 390 } 380 391 }) ··· 396 407 397 408 uploadPackage := func(doer *user_model.User, version string, expectedStatus int) { 398 409 url := fmt.Sprintf("/api/packages/%s/generic/test-package/%s/file.bin", user.Name, version) 399 - req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})) 400 - AddBasicAuthHeader(req, doer.Name) 410 + req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})). 411 + AddBasicAuth(doer.Name) 401 412 MakeRequest(t, req, expectedStatus) 402 413 } 403 414 ··· 424 435 425 436 uploadBlob := func(doer *user_model.User, data string, expectedStatus int) { 426 437 url := fmt.Sprintf("/v2/%s/quota-test/blobs/uploads?digest=sha256:%x", user.Name, sha256.Sum256([]byte(data))) 427 - req := NewRequestWithBody(t, "POST", url, strings.NewReader(data)) 428 - AddBasicAuthHeader(req, doer.Name) 438 + req := NewRequestWithBody(t, "POST", url, strings.NewReader(data)). 439 + AddBasicAuth(doer.Name) 429 440 MakeRequest(t, req, expectedStatus) 430 441 } 431 442 ··· 454 465 // Upload and delete a generic package and upload a container blob 455 466 data, _ := util.CryptoRandomBytes(5) 456 467 url := fmt.Sprintf("/api/packages/%s/generic/cleanup-test/1.1.1/file.bin", user.Name) 457 - req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(data)) 458 - AddBasicAuthHeader(req, user.Name) 468 + req := NewRequestWithBody(t, "PUT", url, bytes.NewReader(data)). 469 + AddBasicAuth(user.Name) 459 470 MakeRequest(t, req, http.StatusCreated) 460 471 461 - req = NewRequest(t, "DELETE", url) 462 - AddBasicAuthHeader(req, user.Name) 472 + req = NewRequest(t, "DELETE", url). 473 + AddBasicAuth(user.Name) 463 474 MakeRequest(t, req, http.StatusNoContent) 464 475 465 476 data, _ = util.CryptoRandomBytes(5) 466 477 url = fmt.Sprintf("/v2/%s/cleanup-test/blobs/uploads?digest=sha256:%x", user.Name, sha256.Sum256(data)) 467 - req = NewRequestWithBody(t, "POST", url, bytes.NewReader(data)) 468 - AddBasicAuthHeader(req, user.Name) 478 + req = NewRequestWithBody(t, "POST", url, bytes.NewReader(data)). 479 + AddBasicAuth(user.Name) 469 480 MakeRequest(t, req, http.StatusCreated) 470 481 471 482 pbs, err := packages_model.FindExpiredUnreferencedBlobs(db.DefaultContext, duration) ··· 592 603 593 604 for _, v := range c.Versions { 594 605 url := fmt.Sprintf("/api/packages/%s/generic/package/%s/file.bin", user.Name, v.Version) 595 - req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})) 596 - AddBasicAuthHeader(req, user.Name) 606 + req := NewRequestWithBody(t, "PUT", url, bytes.NewReader([]byte{1})). 607 + AddBasicAuth(user.Name) 597 608 MakeRequest(t, req, http.StatusCreated) 598 609 599 610 if v.Created != 0 {
+6 -6
tests/integration/api_packages_vagrant_test.go
··· 64 64 req := NewRequest(t, "GET", authenticateURL) 65 65 MakeRequest(t, req, http.StatusUnauthorized) 66 66 67 - req = NewRequest(t, "GET", authenticateURL) 68 - addTokenAuthHeader(req, token) 67 + req = NewRequest(t, "GET", authenticateURL). 68 + AddTokenAuth(token) 69 69 MakeRequest(t, req, http.StatusOK) 70 70 }) 71 71 ··· 82 82 req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)) 83 83 MakeRequest(t, req, http.StatusUnauthorized) 84 84 85 - req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)) 86 - addTokenAuthHeader(req, token) 85 + req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)). 86 + AddTokenAuth(token) 87 87 MakeRequest(t, req, http.StatusCreated) 88 88 89 89 req = NewRequest(t, "HEAD", boxURL) ··· 111 111 assert.NoError(t, err) 112 112 assert.Equal(t, int64(len(content)), pb.Size) 113 113 114 - req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)) 115 - addTokenAuthHeader(req, token) 114 + req = NewRequestWithBody(t, "PUT", uploadURL, bytes.NewReader(content)). 115 + AddTokenAuth(token) 116 116 MakeRequest(t, req, http.StatusConflict) 117 117 }) 118 118
+52 -43
tests/integration/api_pull_review_test.go
··· 29 29 // test ListPullReviews 30 30 session := loginUser(t, "user2") 31 31 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 32 - req := NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token) 32 + req := NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews", repo.OwnerName, repo.Name, pullIssue.Index). 33 + AddTokenAuth(token) 33 34 resp := MakeRequest(t, req, http.StatusOK) 34 35 35 36 var reviews []*api.PullReview ··· 54 55 assert.True(t, reviews[5].Official) 55 56 56 57 // test GetPullReview 57 - req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, reviews[3].ID, token) 58 + req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, reviews[3].ID). 59 + AddTokenAuth(token) 58 60 resp = MakeRequest(t, req, http.StatusOK) 59 61 var review api.PullReview 60 62 DecodeJSON(t, resp, &review) 61 63 assert.EqualValues(t, *reviews[3], review) 62 64 63 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls/%d/reviews/%d?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, reviews[5].ID, token) 65 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, reviews[5].ID). 66 + AddTokenAuth(token) 64 67 resp = MakeRequest(t, req, http.StatusOK) 65 68 DecodeJSON(t, resp, &review) 66 69 assert.EqualValues(t, *reviews[5], review) 67 70 68 71 // test GetPullReviewComments 69 72 comment := unittest.AssertExistsAndLoadBean(t, &issues_model.Comment{ID: 7}) 70 - req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d/comments?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, 10, token) 73 + req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d/comments", repo.OwnerName, repo.Name, pullIssue.Index, 10). 74 + AddTokenAuth(token) 71 75 resp = MakeRequest(t, req, http.StatusOK) 72 76 var reviewComments []*api.PullReviewComment 73 77 DecodeJSON(t, resp, &reviewComments) ··· 79 83 assert.EqualValues(t, comment.HTMLURL(db.DefaultContext), reviewComments[0].HTMLURL) 80 84 81 85 // test CreatePullReview 82 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{ 86 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews", repo.OwnerName, repo.Name, pullIssue.Index), &api.CreatePullReviewOptions{ 83 87 Body: "body1", 84 88 // Event: "" # will result in PENDING 85 89 Comments: []api.CreatePullReviewComment{ ··· 100 104 NewLineNum: 1, 101 105 }, 102 106 }, 103 - }) 107 + }).AddTokenAuth(token) 104 108 resp = MakeRequest(t, req, http.StatusOK) 105 109 DecodeJSON(t, resp, &review) 106 110 assert.EqualValues(t, 6, review.ID) ··· 108 112 assert.EqualValues(t, 3, review.CodeCommentsCount) 109 113 110 114 // test SubmitPullReview 111 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, review.ID, token), &api.SubmitPullReviewOptions{ 115 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, review.ID), &api.SubmitPullReviewOptions{ 112 116 Event: "APPROVED", 113 117 Body: "just two nits", 114 - }) 118 + }).AddTokenAuth(token) 115 119 resp = MakeRequest(t, req, http.StatusOK) 116 120 DecodeJSON(t, resp, &review) 117 121 assert.EqualValues(t, 6, review.ID) ··· 119 123 assert.EqualValues(t, 3, review.CodeCommentsCount) 120 124 121 125 // test dismiss review 122 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d/dismissals?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, review.ID, token), &api.DismissPullReviewOptions{ 126 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d/dismissals", repo.OwnerName, repo.Name, pullIssue.Index, review.ID), &api.DismissPullReviewOptions{ 123 127 Message: "test", 124 - }) 128 + }).AddTokenAuth(token) 125 129 resp = MakeRequest(t, req, http.StatusOK) 126 130 DecodeJSON(t, resp, &review) 127 131 assert.EqualValues(t, 6, review.ID) 128 132 assert.True(t, review.Dismissed) 129 133 130 134 // test dismiss review 131 - req = NewRequest(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d/undismissals?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, review.ID, token)) 135 + req = NewRequest(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews/%d/undismissals", repo.OwnerName, repo.Name, pullIssue.Index, review.ID)). 136 + AddTokenAuth(token) 132 137 resp = MakeRequest(t, req, http.StatusOK) 133 138 DecodeJSON(t, resp, &review) 134 139 assert.EqualValues(t, 6, review.ID) 135 140 assert.False(t, review.Dismissed) 136 141 137 142 // test DeletePullReview 138 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{ 143 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews", repo.OwnerName, repo.Name, pullIssue.Index), &api.CreatePullReviewOptions{ 139 144 Body: "just a comment", 140 145 Event: "COMMENT", 141 - }) 146 + }).AddTokenAuth(token) 142 147 resp = MakeRequest(t, req, http.StatusOK) 143 148 DecodeJSON(t, resp, &review) 144 149 assert.EqualValues(t, "COMMENT", review.State) 145 150 assert.EqualValues(t, 0, review.CodeCommentsCount) 146 - req = NewRequestf(t, http.MethodDelete, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, review.ID, token) 151 + req = NewRequestf(t, http.MethodDelete, "/api/v1/repos/%s/%s/pulls/%d/reviews/%d", repo.OwnerName, repo.Name, pullIssue.Index, review.ID). 152 + AddTokenAuth(token) 147 153 MakeRequest(t, req, http.StatusNoContent) 148 154 149 155 // test CreatePullReview Comment without body but with comments 150 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{ 156 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews", repo.OwnerName, repo.Name, pullIssue.Index), &api.CreatePullReviewOptions{ 151 157 // Body: "", 152 158 Event: "COMMENT", 153 159 Comments: []api.CreatePullReviewComment{ ··· 163 169 NewLineNum: 0, 164 170 }, 165 171 }, 166 - }) 172 + }).AddTokenAuth(token) 167 173 var commentReview api.PullReview 168 174 169 175 resp = MakeRequest(t, req, http.StatusOK) ··· 175 181 176 182 // test CreatePullReview Comment with body but without comments 177 183 commentBody := "This is a body of the comment." 178 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{ 184 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews", repo.OwnerName, repo.Name, pullIssue.Index), &api.CreatePullReviewOptions{ 179 185 Body: commentBody, 180 186 Event: "COMMENT", 181 187 Comments: []api.CreatePullReviewComment{}, 182 - }) 188 + }).AddTokenAuth(token) 183 189 184 190 resp = MakeRequest(t, req, http.StatusOK) 185 191 DecodeJSON(t, resp, &commentReview) ··· 189 195 assert.False(t, commentReview.Dismissed) 190 196 191 197 // test CreatePullReview Comment without body and no comments 192 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.CreatePullReviewOptions{ 198 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/reviews", repo.OwnerName, repo.Name, pullIssue.Index), &api.CreatePullReviewOptions{ 193 199 Body: "", 194 200 Event: "COMMENT", 195 201 Comments: []api.CreatePullReviewComment{}, 196 - }) 202 + }).AddTokenAuth(token) 197 203 resp = MakeRequest(t, req, http.StatusUnprocessableEntity) 198 204 errMap := make(map[string]any) 199 205 json.Unmarshal(resp.Body.Bytes(), &errMap) ··· 205 211 assert.NoError(t, pullIssue12.LoadAttributes(db.DefaultContext)) 206 212 repo3 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: pullIssue12.RepoID}) 207 213 208 - req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token) 214 + req = NewRequestf(t, http.MethodGet, "/api/v1/repos/%s/%s/pulls/%d/reviews", repo3.OwnerName, repo3.Name, pullIssue12.Index). 215 + AddTokenAuth(token) 209 216 resp = MakeRequest(t, req, http.StatusOK) 210 217 DecodeJSON(t, resp, &reviews) 211 218 assert.EqualValues(t, 11, reviews[0].ID) ··· 232 239 // Test add Review Request 233 240 session := loginUser(t, "user2") 234 241 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 235 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.PullReviewRequestOptions{ 242 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo.OwnerName, repo.Name, pullIssue.Index), &api.PullReviewRequestOptions{ 236 243 Reviewers: []string{"user4@example.com", "user8"}, 237 - }) 244 + }).AddTokenAuth(token) 238 245 MakeRequest(t, req, http.StatusCreated) 239 246 240 247 // poster of pr can't be reviewer 241 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.PullReviewRequestOptions{ 248 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo.OwnerName, repo.Name, pullIssue.Index), &api.PullReviewRequestOptions{ 242 249 Reviewers: []string{"user1"}, 243 - }) 250 + }).AddTokenAuth(token) 244 251 MakeRequest(t, req, http.StatusUnprocessableEntity) 245 252 246 253 // test user not exist 247 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.PullReviewRequestOptions{ 254 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo.OwnerName, repo.Name, pullIssue.Index), &api.PullReviewRequestOptions{ 248 255 Reviewers: []string{"testOther"}, 249 - }) 256 + }).AddTokenAuth(token) 250 257 MakeRequest(t, req, http.StatusNotFound) 251 258 252 259 // Test Remove Review Request 253 260 session2 := loginUser(t, "user4") 254 261 token2 := getTokenForLoggedInUser(t, session2, auth_model.AccessTokenScopeWriteRepository) 255 262 256 - req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token2), &api.PullReviewRequestOptions{ 263 + req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo.OwnerName, repo.Name, pullIssue.Index), &api.PullReviewRequestOptions{ 257 264 Reviewers: []string{"user4"}, 258 - }) 265 + }).AddTokenAuth(token2) 259 266 MakeRequest(t, req, http.StatusNoContent) 260 267 261 268 // doer is not admin 262 - req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token2), &api.PullReviewRequestOptions{ 269 + req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo.OwnerName, repo.Name, pullIssue.Index), &api.PullReviewRequestOptions{ 263 270 Reviewers: []string{"user8"}, 264 - }) 271 + }).AddTokenAuth(token2) 265 272 MakeRequest(t, req, http.StatusUnprocessableEntity) 266 273 267 - req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo.OwnerName, repo.Name, pullIssue.Index, token), &api.PullReviewRequestOptions{ 274 + req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo.OwnerName, repo.Name, pullIssue.Index), &api.PullReviewRequestOptions{ 268 275 Reviewers: []string{"user8"}, 269 - }) 276 + }).AddTokenAuth(token) 270 277 MakeRequest(t, req, http.StatusNoContent) 271 278 272 279 // Test team review request ··· 275 282 repo3 := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: pullIssue12.RepoID}) 276 283 277 284 // Test add Team Review Request 278 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token), &api.PullReviewRequestOptions{ 285 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo3.OwnerName, repo3.Name, pullIssue12.Index), &api.PullReviewRequestOptions{ 279 286 TeamReviewers: []string{"team1", "owners"}, 280 - }) 287 + }).AddTokenAuth(token) 281 288 MakeRequest(t, req, http.StatusCreated) 282 289 283 290 // Test add Team Review Request to not allowned 284 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token), &api.PullReviewRequestOptions{ 291 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo3.OwnerName, repo3.Name, pullIssue12.Index), &api.PullReviewRequestOptions{ 285 292 TeamReviewers: []string{"test_team"}, 286 - }) 293 + }).AddTokenAuth(token) 287 294 MakeRequest(t, req, http.StatusUnprocessableEntity) 288 295 289 296 // Test add Team Review Request to not exist 290 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token), &api.PullReviewRequestOptions{ 297 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo3.OwnerName, repo3.Name, pullIssue12.Index), &api.PullReviewRequestOptions{ 291 298 TeamReviewers: []string{"not_exist_team"}, 292 - }) 299 + }).AddTokenAuth(token) 293 300 MakeRequest(t, req, http.StatusNotFound) 294 301 295 302 // Test Remove team Review Request 296 - req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token), &api.PullReviewRequestOptions{ 303 + req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo3.OwnerName, repo3.Name, pullIssue12.Index), &api.PullReviewRequestOptions{ 297 304 TeamReviewers: []string{"team1"}, 298 - }) 305 + }).AddTokenAuth(token) 299 306 MakeRequest(t, req, http.StatusNoContent) 300 307 301 308 // empty request test 302 - req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token), &api.PullReviewRequestOptions{}) 309 + req = NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo3.OwnerName, repo3.Name, pullIssue12.Index), &api.PullReviewRequestOptions{}). 310 + AddTokenAuth(token) 303 311 MakeRequest(t, req, http.StatusCreated) 304 312 305 - req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers?token=%s", repo3.OwnerName, repo3.Name, pullIssue12.Index, token), &api.PullReviewRequestOptions{}) 313 + req = NewRequestWithJSON(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/requested_reviewers", repo3.OwnerName, repo3.Name, pullIssue12.Index), &api.PullReviewRequestOptions{}). 314 + AddTokenAuth(token) 306 315 MakeRequest(t, req, http.StatusNoContent) 307 316 }
+18 -16
tests/integration/api_pull_test.go
··· 31 31 32 32 ctx := NewAPITestContext(t, "user2", repo.Name, auth_model.AccessTokenScopeReadRepository) 33 33 34 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls?state=all&token="+ctx.Token, owner.Name, repo.Name) 34 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/pulls?state=all", owner.Name, repo.Name). 35 + AddTokenAuth(ctx.Token) 35 36 resp := ctx.Session.MakeRequest(t, req, http.StatusOK) 36 37 37 38 var pulls []*api.PullRequest ··· 76 77 77 78 session := loginUser(t, owner.Name) 78 79 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 79 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge?token=%s", owner.Name, repo.Name, pr.Index, token), &forms.MergePullRequestForm{ 80 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/merge", owner.Name, repo.Name, pr.Index), &forms.MergePullRequestForm{ 80 81 MergeMessageField: pr.Issue.Title, 81 82 Do: string(repo_model.MergeStyleMerge), 82 - }) 83 + }).AddTokenAuth(token) 83 84 84 85 MakeRequest(t, req, http.StatusMethodNotAllowed) 85 86 } ··· 95 96 96 97 session := loginUser(t, owner11.Name) 97 98 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 98 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", owner10.Name, repo10.Name, token), &api.CreatePullRequestOption{ 99 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", owner10.Name, repo10.Name), &api.CreatePullRequestOption{ 99 100 Head: fmt.Sprintf("%s:master", owner11.Name), 100 101 Base: "master", 101 102 Title: "create a failure pr", 102 - }) 103 + }).AddTokenAuth(token) 103 104 MakeRequest(t, req, http.StatusCreated) 104 105 MakeRequest(t, req, http.StatusUnprocessableEntity) // second request should fail 105 106 } ··· 126 127 Labels: []int64{5}, 127 128 } 128 129 129 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", owner10.Name, repo10.Name, token), opts) 130 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", owner10.Name, repo10.Name), opts). 131 + AddTokenAuth(token) 130 132 131 133 res := MakeRequest(t, req, http.StatusCreated) 132 134 pull := new(api.PullRequest) ··· 158 160 Base: "master", 159 161 } 160 162 161 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", owner10.Name, repo10.Name, token), opts) 163 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", owner10.Name, repo10.Name), opts). 164 + AddTokenAuth(token) 162 165 MakeRequest(t, req, http.StatusUnprocessableEntity) 163 166 opts.Title = "is required" 164 167 ··· 182 185 183 186 session := loginUser(t, owner10.Name) 184 187 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 185 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", owner10.Name, repo10.Name, token), &api.CreatePullRequestOption{ 188 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", owner10.Name, repo10.Name), &api.CreatePullRequestOption{ 186 189 Head: "develop", 187 190 Base: "master", 188 191 Title: "create a success pr", 189 - }) 192 + }).AddTokenAuth(token) 190 193 pull := new(api.PullRequest) 191 194 resp := MakeRequest(t, req, http.StatusCreated) 192 195 DecodeJSON(t, resp, pull) 193 196 assert.EqualValues(t, "master", pull.Base.Name) 194 197 195 - req = NewRequestWithJSON(t, http.MethodPatch, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d?token=%s", owner10.Name, repo10.Name, pull.Index, token), &api.EditPullRequestOption{ 198 + req = NewRequestWithJSON(t, http.MethodPatch, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d", owner10.Name, repo10.Name, pull.Index), &api.EditPullRequestOption{ 196 199 Base: "feature/1", 197 200 Title: "edit a this pr", 198 - }) 201 + }).AddTokenAuth(token) 199 202 resp = MakeRequest(t, req, http.StatusCreated) 200 203 DecodeJSON(t, resp, pull) 201 204 assert.EqualValues(t, "feature/1", pull.Base.Name) 202 205 203 - req = NewRequestWithJSON(t, http.MethodPatch, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d?token=%s", owner10.Name, repo10.Name, pull.Index, token), &api.EditPullRequestOption{ 206 + req = NewRequestWithJSON(t, http.MethodPatch, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d", owner10.Name, repo10.Name, pull.Index), &api.EditPullRequestOption{ 204 207 Base: "not-exist", 205 - }) 208 + }).AddTokenAuth(token) 206 209 MakeRequest(t, req, http.StatusNotFound) 207 210 } 208 211 209 212 func doAPIGetPullFiles(ctx APITestContext, pr *api.PullRequest, callback func(*testing.T, []*api.ChangedFile)) func(*testing.T) { 210 213 return func(t *testing.T) { 211 - url := fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/files?token=%s", ctx.Username, ctx.Reponame, pr.Index, ctx.Token) 212 - 213 - req := NewRequest(t, http.MethodGet, url) 214 + req := NewRequest(t, http.MethodGet, fmt.Sprintf("/api/v1/repos/%s/%s/pulls/%d/files", ctx.Username, ctx.Reponame, pr.Index)). 215 + AddTokenAuth(ctx.Token) 214 216 if ctx.ExpectedCode == 0 { 215 217 ctx.ExpectedCode = http.StatusOK 216 218 }
+21 -26
tests/integration/api_releases_test.go
··· 59 59 60 60 // test filter 61 61 testFilterByLen := func(auth bool, query url.Values, expectedLength int, msgAndArgs ...string) { 62 + link.RawQuery = query.Encode() 63 + req := NewRequest(t, "GET", link.String()) 62 64 if auth { 63 - query.Set("token", token) 65 + req.AddTokenAuth(token) 64 66 } 65 - link.RawQuery = query.Encode() 66 - resp = MakeRequest(t, NewRequest(t, "GET", link.String()), http.StatusOK) 67 + resp = MakeRequest(t, req, http.StatusOK) 67 68 DecodeJSON(t, resp, &apiReleases) 68 69 assert.Len(t, apiReleases, expectedLength, msgAndArgs) 69 70 } ··· 77 78 } 78 79 79 80 func createNewReleaseUsingAPI(t *testing.T, session *TestSession, token string, owner *user_model.User, repo *repo_model.Repository, name, target, title, desc string) *api.Release { 80 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases?token=%s", 81 - owner.Name, repo.Name, token) 81 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases", owner.Name, repo.Name) 82 82 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateReleaseOption{ 83 83 TagName: name, 84 84 Title: title, ··· 86 86 IsDraft: false, 87 87 IsPrerelease: false, 88 88 Target: target, 89 - }) 89 + }).AddTokenAuth(token) 90 90 resp := MakeRequest(t, req, http.StatusCreated) 91 91 92 92 var newRelease api.Release ··· 122 122 123 123 newRelease := createNewReleaseUsingAPI(t, session, token, owner, repo, "v0.0.1", target, "v0.0.1", "test") 124 124 125 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases/%d?token=%s", 126 - owner.Name, repo.Name, newRelease.ID, token) 127 - req := NewRequest(t, "GET", urlStr) 125 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases/%d", owner.Name, repo.Name, newRelease.ID) 126 + req := NewRequest(t, "GET", urlStr). 127 + AddTokenAuth(token) 128 128 resp := MakeRequest(t, req, http.StatusOK) 129 129 130 130 var release api.Release ··· 141 141 IsDraft: &release.IsDraft, 142 142 IsPrerelease: &release.IsPrerelease, 143 143 Target: release.Target, 144 - }) 144 + }).AddTokenAuth(token) 145 145 resp = MakeRequest(t, req, http.StatusOK) 146 146 147 147 DecodeJSON(t, resp, &newRelease) ··· 189 189 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 190 190 owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 191 191 192 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases/latest", 193 - owner.Name, repo.Name) 194 - 195 - req := NewRequestf(t, "GET", urlStr) 192 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/latest", owner.Name, repo.Name)) 196 193 resp := MakeRequest(t, req, http.StatusOK) 197 194 198 195 var release *api.Release ··· 209 206 210 207 tag := "v1.1" 211 208 212 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", 213 - owner.Name, repo.Name, tag) 214 - 215 - req := NewRequestf(t, "GET", urlStr) 209 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", owner.Name, repo.Name, tag)) 216 210 resp := MakeRequest(t, req, http.StatusOK) 217 211 218 212 var release *api.Release ··· 222 216 223 217 nonexistingtag := "nonexistingtag" 224 218 225 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", 226 - owner.Name, repo.Name, nonexistingtag) 227 - 228 - req = NewRequestf(t, "GET", urlStr) 219 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/%s", owner.Name, repo.Name, nonexistingtag)) 229 220 resp = MakeRequest(t, req, http.StatusNotFound) 230 221 231 222 var err *api.APIError ··· 244 235 createNewReleaseUsingAPI(t, session, token, owner, repo, "release-tag", "", "Release Tag", "test") 245 236 246 237 // delete release 247 - req := NewRequestf(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/release-tag?token=%s", owner.Name, repo.Name, token)) 238 + req := NewRequestf(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/release-tag", owner.Name, repo.Name)). 239 + AddTokenAuth(token) 248 240 _ = MakeRequest(t, req, http.StatusNoContent) 249 241 250 242 // make sure release is deleted 251 - req = NewRequestf(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/release-tag?token=%s", owner.Name, repo.Name, token)) 243 + req = NewRequestf(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/releases/tags/release-tag", owner.Name, repo.Name)). 244 + AddTokenAuth(token) 252 245 _ = MakeRequest(t, req, http.StatusNotFound) 253 246 254 247 // delete release tag too 255 - req = NewRequestf(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/tags/release-tag?token=%s", owner.Name, repo.Name, token)) 248 + req = NewRequestf(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/tags/release-tag", owner.Name, repo.Name)). 249 + AddTokenAuth(token) 256 250 _ = MakeRequest(t, req, http.StatusNoContent) 257 251 } 258 252 ··· 278 272 err = writer.Close() 279 273 assert.NoError(t, err) 280 274 281 - req := NewRequestWithBody(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/releases/%d/assets?name=test-asset&token=%s", owner.Name, repo.Name, r.ID, token), body) 275 + req := NewRequestWithBody(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/releases/%d/assets?name=test-asset", owner.Name, repo.Name, r.ID), body). 276 + AddTokenAuth(token) 282 277 req.Header.Add("Content-Type", writer.FormDataContentType()) 283 278 resp := MakeRequest(t, req, http.StatusCreated) 284 279
+8 -4
tests/integration/api_repo_avatar_test.go
··· 38 38 Image: base64.StdEncoding.EncodeToString(avatar), 39 39 } 40 40 41 - req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/avatar?token=%s", repo.OwnerName, repo.Name, token), &opts) 41 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/avatar", repo.OwnerName, repo.Name), &opts). 42 + AddTokenAuth(token) 42 43 MakeRequest(t, req, http.StatusNoContent) 43 44 44 45 // Test what happens if you don't have a valid Base64 string ··· 46 47 Image: "Invalid", 47 48 } 48 49 49 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/avatar?token=%s", repo.OwnerName, repo.Name, token), &opts) 50 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/avatar", repo.OwnerName, repo.Name), &opts). 51 + AddTokenAuth(token) 50 52 MakeRequest(t, req, http.StatusBadRequest) 51 53 52 54 // Test what happens if you use a file that is not an image ··· 60 62 Image: base64.StdEncoding.EncodeToString(text), 61 63 } 62 64 63 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/avatar?token=%s", repo.OwnerName, repo.Name, token), &opts) 65 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/avatar", repo.OwnerName, repo.Name), &opts). 66 + AddTokenAuth(token) 64 67 MakeRequest(t, req, http.StatusInternalServerError) 65 68 } 66 69 ··· 71 74 user2 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 72 75 token := getUserToken(t, user2.LowerName, auth_model.AccessTokenScopeWriteRepository) 73 76 74 - req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/avatar?token=%s", repo.OwnerName, repo.Name, token)) 77 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/avatar", repo.OwnerName, repo.Name)). 78 + AddTokenAuth(token) 75 79 MakeRequest(t, req, http.StatusNoContent) 76 80 }
+16 -8
tests/integration/api_repo_collaborator_test.go
··· 31 31 testCtx := NewAPITestContext(t, repo2Owner.Name, repo2.Name, auth_model.AccessTokenScopeWriteRepository) 32 32 33 33 t.Run("RepoOwnerShouldBeOwner", func(t *testing.T) { 34 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, repo2Owner.Name, testCtx.Token) 34 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, repo2Owner.Name). 35 + AddTokenAuth(testCtx.Token) 35 36 resp := MakeRequest(t, req, http.StatusOK) 36 37 37 38 var repoPermission api.RepoCollaboratorPermission ··· 43 44 t.Run("CollaboratorWithReadAccess", func(t *testing.T) { 44 45 t.Run("AddUserAsCollaboratorWithReadAccess", doAPIAddCollaborator(testCtx, user4.Name, perm.AccessModeRead)) 45 46 46 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, user4.Name, testCtx.Token) 47 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user4.Name). 48 + AddTokenAuth(testCtx.Token) 47 49 resp := MakeRequest(t, req, http.StatusOK) 48 50 49 51 var repoPermission api.RepoCollaboratorPermission ··· 55 57 t.Run("CollaboratorWithWriteAccess", func(t *testing.T) { 56 58 t.Run("AddUserAsCollaboratorWithWriteAccess", doAPIAddCollaborator(testCtx, user4.Name, perm.AccessModeWrite)) 57 59 58 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, user4.Name, testCtx.Token) 60 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user4.Name). 61 + AddTokenAuth(testCtx.Token) 59 62 resp := MakeRequest(t, req, http.StatusOK) 60 63 61 64 var repoPermission api.RepoCollaboratorPermission ··· 67 70 t.Run("CollaboratorWithAdminAccess", func(t *testing.T) { 68 71 t.Run("AddUserAsCollaboratorWithAdminAccess", doAPIAddCollaborator(testCtx, user4.Name, perm.AccessModeAdmin)) 69 72 70 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, user4.Name, testCtx.Token) 73 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user4.Name). 74 + AddTokenAuth(testCtx.Token) 71 75 resp := MakeRequest(t, req, http.StatusOK) 72 76 73 77 var repoPermission api.RepoCollaboratorPermission ··· 77 81 }) 78 82 79 83 t.Run("CollaboratorNotFound", func(t *testing.T) { 80 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, "non-existent-user", testCtx.Token) 84 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, "non-existent-user"). 85 + AddTokenAuth(testCtx.Token) 81 86 MakeRequest(t, req, http.StatusNotFound) 82 87 }) 83 88 ··· 87 92 _session := loginUser(t, user5.Name) 88 93 _testCtx := NewAPITestContext(t, user5.Name, repo2.Name, auth_model.AccessTokenScopeReadRepository) 89 94 90 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, user5.Name, _testCtx.Token) 95 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user5.Name). 96 + AddTokenAuth(_testCtx.Token) 91 97 resp := _session.MakeRequest(t, req, http.StatusOK) 92 98 93 99 var repoPermission api.RepoCollaboratorPermission ··· 102 108 _session := loginUser(t, user5.Name) 103 109 _testCtx := NewAPITestContext(t, user5.Name, repo2.Name, auth_model.AccessTokenScopeReadRepository) 104 110 105 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, user5.Name, _testCtx.Token) 111 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user5.Name). 112 + AddTokenAuth(_testCtx.Token) 106 113 resp := _session.MakeRequest(t, req, http.StatusOK) 107 114 108 115 var repoPermission api.RepoCollaboratorPermission ··· 118 125 _session := loginUser(t, user10.Name) 119 126 _testCtx := NewAPITestContext(t, user10.Name, repo2.Name, auth_model.AccessTokenScopeReadRepository) 120 127 121 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission?token=%s", repo2Owner.Name, repo2.Name, user11.Name, _testCtx.Token) 128 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/collaborators/%s/permission", repo2Owner.Name, repo2.Name, user11.Name). 129 + AddTokenAuth(_testCtx.Token) 122 130 resp := _session.MakeRequest(t, req, http.StatusOK) 123 131 124 132 var repoPermission api.RepoCollaboratorPermission
+43 -36
tests/integration/api_repo_edit_test.go
··· 155 155 // Test editing a repo1 which user2 owns, changing name and many properties 156 156 origRepoEditOption := getRepoEditOptionFromRepo(repo1) 157 157 repoEditOption := getNewRepoEditOption(origRepoEditOption) 158 - url := fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, repo1.Name, token2) 159 - req := NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 158 + req := NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo1.Name), &repoEditOption). 159 + AddTokenAuth(token2) 160 160 resp := MakeRequest(t, req, http.StatusOK) 161 161 var repo api.Repository 162 162 DecodeJSON(t, resp, &repo) ··· 186 186 } 187 187 *repoEditOption.HasWiki = true 188 188 repoEditOption.ExternalWiki = nil 189 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, *repoEditOption.Name, token2) 190 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 189 + url := fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, *repoEditOption.Name) 190 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 191 + AddTokenAuth(token2) 191 192 resp = MakeRequest(t, req, http.StatusOK) 192 193 DecodeJSON(t, resp, &repo) 193 194 assert.NotNil(t, repo) ··· 209 210 repoEditOption.ExternalWiki = &api.ExternalWiki{ 210 211 ExternalWikiURL: "http://www.somewebsite.com", 211 212 } 212 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 213 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 214 + AddTokenAuth(token2) 213 215 resp = MakeRequest(t, req, http.StatusOK) 214 216 DecodeJSON(t, resp, &repo) 215 217 assert.NotNil(t, repo) ··· 223 225 224 226 repoEditOption.ExternalTracker.ExternalTrackerStyle = "regexp" 225 227 repoEditOption.ExternalTracker.ExternalTrackerRegexpPattern = `(\d+)` 226 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 228 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 229 + AddTokenAuth(token2) 227 230 resp = MakeRequest(t, req, http.StatusOK) 228 231 DecodeJSON(t, resp, &repo) 229 232 assert.NotNil(t, repo) ··· 234 237 235 238 // Do some tests with invalid URL for external tracker and wiki 236 239 repoEditOption.ExternalTracker.ExternalTrackerURL = "htp://www.somewebsite.com" 237 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 240 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 241 + AddTokenAuth(token2) 238 242 MakeRequest(t, req, http.StatusUnprocessableEntity) 239 243 repoEditOption.ExternalTracker.ExternalTrackerURL = "http://www.somewebsite.com" 240 244 repoEditOption.ExternalTracker.ExternalTrackerFormat = "http://www.somewebsite.com/{user/{repo}?issue={index}" 241 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 245 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 246 + AddTokenAuth(token2) 242 247 MakeRequest(t, req, http.StatusUnprocessableEntity) 243 248 repoEditOption.ExternalTracker.ExternalTrackerFormat = "http://www.somewebsite.com/{user}/{repo}?issue={index}" 244 249 repoEditOption.ExternalWiki.ExternalWikiURL = "htp://www.somewebsite.com" 245 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 250 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 251 + AddTokenAuth(token2) 246 252 MakeRequest(t, req, http.StatusUnprocessableEntity) 247 253 248 254 // Test small repo change through API with issue and wiki option not set; They shall not be touched. ··· 251 257 repoEditOption.ExternalTracker = nil 252 258 repoEditOption.HasWiki = nil 253 259 repoEditOption.ExternalWiki = nil 254 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 260 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 261 + AddTokenAuth(token2) 255 262 resp = MakeRequest(t, req, http.StatusOK) 256 263 DecodeJSON(t, resp, &repo) 257 264 assert.NotNil(t, repo) ··· 265 272 assert.NotNil(t, *repo1editedOption.ExternalWiki) 266 273 267 274 // reset repo in db 268 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, *repoEditOption.Name, token2) 269 - req = NewRequestWithJSON(t, "PATCH", url, &origRepoEditOption) 275 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, *repoEditOption.Name), &origRepoEditOption). 276 + AddTokenAuth(token2) 270 277 _ = MakeRequest(t, req, http.StatusOK) 271 278 272 279 // Test editing a non-existing repo 273 280 name := "repodoesnotexist" 274 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, name, token2) 275 - req = NewRequestWithJSON(t, "PATCH", url, &api.EditRepoOption{Name: &name}) 281 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, name), &api.EditRepoOption{Name: &name}). 282 + AddTokenAuth(token2) 276 283 _ = MakeRequest(t, req, http.StatusNotFound) 277 284 278 285 // Test editing repo16 by user4 who does not have write access 279 286 origRepoEditOption = getRepoEditOptionFromRepo(repo16) 280 287 repoEditOption = getNewRepoEditOption(origRepoEditOption) 281 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, repo16.Name, token4) 282 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 288 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo16.Name), &repoEditOption). 289 + AddTokenAuth(token4) 283 290 MakeRequest(t, req, http.StatusNotFound) 284 291 285 292 // Tests a repo with no token given so will fail 286 293 origRepoEditOption = getRepoEditOptionFromRepo(repo16) 287 294 repoEditOption = getNewRepoEditOption(origRepoEditOption) 288 - url = fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo16.Name) 289 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 295 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo16.Name), &repoEditOption) 290 296 _ = MakeRequest(t, req, http.StatusNotFound) 291 297 292 298 // Test using access token for a private repo that the user of the token owns 293 299 origRepoEditOption = getRepoEditOptionFromRepo(repo16) 294 300 repoEditOption = getNewRepoEditOption(origRepoEditOption) 295 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, repo16.Name, token2) 296 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 301 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo16.Name), &repoEditOption). 302 + AddTokenAuth(token2) 297 303 _ = MakeRequest(t, req, http.StatusOK) 298 304 // reset repo in db 299 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, *repoEditOption.Name, token2) 300 - req = NewRequestWithJSON(t, "PATCH", url, &origRepoEditOption) 305 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, *repoEditOption.Name), &origRepoEditOption). 306 + AddTokenAuth(token2) 301 307 _ = MakeRequest(t, req, http.StatusOK) 302 308 303 309 // Test making a repo public that is private ··· 306 312 repoEditOption = &api.EditRepoOption{ 307 313 Private: &bFalse, 308 314 } 309 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, repo16.Name, token2) 310 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 315 + url = fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo16.Name) 316 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 317 + AddTokenAuth(token2) 311 318 _ = MakeRequest(t, req, http.StatusOK) 312 319 repo16 = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 16}) 313 320 assert.False(t, repo16.IsPrivate) 314 321 // Make it private again 315 322 repoEditOption.Private = &bTrue 316 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 323 + req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption). 324 + AddTokenAuth(token2) 317 325 _ = MakeRequest(t, req, http.StatusOK) 318 326 319 327 // Test to change empty repo 320 328 assert.False(t, repo15.IsArchived) 321 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, repo15.Name, token2) 329 + url = fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo15.Name) 322 330 req = NewRequestWithJSON(t, "PATCH", url, &api.EditRepoOption{ 323 331 Archived: &bTrue, 324 - }) 332 + }).AddTokenAuth(token2) 325 333 _ = MakeRequest(t, req, http.StatusOK) 326 334 repo15 = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 15}) 327 335 assert.True(t, repo15.IsArchived) 328 336 req = NewRequestWithJSON(t, "PATCH", url, &api.EditRepoOption{ 329 337 Archived: &bFalse, 330 - }) 338 + }).AddTokenAuth(token2) 331 339 _ = MakeRequest(t, req, http.StatusOK) 332 340 333 341 // Test using org repo "org3/repo3" where user2 is a collaborator 334 342 origRepoEditOption = getRepoEditOptionFromRepo(repo3) 335 343 repoEditOption = getNewRepoEditOption(origRepoEditOption) 336 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", org3.Name, repo3.Name, token2) 337 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 344 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", org3.Name, repo3.Name), &repoEditOption). 345 + AddTokenAuth(token2) 338 346 MakeRequest(t, req, http.StatusOK) 339 347 // reset repo in db 340 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", org3.Name, *repoEditOption.Name, token2) 341 - req = NewRequestWithJSON(t, "PATCH", url, &origRepoEditOption) 348 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", org3.Name, *repoEditOption.Name), &origRepoEditOption). 349 + AddTokenAuth(token2) 342 350 _ = MakeRequest(t, req, http.StatusOK) 343 351 344 352 // Test using org repo "org3/repo3" with no user token 345 353 origRepoEditOption = getRepoEditOptionFromRepo(repo3) 346 354 repoEditOption = getNewRepoEditOption(origRepoEditOption) 347 - url = fmt.Sprintf("/api/v1/repos/%s/%s", org3.Name, repo3.Name) 348 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 355 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", org3.Name, repo3.Name), &repoEditOption) 349 356 MakeRequest(t, req, http.StatusNotFound) 350 357 351 358 // Test using repo "user2/repo1" where user4 is a NOT collaborator 352 359 origRepoEditOption = getRepoEditOptionFromRepo(repo1) 353 360 repoEditOption = getNewRepoEditOption(origRepoEditOption) 354 - url = fmt.Sprintf("/api/v1/repos/%s/%s?token=%s", user2.Name, repo1.Name, token4) 355 - req = NewRequestWithJSON(t, "PATCH", url, &repoEditOption) 361 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/repos/%s/%s", user2.Name, repo1.Name), &repoEditOption). 362 + AddTokenAuth(token4) 356 363 MakeRequest(t, req, http.StatusForbidden) 357 364 }) 358 365 }
+20 -22
tests/integration/api_repo_file_create_test.go
··· 164 164 createFileOptions.BranchName = branch 165 165 fileID++ 166 166 treePath := fmt.Sprintf("new/file%d.txt", fileID) 167 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 168 - req := NewRequestWithJSON(t, "POST", url, &createFileOptions) 167 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). 168 + AddTokenAuth(token2) 169 169 resp := MakeRequest(t, req, http.StatusCreated) 170 170 gitRepo, _ := git.OpenRepository(stdCtx.Background(), repo1.RepoPath()) 171 171 commitID, _ := gitRepo.GetBranchCommitID(createFileOptions.NewBranchName) ··· 191 191 createFileOptions.NewBranchName = "new_branch" 192 192 fileID++ 193 193 treePath := fmt.Sprintf("new/file%d.txt", fileID) 194 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 195 - req := NewRequestWithJSON(t, "POST", url, &createFileOptions) 194 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). 195 + AddTokenAuth(token2) 196 196 resp := MakeRequest(t, req, http.StatusCreated) 197 197 var fileResponse api.FileResponse 198 198 DecodeJSON(t, resp, &fileResponse) ··· 209 209 createFileOptions.Message = "" 210 210 fileID++ 211 211 treePath = fmt.Sprintf("new/file%d.txt", fileID) 212 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 213 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 212 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). 213 + AddTokenAuth(token2) 214 214 resp = MakeRequest(t, req, http.StatusCreated) 215 215 DecodeJSON(t, resp, &fileResponse) 216 216 expectedMessage := "Add " + treePath + "\n" ··· 219 219 // Test trying to create a file that already exists, should fail 220 220 createFileOptions = getCreateFileOptions() 221 221 treePath = "README.md" 222 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 223 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 222 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). 223 + AddTokenAuth(token2) 224 224 resp = MakeRequest(t, req, http.StatusUnprocessableEntity) 225 225 expectedAPIError := context.APIError{ 226 226 Message: "repository file already exists [path: " + treePath + "]", ··· 234 234 createFileOptions = getCreateFileOptions() 235 235 fileID++ 236 236 treePath = fmt.Sprintf("new/file%d.txt", fileID) 237 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) 238 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 237 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &createFileOptions). 238 + AddTokenAuth(token4) 239 239 MakeRequest(t, req, http.StatusNotFound) 240 240 241 241 // Tests a repo with no token given so will fail 242 242 createFileOptions = getCreateFileOptions() 243 243 fileID++ 244 244 treePath = fmt.Sprintf("new/file%d.txt", fileID) 245 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath) 246 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 245 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &createFileOptions) 247 246 MakeRequest(t, req, http.StatusNotFound) 248 247 249 248 // Test using access token for a private repo that the user of the token owns 250 249 createFileOptions = getCreateFileOptions() 251 250 fileID++ 252 251 treePath = fmt.Sprintf("new/file%d.txt", fileID) 253 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token2) 254 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 252 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &createFileOptions). 253 + AddTokenAuth(token2) 255 254 MakeRequest(t, req, http.StatusCreated) 256 255 257 256 // Test using org repo "org3/repo3" where user2 is a collaborator 258 257 createFileOptions = getCreateFileOptions() 259 258 fileID++ 260 259 treePath = fmt.Sprintf("new/file%d.txt", fileID) 261 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", org3.Name, repo3.Name, treePath, token2) 262 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 260 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath), &createFileOptions). 261 + AddTokenAuth(token2) 263 262 MakeRequest(t, req, http.StatusCreated) 264 263 265 264 // Test using org repo "org3/repo3" with no user token 266 265 createFileOptions = getCreateFileOptions() 267 266 fileID++ 268 267 treePath = fmt.Sprintf("new/file%d.txt", fileID) 269 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath) 270 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 268 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath), &createFileOptions) 271 269 MakeRequest(t, req, http.StatusNotFound) 272 270 273 271 // Test using repo "user2/repo1" where user4 is a NOT collaborator 274 272 createFileOptions = getCreateFileOptions() 275 273 fileID++ 276 274 treePath = fmt.Sprintf("new/file%d.txt", fileID) 277 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token4) 278 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 275 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &createFileOptions). 276 + AddTokenAuth(token4) 279 277 MakeRequest(t, req, http.StatusForbidden) 280 278 281 279 // Test creating a file in an empty repository ··· 283 281 createFileOptions = getCreateFileOptions() 284 282 fileID++ 285 283 treePath = fmt.Sprintf("new/file%d.txt", fileID) 286 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, "empty-repo", treePath, token2) 287 - req = NewRequestWithJSON(t, "POST", url, &createFileOptions) 284 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, "empty-repo", treePath), &createFileOptions). 285 + AddTokenAuth(token2) 288 286 resp = MakeRequest(t, req, http.StatusCreated) 289 287 emptyRepo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{OwnerName: "user2", Name: "empty-repo"}) // public repo 290 288 gitRepo, _ := git.OpenRepository(stdCtx.Background(), emptyRepo.RepoPath())
+18 -20
tests/integration/api_repo_file_delete_test.go
··· 64 64 createFile(user2, repo1, treePath) 65 65 deleteFileOptions := getDeleteFileOptions() 66 66 deleteFileOptions.BranchName = branch 67 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 68 - req := NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 67 + req := NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). 68 + AddTokenAuth(token2) 69 69 resp := MakeRequest(t, req, http.StatusOK) 70 70 var fileResponse api.FileResponse 71 71 DecodeJSON(t, resp, &fileResponse) ··· 80 80 deleteFileOptions := getDeleteFileOptions() 81 81 deleteFileOptions.BranchName = repo1.DefaultBranch 82 82 deleteFileOptions.NewBranchName = "new_branch" 83 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 84 - req := NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 83 + req := NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). 84 + AddTokenAuth(token2) 85 85 resp := MakeRequest(t, req, http.StatusOK) 86 86 var fileResponse api.FileResponse 87 87 DecodeJSON(t, resp, &fileResponse) ··· 95 95 createFile(user2, repo1, treePath) 96 96 deleteFileOptions = getDeleteFileOptions() 97 97 deleteFileOptions.Message = "" 98 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 99 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 98 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). 99 + AddTokenAuth(token2) 100 100 resp = MakeRequest(t, req, http.StatusOK) 101 101 DecodeJSON(t, resp, &fileResponse) 102 102 expectedMessage := "Delete " + treePath + "\n" ··· 108 108 createFile(user2, repo1, treePath) 109 109 deleteFileOptions = getDeleteFileOptions() 110 110 deleteFileOptions.SHA = "badsha" 111 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 112 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 111 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). 112 + AddTokenAuth(token2) 113 113 MakeRequest(t, req, http.StatusBadRequest) 114 114 115 115 // Test creating a file in repo16 by user4 who does not have write access ··· 117 117 treePath = fmt.Sprintf("delete/file%d.txt", fileID) 118 118 createFile(user2, repo16, treePath) 119 119 deleteFileOptions = getDeleteFileOptions() 120 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) 121 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 120 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &deleteFileOptions). 121 + AddTokenAuth(token4) 122 122 MakeRequest(t, req, http.StatusNotFound) 123 123 124 124 // Tests a repo with no token given so will fail ··· 126 126 treePath = fmt.Sprintf("delete/file%d.txt", fileID) 127 127 createFile(user2, repo16, treePath) 128 128 deleteFileOptions = getDeleteFileOptions() 129 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath) 130 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 129 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &deleteFileOptions) 131 130 MakeRequest(t, req, http.StatusNotFound) 132 131 133 132 // Test using access token for a private repo that the user of the token owns ··· 135 134 treePath = fmt.Sprintf("delete/file%d.txt", fileID) 136 135 createFile(user2, repo16, treePath) 137 136 deleteFileOptions = getDeleteFileOptions() 138 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token2) 139 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 137 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &deleteFileOptions). 138 + AddTokenAuth(token2) 140 139 MakeRequest(t, req, http.StatusOK) 141 140 142 141 // Test using org repo "org3/repo3" where user2 is a collaborator ··· 144 143 treePath = fmt.Sprintf("delete/file%d.txt", fileID) 145 144 createFile(org3, repo3, treePath) 146 145 deleteFileOptions = getDeleteFileOptions() 147 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", org3.Name, repo3.Name, treePath, token2) 148 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 146 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath), &deleteFileOptions). 147 + AddTokenAuth(token2) 149 148 MakeRequest(t, req, http.StatusOK) 150 149 151 150 // Test using org repo "org3/repo3" with no user token ··· 153 152 treePath = fmt.Sprintf("delete/file%d.txt", fileID) 154 153 createFile(org3, repo3, treePath) 155 154 deleteFileOptions = getDeleteFileOptions() 156 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath) 157 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 155 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath), &deleteFileOptions) 158 156 MakeRequest(t, req, http.StatusNotFound) 159 157 160 158 // Test using repo "user2/repo1" where user4 is a NOT collaborator ··· 162 160 treePath = fmt.Sprintf("delete/file%d.txt", fileID) 163 161 createFile(user2, repo1, treePath) 164 162 deleteFileOptions = getDeleteFileOptions() 165 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token4) 166 - req = NewRequestWithJSON(t, "DELETE", url, &deleteFileOptions) 163 + req = NewRequestWithJSON(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &deleteFileOptions). 164 + AddTokenAuth(token4) 167 165 MakeRequest(t, req, http.StatusForbidden) 168 166 }) 169 167 }
+20 -22
tests/integration/api_repo_file_update_test.go
··· 132 132 createFile(user2, repo1, treePath) 133 133 updateFileOptions := getUpdateFileOptions() 134 134 updateFileOptions.BranchName = branch 135 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 136 - req := NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 135 + req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). 136 + AddTokenAuth(token2) 137 137 resp := MakeRequest(t, req, http.StatusOK) 138 138 gitRepo, _ := git.OpenRepository(stdCtx.Background(), repo1.RepoPath()) 139 139 commitID, _ := gitRepo.GetBranchCommitID(updateFileOptions.NewBranchName) ··· 156 156 fileID++ 157 157 treePath := fmt.Sprintf("update/file%d.txt", fileID) 158 158 createFile(user2, repo1, treePath) 159 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 160 - req := NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 159 + req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). 160 + AddTokenAuth(token2) 161 161 resp := MakeRequest(t, req, http.StatusOK) 162 162 var fileResponse api.FileResponse 163 163 DecodeJSON(t, resp, &fileResponse) ··· 177 177 createFile(user2, repo1, treePath) 178 178 updateFileOptions.FromPath = treePath 179 179 treePath = "rename/" + treePath 180 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 181 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 180 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). 181 + AddTokenAuth(token2) 182 182 resp = MakeRequest(t, req, http.StatusOK) 183 183 DecodeJSON(t, resp, &fileResponse) 184 184 expectedSHA = "08bd14b2e2852529157324de9c226b3364e76136" ··· 195 195 fileID++ 196 196 treePath = fmt.Sprintf("update/file%d.txt", fileID) 197 197 createFile(user2, repo1, treePath) 198 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 199 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 198 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). 199 + AddTokenAuth(token2) 200 200 resp = MakeRequest(t, req, http.StatusOK) 201 201 DecodeJSON(t, resp, &fileResponse) 202 202 expectedMessage := "Update " + treePath + "\n" ··· 209 209 updateFileOptions = getUpdateFileOptions() 210 210 correctSHA := updateFileOptions.SHA 211 211 updateFileOptions.SHA = "badsha" 212 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token2) 213 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 212 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). 213 + AddTokenAuth(token2) 214 214 resp = MakeRequest(t, req, http.StatusUnprocessableEntity) 215 215 expectedAPIError := context.APIError{ 216 216 Message: "sha does not match [given: " + updateFileOptions.SHA + ", expected: " + correctSHA + "]", ··· 225 225 treePath = fmt.Sprintf("update/file%d.txt", fileID) 226 226 createFile(user2, repo16, treePath) 227 227 updateFileOptions = getUpdateFileOptions() 228 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) 229 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 228 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &updateFileOptions). 229 + AddTokenAuth(token4) 230 230 MakeRequest(t, req, http.StatusNotFound) 231 231 232 232 // Tests a repo with no token given so will fail ··· 234 234 treePath = fmt.Sprintf("update/file%d.txt", fileID) 235 235 createFile(user2, repo16, treePath) 236 236 updateFileOptions = getUpdateFileOptions() 237 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath) 238 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 237 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &updateFileOptions) 239 238 MakeRequest(t, req, http.StatusNotFound) 240 239 241 240 // Test using access token for a private repo that the user of the token owns ··· 243 242 treePath = fmt.Sprintf("update/file%d.txt", fileID) 244 243 createFile(user2, repo16, treePath) 245 244 updateFileOptions = getUpdateFileOptions() 246 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token2) 247 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 245 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath), &updateFileOptions). 246 + AddTokenAuth(token2) 248 247 MakeRequest(t, req, http.StatusOK) 249 248 250 249 // Test using org repo "org3/repo3" where user2 is a collaborator ··· 252 251 treePath = fmt.Sprintf("update/file%d.txt", fileID) 253 252 createFile(org3, repo3, treePath) 254 253 updateFileOptions = getUpdateFileOptions() 255 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", org3.Name, repo3.Name, treePath, token2) 256 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 254 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath), &updateFileOptions). 255 + AddTokenAuth(token2) 257 256 MakeRequest(t, req, http.StatusOK) 258 257 259 258 // Test using org repo "org3/repo3" with no user token ··· 261 260 treePath = fmt.Sprintf("update/file%d.txt", fileID) 262 261 createFile(org3, repo3, treePath) 263 262 updateFileOptions = getUpdateFileOptions() 264 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath) 265 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 263 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath), &updateFileOptions) 266 264 MakeRequest(t, req, http.StatusNotFound) 267 265 268 266 // Test using repo "user2/repo1" where user4 is a NOT collaborator ··· 270 268 treePath = fmt.Sprintf("update/file%d.txt", fileID) 271 269 createFile(user2, repo1, treePath) 272 270 updateFileOptions = getUpdateFileOptions() 273 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo1.Name, treePath, token4) 274 - req = NewRequestWithJSON(t, "PUT", url, &updateFileOptions) 271 + req = NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/contents/%s", user2.Name, repo1.Name, treePath), &updateFileOptions). 272 + AddTokenAuth(token4) 275 273 MakeRequest(t, req, http.StatusForbidden) 276 274 }) 277 275 }
+21 -19
tests/integration/api_repo_files_change_test.go
··· 93 93 changeFilesOptions.Files[0].Path = createTreePath 94 94 changeFilesOptions.Files[1].Path = updateTreePath 95 95 changeFilesOptions.Files[2].Path = deleteTreePath 96 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents?token=%s", user2.Name, repo1.Name, token2) 97 - req := NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 96 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo1.Name), &changeFilesOptions). 97 + AddTokenAuth(token2) 98 98 resp := MakeRequest(t, req, http.StatusCreated) 99 99 gitRepo, _ := git.OpenRepository(stdCtx.Background(), repo1.RepoPath()) 100 100 commitID, _ := gitRepo.GetBranchCommitID(changeFilesOptions.NewBranchName) ··· 138 138 changeFilesOptions.Files[2].Path = deleteTreePath 139 139 createFile(user2, repo1, updateTreePath) 140 140 createFile(user2, repo1, deleteTreePath) 141 - url := fmt.Sprintf("/api/v1/repos/%s/%s/contents?token=%s", user2.Name, repo1.Name, token2) 142 - req := NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 141 + url := fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo1.Name) 142 + req := NewRequestWithJSON(t, "POST", url, &changeFilesOptions). 143 + AddTokenAuth(token2) 143 144 resp := MakeRequest(t, req, http.StatusCreated) 144 145 var filesResponse api.FilesResponse 145 146 DecodeJSON(t, resp, &filesResponse) ··· 168 169 changeFilesOptions.Files = []*api.ChangeFileOperation{changeFilesOptions.Files[1]} 169 170 changeFilesOptions.Files[0].FromPath = updateTreePath 170 171 changeFilesOptions.Files[0].Path = "rename/" + updateTreePath 171 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 172 + req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). 173 + AddTokenAuth(token2) 172 174 resp = MakeRequest(t, req, http.StatusCreated) 173 175 DecodeJSON(t, resp, &filesResponse) 174 176 expectedUpdateSHA = "08bd14b2e2852529157324de9c226b3364e76136" ··· 191 193 changeFilesOptions.Files[2].Path = deleteTreePath 192 194 createFile(user2, repo1, updateTreePath) 193 195 createFile(user2, repo1, deleteTreePath) 194 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 196 + req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). 197 + AddTokenAuth(token2) 195 198 resp = MakeRequest(t, req, http.StatusCreated) 196 199 DecodeJSON(t, resp, &filesResponse) 197 200 expectedMessage := fmt.Sprintf("Add %v\nUpdate %v\nDelete %v\n", createTreePath, updateTreePath, deleteTreePath) ··· 206 209 changeFilesOptions.Files[0].Path = updateTreePath 207 210 correctSHA := changeFilesOptions.Files[0].SHA 208 211 changeFilesOptions.Files[0].SHA = "badsha" 209 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 212 + req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions). 213 + AddTokenAuth(token2) 210 214 resp = MakeRequest(t, req, http.StatusUnprocessableEntity) 211 215 expectedAPIError := context.APIError{ 212 216 Message: "sha does not match [given: " + changeFilesOptions.Files[0].SHA + ", expected: " + correctSHA + "]", ··· 227 231 changeFilesOptions.Files[0].Path = createTreePath 228 232 changeFilesOptions.Files[1].Path = updateTreePath 229 233 changeFilesOptions.Files[2].Path = deleteTreePath 230 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents?token=%s", user2.Name, repo16.Name, token4) 231 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 234 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo16.Name), &changeFilesOptions). 235 + AddTokenAuth(token4) 232 236 MakeRequest(t, req, http.StatusNotFound) 233 237 234 238 // Tests a repo with no token given so will fail ··· 242 246 changeFilesOptions.Files[0].Path = createTreePath 243 247 changeFilesOptions.Files[1].Path = updateTreePath 244 248 changeFilesOptions.Files[2].Path = deleteTreePath 245 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo16.Name) 246 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 249 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo16.Name), &changeFilesOptions) 247 250 MakeRequest(t, req, http.StatusNotFound) 248 251 249 252 // Test using access token for a private repo that the user of the token owns ··· 257 260 changeFilesOptions.Files[0].Path = createTreePath 258 261 changeFilesOptions.Files[1].Path = updateTreePath 259 262 changeFilesOptions.Files[2].Path = deleteTreePath 260 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents?token=%s", user2.Name, repo16.Name, token2) 261 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 263 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo16.Name), &changeFilesOptions). 264 + AddTokenAuth(token2) 262 265 MakeRequest(t, req, http.StatusCreated) 263 266 264 267 // Test using org repo "org3/repo3" where user2 is a collaborator ··· 272 275 changeFilesOptions.Files[0].Path = createTreePath 273 276 changeFilesOptions.Files[1].Path = updateTreePath 274 277 changeFilesOptions.Files[2].Path = deleteTreePath 275 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents?token=%s", org3.Name, repo3.Name, token2) 276 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 278 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", org3.Name, repo3.Name), &changeFilesOptions). 279 + AddTokenAuth(token2) 277 280 MakeRequest(t, req, http.StatusCreated) 278 281 279 282 // Test using org repo "org3/repo3" with no user token ··· 287 290 changeFilesOptions.Files[0].Path = createTreePath 288 291 changeFilesOptions.Files[1].Path = updateTreePath 289 292 changeFilesOptions.Files[2].Path = deleteTreePath 290 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents", org3.Name, repo3.Name) 291 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 293 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", org3.Name, repo3.Name), &changeFilesOptions) 292 294 MakeRequest(t, req, http.StatusNotFound) 293 295 294 296 // Test using repo "user2/repo1" where user4 is a NOT collaborator ··· 302 304 changeFilesOptions.Files[0].Path = createTreePath 303 305 changeFilesOptions.Files[1].Path = updateTreePath 304 306 changeFilesOptions.Files[2].Path = deleteTreePath 305 - url = fmt.Sprintf("/api/v1/repos/%s/%s/contents?token=%s", user2.Name, repo1.Name, token4) 306 - req = NewRequestWithJSON(t, "POST", url, &changeFilesOptions) 307 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/contents", user2.Name, repo1.Name), &changeFilesOptions). 308 + AddTokenAuth(token4) 307 309 MakeRequest(t, req, http.StatusForbidden) 308 310 }) 309 311 }
+6 -3
tests/integration/api_repo_get_contents_list_test.go
··· 154 154 MakeRequest(t, req, http.StatusNotFound) 155 155 156 156 // Test accessing private ref with user token that does not have access - should fail 157 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) 157 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath). 158 + AddTokenAuth(token4) 158 159 MakeRequest(t, req, http.StatusNotFound) 159 160 160 161 // Test access private ref of owner of token 161 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/readme.md?token=%s", user2.Name, repo16.Name, token2) 162 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/readme.md", user2.Name, repo16.Name). 163 + AddTokenAuth(token2) 162 164 MakeRequest(t, req, http.StatusOK) 163 165 164 166 // Test access of org org3 private repo file by owner user2 165 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", org3.Name, repo3.Name, treePath, token2) 167 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath). 168 + AddTokenAuth(token2) 166 169 MakeRequest(t, req, http.StatusOK) 167 170 }
+6 -3
tests/integration/api_repo_get_contents_test.go
··· 151 151 MakeRequest(t, req, http.StatusNotFound) 152 152 153 153 // Test accessing private ref with user token that does not have access - should fail 154 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user2.Name, repo16.Name, treePath, token4) 154 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s", user2.Name, repo16.Name, treePath). 155 + AddTokenAuth(token4) 155 156 MakeRequest(t, req, http.StatusNotFound) 156 157 157 158 // Test access private ref of owner of token 158 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/readme.md?token=%s", user2.Name, repo16.Name, token2) 159 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/readme.md", user2.Name, repo16.Name). 160 + AddTokenAuth(token2) 159 161 MakeRequest(t, req, http.StatusOK) 160 162 161 163 // Test access of org org3 private repo file by owner user2 162 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", org3.Name, repo3.Name, treePath, token2) 164 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s", org3.Name, repo3.Name, treePath). 165 + AddTokenAuth(token2) 163 166 MakeRequest(t, req, http.StatusOK) 164 167 } 165 168
+6 -3
tests/integration/api_repo_git_blobs_test.go
··· 48 48 MakeRequest(t, req, http.StatusNotFound) 49 49 50 50 // Test using access token for a private repo that the user of the token owns 51 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s?token=%s", user2.Name, repo16.Name, repo16ReadmeSHA, token) 51 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s", user2.Name, repo16.Name, repo16ReadmeSHA). 52 + AddTokenAuth(token) 52 53 MakeRequest(t, req, http.StatusOK) 53 54 54 55 // Test using bad sha ··· 56 57 MakeRequest(t, req, http.StatusBadRequest) 57 58 58 59 // Test using org repo "org3/repo3" where user2 is a collaborator 59 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s?token=%s", org3.Name, repo3.Name, repo3ReadmeSHA, token) 60 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s", org3.Name, repo3.Name, repo3ReadmeSHA). 61 + AddTokenAuth(token) 60 62 MakeRequest(t, req, http.StatusOK) 61 63 62 64 // Test using org repo "org3/repo3" where user2 is a collaborator 63 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s?token=%s", org3.Name, repo3.Name, repo3ReadmeSHA, token) 65 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/blobs/%s", org3.Name, repo3.Name, repo3ReadmeSHA). 66 + AddTokenAuth(token) 64 67 MakeRequest(t, req, http.StatusOK) 65 68 66 69 // Test using org repo "org3/repo3" with no user token
+26 -13
tests/integration/api_repo_git_commits_test.go
··· 32 32 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 33 33 34 34 // check invalid requests 35 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/12345?token="+token, user.Name) 35 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/12345", user.Name). 36 + AddTokenAuth(token) 36 37 MakeRequest(t, req, http.StatusNotFound) 37 38 38 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/..?token="+token, user.Name) 39 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/..", user.Name). 40 + AddTokenAuth(token) 39 41 MakeRequest(t, req, http.StatusUnprocessableEntity) 40 42 41 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/branch-not-exist?token="+token, user.Name) 43 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/branch-not-exist", user.Name). 44 + AddTokenAuth(token) 42 45 MakeRequest(t, req, http.StatusNotFound) 43 46 44 47 for _, ref := range [...]string{ ··· 47 50 "65f1", // short sha 48 51 "65f1bf27bc3bf70f64657658635e66094edbcb4d", // full sha 49 52 } { 50 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/%s?token="+token, user.Name, ref) 53 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/commits/%s", user.Name, ref). 54 + AddTokenAuth(token) 51 55 MakeRequest(t, req, http.StatusOK) 52 56 } 53 57 } ··· 60 64 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 61 65 62 66 // Test getting commits (Page 1) 63 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo20/commits?token="+token+"&not=master&sha=remove-files-a", user.Name) 67 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo20/commits?not=master&sha=remove-files-a", user.Name). 68 + AddTokenAuth(token) 64 69 resp := MakeRequest(t, req, http.StatusOK) 65 70 66 71 var apiData []api.Commit ··· 83 88 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 84 89 85 90 // Test getting commits (Page 1) 86 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?token="+token, user.Name) 91 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits", user.Name). 92 + AddTokenAuth(token) 87 93 resp := MakeRequest(t, req, http.StatusOK) 88 94 89 95 var apiData []api.Commit ··· 108 114 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 109 115 110 116 // Test getting commits (Page=2) 111 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?token="+token+"&page=2", user.Name) 117 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?page=2", user.Name). 118 + AddTokenAuth(token) 112 119 resp := MakeRequest(t, req, http.StatusOK) 113 120 114 121 var apiData []api.Commit ··· 125 132 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 126 133 127 134 // Test getting commits (Page=1, Branch=good-sign) 128 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?token="+token+"&sha=good-sign", user.Name) 135 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?sha=good-sign", user.Name). 136 + AddTokenAuth(token) 129 137 resp := MakeRequest(t, req, http.StatusOK) 130 138 131 139 var apiData []api.Commit ··· 144 152 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 145 153 146 154 // Test getting commits without files, verification, and stats 147 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?token="+token+"&sha=good-sign&stat=false&files=false&verification=false", user.Name) 155 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?sha=good-sign&stat=false&files=false&verification=false", user.Name). 156 + AddTokenAuth(token) 148 157 resp := MakeRequest(t, req, http.StatusOK) 149 158 150 159 var apiData []api.Commit ··· 165 174 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 166 175 167 176 // Test getting diff 168 - reqDiff := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/git/commits/f27c2b2b03dcab38beaf89b0ab4ff61f6de63441.diff?token="+token, user.Name) 177 + reqDiff := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/git/commits/f27c2b2b03dcab38beaf89b0ab4ff61f6de63441.diff", user.Name). 178 + AddTokenAuth(token) 169 179 resp := MakeRequest(t, reqDiff, http.StatusOK) 170 180 assert.EqualValues(t, 171 181 "commit f27c2b2b03dcab38beaf89b0ab4ff61f6de63441\nAuthor: User2 <user2@example.com>\nDate: Sun Aug 6 19:55:01 2017 +0200\n\n good signed commit\n\ndiff --git a/readme.md b/readme.md\nnew file mode 100644\nindex 0000000..458121c\n--- /dev/null\n+++ b/readme.md\n@@ -0,0 +1 @@\n+good sign\n", 172 182 resp.Body.String()) 173 183 174 184 // Test getting patch 175 - reqPatch := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/git/commits/f27c2b2b03dcab38beaf89b0ab4ff61f6de63441.patch?token="+token, user.Name) 185 + reqPatch := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/git/commits/f27c2b2b03dcab38beaf89b0ab4ff61f6de63441.patch", user.Name). 186 + AddTokenAuth(token) 176 187 resp = MakeRequest(t, reqPatch, http.StatusOK) 177 188 assert.EqualValues(t, 178 189 "From f27c2b2b03dcab38beaf89b0ab4ff61f6de63441 Mon Sep 17 00:00:00 2001\nFrom: User2 <user2@example.com>\nDate: Sun, 6 Aug 2017 19:55:01 +0200\nSubject: [PATCH] good signed commit\n\n---\n readme.md | 1 +\n 1 file changed, 1 insertion(+)\n create mode 100644 readme.md\n\ndiff --git a/readme.md b/readme.md\nnew file mode 100644\nindex 0000000..458121c\n--- /dev/null\n+++ b/readme.md\n@@ -0,0 +1 @@\n+good sign\n", ··· 186 197 session := loginUser(t, user.Name) 187 198 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 188 199 189 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?path=readme.md&token="+token+"&sha=good-sign", user.Name) 200 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo16/commits?path=readme.md&sha=good-sign", user.Name). 201 + AddTokenAuth(token) 190 202 resp := MakeRequest(t, req, http.StatusOK) 191 203 192 204 var apiData []api.Commit ··· 206 218 session := loginUser(t, user.Name) 207 219 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 208 220 209 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo20/commits?path=test.csv&token="+token+"&sha=add-csv&not=master", user.Name) 221 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo20/commits?path=test.csv&sha=add-csv&not=master", user.Name). 222 + AddTokenAuth(token) 210 223 resp := MakeRequest(t, req, http.StatusOK) 211 224 212 225 var apiData []api.Commit
+23 -24
tests/integration/api_repo_git_hook_test.go
··· 32 32 // user1 is an admin user 33 33 session := loginUser(t, "user1") 34 34 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 35 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git?token=%s", 36 - owner.Name, repo.Name, token) 35 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name). 36 + AddTokenAuth(token) 37 37 resp := MakeRequest(t, req, http.StatusOK) 38 38 var apiGitHooks []*api.GitHook 39 39 DecodeJSON(t, resp, &apiGitHooks) ··· 58 58 // user1 is an admin user 59 59 session := loginUser(t, "user1") 60 60 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 61 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git?token=%s", 62 - owner.Name, repo.Name, token) 61 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name). 62 + AddTokenAuth(token) 63 63 resp := MakeRequest(t, req, http.StatusOK) 64 64 var apiGitHooks []*api.GitHook 65 65 DecodeJSON(t, resp, &apiGitHooks) ··· 78 78 79 79 session := loginUser(t, owner.Name) 80 80 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 81 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git?token=%s", 82 - owner.Name, repo.Name, token) 81 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git", owner.Name, repo.Name). 82 + AddTokenAuth(token) 83 83 MakeRequest(t, req, http.StatusForbidden) 84 84 } 85 85 ··· 92 92 // user1 is an admin user 93 93 session := loginUser(t, "user1") 94 94 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 95 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 96 - owner.Name, repo.Name, token) 95 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name). 96 + AddTokenAuth(token) 97 97 resp := MakeRequest(t, req, http.StatusOK) 98 98 var apiGitHook *api.GitHook 99 99 DecodeJSON(t, resp, &apiGitHook) ··· 109 109 110 110 session := loginUser(t, owner.Name) 111 111 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 112 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 113 - owner.Name, repo.Name, token) 112 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name). 113 + AddTokenAuth(token) 114 114 MakeRequest(t, req, http.StatusForbidden) 115 115 } 116 116 ··· 124 124 session := loginUser(t, "user1") 125 125 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 126 126 127 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 128 - owner.Name, repo.Name, token) 127 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/hooks/git/pre-receive", 128 + owner.Name, repo.Name) 129 129 req := NewRequestWithJSON(t, "PATCH", urlStr, &api.EditGitHookOption{ 130 130 Content: testHookContent, 131 - }) 131 + }).AddTokenAuth(token) 132 132 resp := MakeRequest(t, req, http.StatusOK) 133 133 var apiGitHook *api.GitHook 134 134 DecodeJSON(t, resp, &apiGitHook) 135 135 assert.True(t, apiGitHook.IsActive) 136 136 assert.Equal(t, testHookContent, apiGitHook.Content) 137 137 138 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 139 - owner.Name, repo.Name, token) 138 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name). 139 + AddTokenAuth(token) 140 140 resp = MakeRequest(t, req, http.StatusOK) 141 141 var apiGitHook2 *api.GitHook 142 142 DecodeJSON(t, resp, &apiGitHook2) ··· 152 152 153 153 session := loginUser(t, owner.Name) 154 154 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 155 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 156 - owner.Name, repo.Name, token) 155 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name) 157 156 req := NewRequestWithJSON(t, "PATCH", urlStr, &api.EditGitHookOption{ 158 157 Content: testHookContent, 159 - }) 158 + }).AddTokenAuth(token) 160 159 MakeRequest(t, req, http.StatusForbidden) 161 160 } 162 161 ··· 170 169 session := loginUser(t, "user1") 171 170 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 172 171 173 - req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 174 - owner.Name, repo.Name, token) 172 + req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name). 173 + AddTokenAuth(token) 175 174 MakeRequest(t, req, http.StatusNoContent) 176 175 177 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 178 - owner.Name, repo.Name, token) 176 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name). 177 + AddTokenAuth(token) 179 178 resp := MakeRequest(t, req, http.StatusOK) 180 179 var apiGitHook2 *api.GitHook 181 180 DecodeJSON(t, resp, &apiGitHook2) ··· 191 190 192 191 session := loginUser(t, owner.Name) 193 192 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 194 - req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/hooks/git/pre-receive?token=%s", 195 - owner.Name, repo.Name, token) 193 + req := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/hooks/git/pre-receive", owner.Name, repo.Name). 194 + AddTokenAuth(token) 196 195 MakeRequest(t, req, http.StatusForbidden) 197 196 }
+6 -3
tests/integration/api_repo_git_notes_test.go
··· 24 24 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 25 25 26 26 // check invalid requests 27 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/notes/12345?token=%s", user.Name, token) 27 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/notes/12345", user.Name). 28 + AddTokenAuth(token) 28 29 MakeRequest(t, req, http.StatusNotFound) 29 30 30 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/notes/..?token=%s", user.Name, token) 31 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/notes/..", user.Name). 32 + AddTokenAuth(token) 31 33 MakeRequest(t, req, http.StatusUnprocessableEntity) 32 34 33 35 // check valid request 34 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/notes/65f1bf27bc3bf70f64657658635e66094edbcb4d?token=%s", user.Name, token) 36 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/notes/65f1bf27bc3bf70f64657658635e66094edbcb4d", user.Name). 37 + AddTokenAuth(token) 35 38 resp := MakeRequest(t, req, http.StatusOK) 36 39 37 40 var apiData api.Note
+6 -3
tests/integration/api_repo_git_ref_test.go
··· 24 24 "refs/heads/master", // Branch 25 25 "refs/tags/v1.1", // Tag 26 26 } { 27 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/%s?token="+token, user.Name, ref) 27 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/%s", user.Name, ref). 28 + AddTokenAuth(token) 28 29 MakeRequest(t, req, http.StatusOK) 29 30 } 30 31 // Test getting all refs 31 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/refs?token="+token, user.Name) 32 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/refs", user.Name). 33 + AddTokenAuth(token) 32 34 MakeRequest(t, req, http.StatusOK) 33 35 // Test getting non-existent refs 34 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/refs/heads/unknown?token="+token, user.Name) 36 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/git/refs/heads/unknown", user.Name). 37 + AddTokenAuth(token) 35 38 MakeRequest(t, req, http.StatusNotFound) 36 39 }
+8 -9
tests/integration/api_repo_git_tags_test.go
··· 45 45 aTag, _ := gitRepo.GetTag(aTagName) 46 46 47 47 // SHOULD work for annotated tags 48 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/tags/%s?token=%s", user.Name, repo.Name, aTag.ID.String(), token) 48 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/tags/%s", user.Name, repo.Name, aTag.ID.String()). 49 + AddTokenAuth(token) 49 50 res := MakeRequest(t, req, http.StatusOK) 50 51 51 52 var tag *api.AnnotatedTag ··· 60 61 assert.Equal(t, util.URLJoin(repo.APIURL(), "git/tags", aTag.ID.String()), tag.URL) 61 62 62 63 // Should NOT work for lightweight tags 63 - badReq := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/tags/%s?token=%s", user.Name, repo.Name, commit.ID.String(), token) 64 + badReq := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/tags/%s", user.Name, repo.Name, commit.ID.String()). 65 + AddTokenAuth(token) 64 66 MakeRequest(t, badReq, http.StatusBadRequest) 65 67 } 66 68 ··· 72 74 session := loginUser(t, owner.LowerName) 73 75 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 74 76 75 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/tags/delete-tag?token=%s", 76 - owner.Name, repo.Name, token) 77 - 78 - req := NewRequestf(t, http.MethodDelete, urlStr) 77 + req := NewRequest(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/tags/delete-tag", owner.Name, repo.Name)). 78 + AddTokenAuth(token) 79 79 _ = MakeRequest(t, req, http.StatusNoContent) 80 80 81 81 // Make sure that actual releases can't be deleted outright 82 82 createNewReleaseUsingAPI(t, session, token, owner, repo, "release-tag", "", "Release Tag", "test") 83 - urlStr = fmt.Sprintf("/api/v1/repos/%s/%s/tags/release-tag?token=%s", 84 - owner.Name, repo.Name, token) 85 83 86 - req = NewRequestf(t, http.MethodDelete, urlStr) 84 + req = NewRequest(t, http.MethodDelete, fmt.Sprintf("/api/v1/repos/%s/%s/tags/release-tag", owner.Name, repo.Name)). 85 + AddTokenAuth(token) 87 86 _ = MakeRequest(t, req, http.StatusConflict) 88 87 }
+4 -2
tests/integration/api_repo_git_trees_test.go
··· 50 50 } 51 51 52 52 // Test using access token for a private repo that the user of the token owns 53 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/trees/%s?token=%s", user2.Name, repo16.Name, repo16TreeSHA, token) 53 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/trees/%s", user2.Name, repo16.Name, repo16TreeSHA). 54 + AddTokenAuth(token) 54 55 MakeRequest(t, req, http.StatusOK) 55 56 56 57 // Test using bad sha ··· 58 59 MakeRequest(t, req, http.StatusBadRequest) 59 60 60 61 // Test using org repo "org3/repo3" where user2 is a collaborator 61 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/trees/%s?token=%s", org3.Name, repo3.Name, repo3TreeSHA, token) 62 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/git/trees/%s", org3.Name, repo3.Name, repo3TreeSHA). 63 + AddTokenAuth(token) 62 64 MakeRequest(t, req, http.StatusOK) 63 65 64 66 // Test using org repo "org3/repo3" with no user token
+2 -5
tests/integration/api_repo_hook_test.go
··· 27 27 // user1 is an admin user 28 28 session := loginUser(t, "user1") 29 29 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 30 - completeURL := func(lastSegment string) string { 31 - return fmt.Sprintf("/api/v1/repos/%s/%s/%s?token=%s", owner.Name, repo.Name, lastSegment, token) 32 - } 33 - req := NewRequestWithJSON(t, "POST", completeURL("hooks"), api.CreateHookOption{ 30 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/%s", owner.Name, repo.Name, "hooks"), api.CreateHookOption{ 34 31 Type: "gitea", 35 32 Config: api.CreateHookOptionConfig{ 36 33 "content_type": "json", 37 34 "url": "http://example.com/", 38 35 }, 39 36 AuthorizationHeader: "Bearer s3cr3t", 40 - }) 37 + }).AddTokenAuth(token) 41 38 resp := MakeRequest(t, req, http.StatusCreated) 42 39 43 40 var apiHook *api.Hook
+2 -2
tests/integration/api_repo_lfs_migrate_test.go
··· 33 33 session := loginUser(t, user.Name) 34 34 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 35 35 36 - req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate?token="+token, &api.MigrateRepoOptions{ 36 + req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate", &api.MigrateRepoOptions{ 37 37 CloneAddr: path.Join(setting.RepoRootPath, "migration/lfs-test.git"), 38 38 RepoOwnerID: user.ID, 39 39 RepoName: "lfs-test-local", 40 40 LFS: true, 41 - }) 41 + }).AddTokenAuth(token) 42 42 resp := MakeRequest(t, req, NoExpectedStatus) 43 43 assert.EqualValues(t, http.StatusCreated, resp.Code) 44 44
+10 -13
tests/integration/api_repo_lfs_test.go
··· 82 82 83 83 session := loginUser(t, "user2") 84 84 85 - newRequest := func(t testing.TB, br *lfs.BatchRequest) *http.Request { 86 - req := NewRequestWithJSON(t, "POST", "/user2/lfs-batch-repo.git/info/lfs/objects/batch", br) 87 - req.Header.Set("Accept", lfs.MediaType) 88 - req.Header.Set("Content-Type", lfs.MediaType) 89 - return req 85 + newRequest := func(t testing.TB, br *lfs.BatchRequest) *RequestWrapper { 86 + return NewRequestWithJSON(t, "POST", "/user2/lfs-batch-repo.git/info/lfs/objects/batch", br). 87 + SetHeader("Accept", lfs.MediaType). 88 + SetHeader("Content-Type", lfs.MediaType) 90 89 } 91 90 decodeResponse := func(t *testing.T, b *bytes.Buffer) *lfs.BatchResponse { 92 91 var br lfs.BatchResponse ··· 342 341 343 342 session := loginUser(t, "user2") 344 343 345 - newRequest := func(t testing.TB, p lfs.Pointer, content string) *http.Request { 346 - req := NewRequestWithBody(t, "PUT", path.Join("/user2/lfs-upload-repo.git/info/lfs/objects/", p.Oid, strconv.FormatInt(p.Size, 10)), strings.NewReader(content)) 347 - return req 344 + newRequest := func(t testing.TB, p lfs.Pointer, content string) *RequestWrapper { 345 + return NewRequestWithBody(t, "PUT", path.Join("/user2/lfs-upload-repo.git/info/lfs/objects/", p.Oid, strconv.FormatInt(p.Size, 10)), strings.NewReader(content)) 348 346 } 349 347 350 348 t.Run("InvalidPointer", func(t *testing.T) { ··· 447 445 448 446 session := loginUser(t, "user2") 449 447 450 - newRequest := func(t testing.TB, p *lfs.Pointer) *http.Request { 451 - req := NewRequestWithJSON(t, "POST", "/user2/lfs-verify-repo.git/info/lfs/verify", p) 452 - req.Header.Set("Accept", lfs.MediaType) 453 - req.Header.Set("Content-Type", lfs.MediaType) 454 - return req 448 + newRequest := func(t testing.TB, p *lfs.Pointer) *RequestWrapper { 449 + return NewRequestWithJSON(t, "POST", "/user2/lfs-verify-repo.git/info/lfs/verify", p). 450 + SetHeader("Accept", lfs.MediaType). 451 + SetHeader("Content-Type", lfs.MediaType) 455 452 } 456 453 457 454 t.Run("InvalidJsonRequest", func(t *testing.T) {
+4 -2
tests/integration/api_repo_raw_test.go
··· 27 27 "v1.1", // Tag 28 28 "65f1bf27bc3bf70f64657658635e66094edbcb4d", // Commit 29 29 } { 30 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/raw/%s/README.md?token="+token, user.Name, ref) 30 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/raw/%s/README.md", user.Name, ref). 31 + AddTokenAuth(token) 31 32 resp := MakeRequest(t, req, http.StatusOK) 32 33 assert.EqualValues(t, "file", resp.Header().Get("x-gitea-object-type")) 33 34 } 34 35 // Test default branch 35 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/raw/README.md?token="+token, user.Name) 36 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/repo1/raw/README.md", user.Name). 37 + AddTokenAuth(token) 36 38 resp := MakeRequest(t, req, http.StatusOK) 37 39 assert.EqualValues(t, "file", resp.Header().Get("x-gitea-object-type")) 38 40 }
+13 -10
tests/integration/api_repo_secrets_test.go
··· 60 60 } 61 61 62 62 for _, c := range cases { 63 - req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/actions/secrets/%s?token=%s", repo.FullName(), c.Name, token), api.CreateOrUpdateSecretOption{ 63 + req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/actions/secrets/%s", repo.FullName(), c.Name), api.CreateOrUpdateSecretOption{ 64 64 Data: "data", 65 - }) 65 + }).AddTokenAuth(token) 66 66 MakeRequest(t, req, c.ExpectedStatus) 67 67 } 68 68 }) 69 69 70 70 t.Run("Update", func(t *testing.T) { 71 71 name := "update_secret" 72 - url := fmt.Sprintf("/api/v1/repos/%s/actions/secrets/%s?token=%s", repo.FullName(), name, token) 72 + url := fmt.Sprintf("/api/v1/repos/%s/actions/secrets/%s", repo.FullName(), name) 73 73 74 74 req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{ 75 75 Data: "initial", 76 - }) 76 + }).AddTokenAuth(token) 77 77 MakeRequest(t, req, http.StatusCreated) 78 78 79 79 req = NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{ 80 80 Data: "changed", 81 - }) 81 + }).AddTokenAuth(token) 82 82 MakeRequest(t, req, http.StatusNoContent) 83 83 }) 84 84 85 85 t.Run("Delete", func(t *testing.T) { 86 86 name := "delete_secret" 87 - url := fmt.Sprintf("/api/v1/repos/%s/actions/secrets/%s?token=%s", repo.FullName(), name, token) 87 + url := fmt.Sprintf("/api/v1/repos/%s/actions/secrets/%s", repo.FullName(), name) 88 88 89 89 req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{ 90 90 Data: "initial", 91 - }) 91 + }).AddTokenAuth(token) 92 92 MakeRequest(t, req, http.StatusCreated) 93 93 94 - req = NewRequest(t, "DELETE", url) 94 + req = NewRequest(t, "DELETE", url). 95 + AddTokenAuth(token) 95 96 MakeRequest(t, req, http.StatusNoContent) 96 97 97 - req = NewRequest(t, "DELETE", url) 98 + req = NewRequest(t, "DELETE", url). 99 + AddTokenAuth(token) 98 100 MakeRequest(t, req, http.StatusNotFound) 99 101 100 - req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/actions/secrets/000?token=%s", repo.FullName(), token)) 102 + req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/actions/secrets/000", repo.FullName())). 103 + AddTokenAuth(token) 101 104 MakeRequest(t, req, http.StatusBadRequest) 102 105 }) 103 106 }
+8 -5
tests/integration/api_repo_tags_test.go
··· 27 27 28 28 repoName := "repo1" 29 29 30 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/tags?token=%s", user.Name, repoName, token) 30 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/tags", user.Name, repoName). 31 + AddTokenAuth(token) 31 32 resp := MakeRequest(t, req, http.StatusOK) 32 33 33 34 var tags []*api.Tag ··· 55 56 } 56 57 57 58 // get created tag 58 - req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/tags/%s?token=%s", user.Name, repoName, newTag.Name, token) 59 + req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/tags/%s", user.Name, repoName, newTag.Name). 60 + AddTokenAuth(token) 59 61 resp = MakeRequest(t, req, http.StatusOK) 60 62 var tag *api.Tag 61 63 DecodeJSON(t, resp, &tag) 62 64 assert.EqualValues(t, newTag, tag) 63 65 64 66 // delete tag 65 - delReq := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/tags/%s?token=%s", user.Name, repoName, newTag.Name, token) 67 + delReq := NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/tags/%s", user.Name, repoName, newTag.Name). 68 + AddTokenAuth(token) 66 69 MakeRequest(t, delReq, http.StatusNoContent) 67 70 68 71 // check if it's gone ··· 70 73 } 71 74 72 75 func createNewTagUsingAPI(t *testing.T, session *TestSession, token, ownerName, repoName, name, target, msg string) *api.Tag { 73 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/tags?token=%s", ownerName, repoName, token) 76 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/tags", ownerName, repoName) 74 77 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateTagOption{ 75 78 TagName: name, 76 79 Message: msg, 77 80 Target: target, 78 - }) 81 + }).AddTokenAuth(token) 79 82 resp := MakeRequest(t, req, http.StatusCreated) 80 83 81 84 var respObj api.Tag
+12 -12
tests/integration/api_repo_teams_test.go
··· 31 31 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 32 32 33 33 // ListTeams 34 - url := fmt.Sprintf("/api/v1/repos/%s/teams?token=%s", publicOrgRepo.FullName(), token) 35 - req := NewRequest(t, "GET", url) 34 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/teams", publicOrgRepo.FullName())). 35 + AddTokenAuth(token) 36 36 res := MakeRequest(t, req, http.StatusOK) 37 37 var teams []*api.Team 38 38 DecodeJSON(t, res, &teams) ··· 49 49 } 50 50 51 51 // IsTeam 52 - url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "Test_Team", token) 53 - req = NewRequest(t, "GET", url) 52 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/teams/%s", publicOrgRepo.FullName(), "Test_Team")). 53 + AddTokenAuth(token) 54 54 res = MakeRequest(t, req, http.StatusOK) 55 55 var team *api.Team 56 56 DecodeJSON(t, res, &team) 57 57 assert.EqualValues(t, teams[1], team) 58 58 59 - url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "NonExistingTeam", token) 60 - req = NewRequest(t, "GET", url) 59 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/teams/%s", publicOrgRepo.FullName(), "NonExistingTeam")). 60 + AddTokenAuth(token) 61 61 MakeRequest(t, req, http.StatusNotFound) 62 62 63 63 // AddTeam with user4 64 - url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token) 65 - req = NewRequest(t, "PUT", url) 64 + req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/teams/%s", publicOrgRepo.FullName(), "team1")). 65 + AddTokenAuth(token) 66 66 MakeRequest(t, req, http.StatusForbidden) 67 67 68 68 // AddTeam with user2 69 69 user = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 70 70 session = loginUser(t, user.Name) 71 71 token = getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 72 - url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token) 73 - req = NewRequest(t, "PUT", url) 72 + req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/teams/%s", publicOrgRepo.FullName(), "team1")). 73 + AddTokenAuth(token) 74 74 MakeRequest(t, req, http.StatusNoContent) 75 75 MakeRequest(t, req, http.StatusUnprocessableEntity) // test duplicate request 76 76 77 77 // DeleteTeam 78 - url = fmt.Sprintf("/api/v1/repos/%s/teams/%s?token=%s", publicOrgRepo.FullName(), "team1", token) 79 - req = NewRequest(t, "DELETE", url) 78 + req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/teams/%s", publicOrgRepo.FullName(), "team1")). 79 + AddTokenAuth(token) 80 80 MakeRequest(t, req, http.StatusNoContent) 81 81 MakeRequest(t, req, http.StatusUnprocessableEntity) // test duplicate request 82 82 }
+48 -34
tests/integration/api_repo_test.go
··· 45 45 defer tests.PrepareTestEnv(t)() 46 46 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 47 47 wrongToken := fmt.Sprintf("Bearer %s", "wrong_token") 48 - req := NewRequestf(t, "GET", "/api/v1/users/%s/repos", user.Name) 49 - req = addTokenAuthHeader(req, wrongToken) 48 + req := NewRequestf(t, "GET", "/api/v1/users/%s/repos", user.Name). 49 + AddTokenAuth(wrongToken) 50 50 resp := MakeRequest(t, req, http.StatusUnauthorized) 51 51 52 52 assert.Contains(t, resp.Body.String(), "user does not exist") ··· 208 208 } 209 209 210 210 t.Run(testName, func(t *testing.T) { 211 - request := NewRequest(t, "GET", testCase.requestURL+"&token="+token) 211 + request := NewRequest(t, "GET", testCase.requestURL). 212 + AddTokenAuth(token) 212 213 response := MakeRequest(t, request, http.StatusOK) 213 214 214 215 var body api.SearchResults ··· 309 310 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadOrganization) 310 311 311 312 t.Run(testName, func(t *testing.T) { 312 - req := NewRequestf(t, "GET", "/api/v1/orgs/%s/repos?token="+token, sourceOrg.Name) 313 + req := NewRequestf(t, "GET", "/api/v1/orgs/%s/repos", sourceOrg.Name). 314 + AddTokenAuth(token) 313 315 resp := MakeRequest(t, req, http.StatusOK) 314 316 315 317 var apiRepos []*api.Repository ··· 329 331 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}) 330 332 session := loginUser(t, user.Name) 331 333 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 332 - req := NewRequestf(t, "GET", "/api/v1/repositories/2?token="+token) 334 + req := NewRequest(t, "GET", "/api/v1/repositories/2"). 335 + AddTokenAuth(token) 333 336 MakeRequest(t, req, http.StatusNotFound) 334 337 } 335 338 ··· 353 356 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: testCase.ctxUserID}) 354 357 session := loginUser(t, user.Name) 355 358 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 356 - req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate?token="+token, &api.MigrateRepoOptions{ 359 + req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate", &api.MigrateRepoOptions{ 357 360 CloneAddr: testCase.cloneURL, 358 361 RepoOwnerID: testCase.userID, 359 362 RepoName: testCase.repoName, 360 - }) 363 + }).AddTokenAuth(token) 361 364 resp := MakeRequest(t, req, NoExpectedStatus) 362 365 if resp.Code == http.StatusUnprocessableEntity { 363 366 respJSON := map[string]string{} ··· 398 401 399 402 cloneURL := "https://github.com/go-gitea/test_repo.git" 400 403 401 - req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate?token="+httpContext.Token, 404 + req := NewRequestWithJSON(t, "POST", "/api/v1/repos/migrate", 402 405 &api.MigrateRepoOptions{ 403 406 CloneAddr: cloneURL, 404 407 RepoOwnerID: userID, 405 408 RepoName: httpContext.Reponame, 406 - }) 409 + }). 410 + AddTokenAuth(httpContext.Token) 407 411 resp := httpContext.Session.MakeRequest(t, req, http.StatusConflict) 408 412 respJSON := map[string]string{} 409 413 DecodeJSON(t, resp, &respJSON) ··· 425 429 DecodeJSON(t, resp, &repo) 426 430 assert.False(t, repo.Mirror) 427 431 428 - req = NewRequestf(t, "POST", "/api/v1/repos/user2/repo1/mirror-sync?token=%s", token) 432 + req = NewRequestf(t, "POST", "/api/v1/repos/user2/repo1/mirror-sync"). 433 + AddTokenAuth(token) 429 434 resp = MakeRequest(t, req, http.StatusBadRequest) 430 435 errRespJSON := map[string]string{} 431 436 DecodeJSON(t, resp, &errRespJSON) ··· 450 455 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: testCase.ctxUserID}) 451 456 session := loginUser(t, user.Name) 452 457 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteOrganization, auth_model.AccessTokenScopeWriteRepository) 453 - req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/org/%s/repos?token="+token, testCase.orgName), &api.CreateRepoOption{ 458 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/org/%s/repos", testCase.orgName), &api.CreateRepoOption{ 454 459 Name: testCase.repoName, 455 - }) 460 + }).AddTokenAuth(token) 456 461 MakeRequest(t, req, testCase.expectedStatus) 457 462 } 458 463 } ··· 473 478 httpContext.Reponame = "repo-tmp-17" 474 479 t.Run("CreateRepo", doAPICreateRepository(httpContext, false)) 475 480 476 - req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos?token="+httpContext.Token, 481 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos", 477 482 &api.CreateRepoOption{ 478 483 Name: httpContext.Reponame, 479 - }) 484 + }). 485 + AddTokenAuth(httpContext.Token) 480 486 resp := httpContext.Session.MakeRequest(t, req, http.StatusConflict) 481 487 respJSON := map[string]string{} 482 488 DecodeJSON(t, resp, &respJSON) ··· 516 522 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) 517 523 repoName := "moveME" 518 524 apiRepo := new(api.Repository) 519 - req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/user/repos?token=%s", token), &api.CreateRepoOption{ 525 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos", &api.CreateRepoOption{ 520 526 Name: repoName, 521 527 Description: "repo move around", 522 528 Private: false, 523 529 Readme: "Default", 524 530 AutoInit: true, 525 - }) 531 + }).AddTokenAuth(token) 526 532 resp := MakeRequest(t, req, http.StatusCreated) 527 533 DecodeJSON(t, resp, apiRepo) 528 534 ··· 532 538 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiRepo.ID}) 533 539 session = loginUser(t, user.Name) 534 540 token = getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 535 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer?token=%s", repo.OwnerName, repo.Name, token), &api.TransferRepoOption{ 541 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer", repo.OwnerName, repo.Name), &api.TransferRepoOption{ 536 542 NewOwner: testCase.newOwner, 537 543 TeamIDs: testCase.teams, 538 - }) 544 + }).AddTokenAuth(token) 539 545 MakeRequest(t, req, testCase.expectedStatus) 540 546 } 541 547 ··· 551 557 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) 552 558 repoName := "moveME" 553 559 apiRepo := new(api.Repository) 554 - req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/user/repos?token=%s", token), &api.CreateRepoOption{ 560 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/repos", &api.CreateRepoOption{ 555 561 Name: repoName, 556 562 Description: "repo move around", 557 563 Private: false, 558 564 Readme: "Default", 559 565 AutoInit: true, 560 - }) 566 + }).AddTokenAuth(token) 561 567 562 568 resp := MakeRequest(t, req, http.StatusCreated) 563 569 DecodeJSON(t, resp, apiRepo) 564 570 565 571 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: apiRepo.ID}) 566 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer?token=%s", repo.OwnerName, repo.Name, token), &api.TransferRepoOption{ 572 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer", repo.OwnerName, repo.Name), &api.TransferRepoOption{ 567 573 NewOwner: "user4", 568 - }) 574 + }).AddTokenAuth(token) 569 575 MakeRequest(t, req, http.StatusCreated) 570 576 571 577 return repo ··· 579 585 // try to accept with not authorized user 580 586 session := loginUser(t, "user2") 581 587 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) 582 - req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject?token=%s", repo.OwnerName, repo.Name, token)) 588 + req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject", repo.OwnerName, repo.Name)). 589 + AddTokenAuth(token) 583 590 MakeRequest(t, req, http.StatusForbidden) 584 591 585 592 // try to accept repo that's not marked as transferred 586 - req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/accept?token=%s", "user2", "repo1", token)) 593 + req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/accept", "user2", "repo1")). 594 + AddTokenAuth(token) 587 595 MakeRequest(t, req, http.StatusNotFound) 588 596 589 597 // accept transfer 590 598 session = loginUser(t, "user4") 591 599 token = getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository, auth_model.AccessTokenScopeWriteUser) 592 600 593 - req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/accept?token=%s", repo.OwnerName, repo.Name, token)) 601 + req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/accept", repo.OwnerName, repo.Name)). 602 + AddTokenAuth(token) 594 603 resp := MakeRequest(t, req, http.StatusAccepted) 595 604 apiRepo := new(api.Repository) 596 605 DecodeJSON(t, resp, apiRepo) ··· 605 614 // try to reject with not authorized user 606 615 session := loginUser(t, "user2") 607 616 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 608 - req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject?token=%s", repo.OwnerName, repo.Name, token)) 617 + req := NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject", repo.OwnerName, repo.Name)). 618 + AddTokenAuth(token) 609 619 MakeRequest(t, req, http.StatusForbidden) 610 620 611 621 // try to reject repo that's not marked as transferred 612 - req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject?token=%s", "user2", "repo1", token)) 622 + req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject", "user2", "repo1")). 623 + AddTokenAuth(token) 613 624 MakeRequest(t, req, http.StatusNotFound) 614 625 615 626 // reject transfer 616 627 session = loginUser(t, "user4") 617 628 token = getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 618 629 619 - req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject?token=%s", repo.OwnerName, repo.Name, token)) 630 + req = NewRequest(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/transfer/reject", repo.OwnerName, repo.Name)). 631 + AddTokenAuth(token) 620 632 resp := MakeRequest(t, req, http.StatusOK) 621 633 apiRepo := new(api.Repository) 622 634 DecodeJSON(t, resp, apiRepo) ··· 634 646 635 647 // user 636 648 repo := new(api.Repository) 637 - req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/generate?token=%s", templateRepo.OwnerName, templateRepo.Name, token), &api.GenerateRepoOption{ 649 + req := NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/generate", templateRepo.OwnerName, templateRepo.Name), &api.GenerateRepoOption{ 638 650 Owner: user.Name, 639 651 Name: "new-repo", 640 652 Description: "test generate repo", 641 653 Private: false, 642 654 GitContent: true, 643 - }) 655 + }).AddTokenAuth(token) 644 656 resp := MakeRequest(t, req, http.StatusCreated) 645 657 DecodeJSON(t, resp, repo) 646 658 647 659 assert.Equal(t, "new-repo", repo.Name) 648 660 649 661 // org 650 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/generate?token=%s", templateRepo.OwnerName, templateRepo.Name, token), &api.GenerateRepoOption{ 662 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/repos/%s/%s/generate", templateRepo.OwnerName, templateRepo.Name), &api.GenerateRepoOption{ 651 663 Owner: "org3", 652 664 Name: "new-repo", 653 665 Description: "test generate repo", 654 666 Private: false, 655 667 GitContent: true, 656 - }) 668 + }).AddTokenAuth(token) 657 669 resp = MakeRequest(t, req, http.StatusCreated) 658 670 DecodeJSON(t, resp, repo) 659 671 ··· 667 679 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 668 680 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 669 681 670 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/reviewers?token=%s", user.Name, repo.Name, token) 682 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/reviewers", user.Name, repo.Name). 683 + AddTokenAuth(token) 671 684 resp := MakeRequest(t, req, http.StatusOK) 672 685 var reviewers []*api.User 673 686 DecodeJSON(t, resp, &reviewers) ··· 681 694 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadRepository) 682 695 repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1}) 683 696 684 - req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/assignees?token=%s", user.Name, repo.Name, token) 697 + req := NewRequestf(t, "GET", "/api/v1/repos/%s/%s/assignees", user.Name, repo.Name). 698 + AddTokenAuth(token) 685 699 resp := MakeRequest(t, req, http.StatusOK) 686 700 var assignees []*api.User 687 701 DecodeJSON(t, resp, &assignees)
+30 -21
tests/integration/api_repo_topic_test.go
··· 63 63 token2 := getUserToken(t, user2.Name, auth_model.AccessTokenScopeWriteRepository) 64 64 65 65 // Test read topics using login 66 - url := fmt.Sprintf("/api/v1/repos/%s/%s/topics", user2.Name, repo2.Name) 67 - req := NewRequest(t, "GET", url+"?token="+token2) 66 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/topics", user2.Name, repo2.Name)). 67 + AddTokenAuth(token2) 68 68 res := MakeRequest(t, req, http.StatusOK) 69 69 var topics *api.TopicName 70 70 DecodeJSON(t, res, &topics) 71 71 assert.ElementsMatch(t, []string{"topicname1", "topicname2"}, topics.TopicNames) 72 - 73 - // Log out user2 74 - url = fmt.Sprintf("/api/v1/repos/%s/%s/topics?token=%s", user2.Name, repo2.Name, token2) 75 72 76 73 // Test delete a topic 77 - req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Topicname1", token2) 74 + req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s", user2.Name, repo2.Name, "Topicname1"). 75 + AddTokenAuth(token2) 78 76 MakeRequest(t, req, http.StatusNoContent) 79 77 80 78 // Test add an existing topic 81 - req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Golang", token2) 79 + req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s", user2.Name, repo2.Name, "Golang"). 80 + AddTokenAuth(token2) 82 81 MakeRequest(t, req, http.StatusNoContent) 83 82 84 83 // Test add a topic 85 - req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "topicName3", token2) 84 + req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s", user2.Name, repo2.Name, "topicName3"). 85 + AddTokenAuth(token2) 86 86 MakeRequest(t, req, http.StatusNoContent) 87 87 88 + url := fmt.Sprintf("/api/v1/repos/%s/%s/topics", user2.Name, repo2.Name) 89 + 88 90 // Test read topics using token 89 - req = NewRequest(t, "GET", url) 91 + req = NewRequest(t, "GET", url). 92 + AddTokenAuth(token2) 90 93 res = MakeRequest(t, req, http.StatusOK) 91 94 DecodeJSON(t, res, &topics) 92 95 assert.ElementsMatch(t, []string{"topicname2", "golang", "topicname3"}, topics.TopicNames) ··· 95 98 newTopics := []string{" windows ", " ", "MAC "} 96 99 req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ 97 100 Topics: newTopics, 98 - }) 101 + }).AddTokenAuth(token2) 99 102 MakeRequest(t, req, http.StatusNoContent) 100 - req = NewRequest(t, "GET", url) 103 + req = NewRequest(t, "GET", url). 104 + AddTokenAuth(token2) 101 105 res = MakeRequest(t, req, http.StatusOK) 102 106 DecodeJSON(t, res, &topics) 103 107 assert.ElementsMatch(t, []string{"windows", "mac"}, topics.TopicNames) ··· 106 110 newTopics = []string{"topicname1", "topicname2", "topicname!"} 107 111 req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ 108 112 Topics: newTopics, 109 - }) 113 + }).AddTokenAuth(token2) 110 114 MakeRequest(t, req, http.StatusUnprocessableEntity) 111 - req = NewRequest(t, "GET", url) 115 + req = NewRequest(t, "GET", url). 116 + AddTokenAuth(token2) 112 117 res = MakeRequest(t, req, http.StatusOK) 113 118 DecodeJSON(t, res, &topics) 114 119 assert.ElementsMatch(t, []string{"windows", "mac"}, topics.TopicNames) ··· 117 122 newTopics = []string{"t1", "t2", "t1", "t3", "t4", "t5", "t6", "t7", "t8", "t9", "t10", "t11", "t12", "t13", "t14", "t15", "t16", "17", "t18", "t19", "t20", "t21", "t22", "t23", "t24", "t25"} 118 123 req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ 119 124 Topics: newTopics, 120 - }) 125 + }).AddTokenAuth(token2) 121 126 MakeRequest(t, req, http.StatusNoContent) 122 - req = NewRequest(t, "GET", url) 127 + req = NewRequest(t, "GET", url). 128 + AddTokenAuth(token2) 123 129 res = MakeRequest(t, req, http.StatusOK) 124 130 DecodeJSON(t, res, &topics) 125 131 assert.Len(t, topics.TopicNames, 25) ··· 128 134 newTopics = append(newTopics, "t26") 129 135 req = NewRequestWithJSON(t, "PUT", url, &api.RepoTopicOptions{ 130 136 Topics: newTopics, 131 - }) 137 + }).AddTokenAuth(token2) 132 138 MakeRequest(t, req, http.StatusUnprocessableEntity) 133 139 134 140 // Test add a topic when there is already maximum 135 - req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "t26", token2) 141 + req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s", user2.Name, repo2.Name, "t26"). 142 + AddTokenAuth(token2) 136 143 MakeRequest(t, req, http.StatusUnprocessableEntity) 137 144 138 145 // Test delete a topic that repo doesn't have 139 - req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s?token=%s", user2.Name, repo2.Name, "Topicname1", token2) 146 + req = NewRequestf(t, "DELETE", "/api/v1/repos/%s/%s/topics/%s", user2.Name, repo2.Name, "Topicname1"). 147 + AddTokenAuth(token2) 140 148 MakeRequest(t, req, http.StatusNotFound) 141 149 142 150 // Get user4's token 143 151 token4 := getUserToken(t, user4.Name, auth_model.AccessTokenScopeWriteRepository) 144 152 145 153 // Test read topics with write access 146 - url = fmt.Sprintf("/api/v1/repos/%s/%s/topics?token=%s", org3.Name, repo3.Name, token4) 147 - req = NewRequest(t, "GET", url) 154 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/%s/topics", org3.Name, repo3.Name)). 155 + AddTokenAuth(token4) 148 156 res = MakeRequest(t, req, http.StatusOK) 149 157 DecodeJSON(t, res, &topics) 150 158 assert.Empty(t, topics.TopicNames) 151 159 152 160 // Test add a topic to repo with write access (requires repo admin access) 153 - req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s?token=%s", org3.Name, repo3.Name, "topicName", token4) 161 + req = NewRequestf(t, "PUT", "/api/v1/repos/%s/%s/topics/%s", org3.Name, repo3.Name, "topicName"). 162 + AddTokenAuth(token4) 154 163 MakeRequest(t, req, http.StatusForbidden) 155 164 }
+36 -18
tests/integration/api_team_test.go
··· 34 34 35 35 session := loginUser(t, user.Name) 36 36 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadOrganization) 37 - req := NewRequestf(t, "GET", "/api/v1/teams/%d?token="+token, teamUser.TeamID) 37 + req := NewRequestf(t, "GET", "/api/v1/teams/%d", teamUser.TeamID). 38 + AddTokenAuth(token) 38 39 resp := MakeRequest(t, req, http.StatusOK) 39 40 40 41 var apiTeam api.Team ··· 49 50 50 51 session = loginUser(t, user2.Name) 51 52 token = getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadOrganization) 52 - req = NewRequestf(t, "GET", "/api/v1/teams/%d?token="+token, teamUser.TeamID) 53 + req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamUser.TeamID). 54 + AddTokenAuth(token) 53 55 _ = MakeRequest(t, req, http.StatusForbidden) 54 56 55 57 req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamUser.TeamID) ··· 70 72 Permission: "write", 71 73 Units: []string{"repo.code", "repo.issues"}, 72 74 } 73 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", org.Name, token), teamToCreate) 75 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate). 76 + AddTokenAuth(token) 74 77 resp = MakeRequest(t, req, http.StatusCreated) 75 78 apiTeam = api.Team{} 76 79 DecodeJSON(t, resp, &apiTeam) ··· 91 94 Units: []string{"repo.code", "repo.pulls", "repo.releases"}, 92 95 } 93 96 94 - req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEdit) 97 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEdit). 98 + AddTokenAuth(token) 95 99 resp = MakeRequest(t, req, http.StatusOK) 96 100 apiTeam = api.Team{} 97 101 DecodeJSON(t, resp, &apiTeam) ··· 103 107 // Edit team Description only 104 108 editDescription = "first team" 105 109 teamToEditDesc := api.EditTeamOption{Description: &editDescription} 106 - req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEditDesc) 110 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEditDesc). 111 + AddTokenAuth(token) 107 112 resp = MakeRequest(t, req, http.StatusOK) 108 113 apiTeam = api.Team{} 109 114 DecodeJSON(t, resp, &apiTeam) ··· 115 120 // Read team. 116 121 teamRead := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: teamID}) 117 122 assert.NoError(t, teamRead.LoadUnits(db.DefaultContext)) 118 - req = NewRequestf(t, "GET", "/api/v1/teams/%d?token="+token, teamID) 123 + req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamID). 124 + AddTokenAuth(token) 119 125 resp = MakeRequest(t, req, http.StatusOK) 120 126 apiTeam = api.Team{} 121 127 DecodeJSON(t, resp, &apiTeam) ··· 123 129 teamRead.AccessMode.String(), teamRead.GetUnitNames(), teamRead.GetUnitsMap()) 124 130 125 131 // Delete team. 126 - req = NewRequestf(t, "DELETE", "/api/v1/teams/%d?token="+token, teamID) 132 + req = NewRequestf(t, "DELETE", "/api/v1/teams/%d", teamID). 133 + AddTokenAuth(token) 127 134 MakeRequest(t, req, http.StatusNoContent) 128 135 unittest.AssertNotExistsBean(t, &organization.Team{ID: teamID}) 129 136 ··· 136 143 Permission: "write", 137 144 UnitsMap: map[string]string{"repo.code": "read", "repo.issues": "write", "repo.wiki": "none"}, 138 145 } 139 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", org.Name, token), teamToCreate) 146 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate). 147 + AddTokenAuth(token) 140 148 resp = MakeRequest(t, req, http.StatusCreated) 141 149 apiTeam = api.Team{} 142 150 DecodeJSON(t, resp, &apiTeam) ··· 157 165 UnitsMap: map[string]string{"repo.code": "read", "repo.pulls": "read", "repo.releases": "write"}, 158 166 } 159 167 160 - req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEdit) 168 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEdit). 169 + AddTokenAuth(token) 161 170 resp = MakeRequest(t, req, http.StatusOK) 162 171 apiTeam = api.Team{} 163 172 DecodeJSON(t, resp, &apiTeam) ··· 169 178 // Edit team Description only 170 179 editDescription = "second team" 171 180 teamToEditDesc = api.EditTeamOption{Description: &editDescription} 172 - req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d?token=%s", teamID, token), teamToEditDesc) 181 + req = NewRequestWithJSON(t, "PATCH", fmt.Sprintf("/api/v1/teams/%d", teamID), teamToEditDesc). 182 + AddTokenAuth(token) 173 183 resp = MakeRequest(t, req, http.StatusOK) 174 184 apiTeam = api.Team{} 175 185 DecodeJSON(t, resp, &apiTeam) ··· 180 190 181 191 // Read team. 182 192 teamRead = unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: teamID}) 183 - req = NewRequestf(t, "GET", "/api/v1/teams/%d?token="+token, teamID) 193 + req = NewRequestf(t, "GET", "/api/v1/teams/%d", teamID). 194 + AddTokenAuth(token) 184 195 resp = MakeRequest(t, req, http.StatusOK) 185 196 apiTeam = api.Team{} 186 197 DecodeJSON(t, resp, &apiTeam) ··· 189 200 teamRead.AccessMode.String(), teamRead.GetUnitNames(), teamRead.GetUnitsMap()) 190 201 191 202 // Delete team. 192 - req = NewRequestf(t, "DELETE", "/api/v1/teams/%d?token="+token, teamID) 203 + req = NewRequestf(t, "DELETE", "/api/v1/teams/%d", teamID). 204 + AddTokenAuth(token) 193 205 MakeRequest(t, req, http.StatusNoContent) 194 206 unittest.AssertNotExistsBean(t, &organization.Team{ID: teamID}) 195 207 ··· 200 212 IncludesAllRepositories: true, 201 213 Permission: "admin", 202 214 } 203 - req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", org.Name, token), teamToCreate) 215 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", org.Name), teamToCreate). 216 + AddTokenAuth(token) 204 217 resp = MakeRequest(t, req, http.StatusCreated) 205 218 apiTeam = api.Team{} 206 219 DecodeJSON(t, resp, &apiTeam) ··· 219 232 teamID = apiTeam.ID 220 233 221 234 // Delete team. 222 - req = NewRequestf(t, "DELETE", "/api/v1/teams/%d?token="+token, teamID) 235 + req = NewRequestf(t, "DELETE", "/api/v1/teams/%d", teamID). 236 + AddTokenAuth(token) 223 237 MakeRequest(t, req, http.StatusNoContent) 224 238 unittest.AssertNotExistsBean(t, &organization.Team{ID: teamID}) 225 239 } ··· 263 277 var results TeamSearchResults 264 278 265 279 token := getUserToken(t, user.Name, auth_model.AccessTokenScopeReadOrganization) 266 - req := NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s&token=%s", org.Name, "_team", token) 280 + req := NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "_team"). 281 + AddTokenAuth(token) 267 282 resp := MakeRequest(t, req, http.StatusOK) 268 283 DecodeJSON(t, resp, &results) 269 284 assert.NotEmpty(t, results.Data) ··· 274 289 user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}) 275 290 token5 := getUserToken(t, user5.Name, auth_model.AccessTokenScopeReadOrganization) 276 291 277 - req = NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s&token=%s", org.Name, "team", token5) 292 + req = NewRequestf(t, "GET", "/api/v1/orgs/%s/teams/search?q=%s", org.Name, "team"). 293 + AddTokenAuth(token5) 278 294 MakeRequest(t, req, http.StatusForbidden) 279 295 } 280 296 ··· 288 304 var results api.Repository 289 305 290 306 token := getUserToken(t, user.Name, auth_model.AccessTokenScopeReadOrganization) 291 - req := NewRequestf(t, "GET", "/api/v1/teams/%d/repos/%s/?token=%s", team.ID, teamRepo.FullName(), token) 307 + req := NewRequestf(t, "GET", "/api/v1/teams/%d/repos/%s/", team.ID, teamRepo.FullName()). 308 + AddTokenAuth(token) 292 309 resp := MakeRequest(t, req, http.StatusOK) 293 310 DecodeJSON(t, resp, &results) 294 311 assert.Equal(t, "big_test_private_4", teamRepo.Name) ··· 297 314 user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5}) 298 315 token5 := getUserToken(t, user5.Name, auth_model.AccessTokenScopeReadOrganization) 299 316 300 - req = NewRequestf(t, "GET", "/api/v1/teams/%d/repos/%s/?token=%s", team.ID, teamRepo.FullName(), token5) 317 + req = NewRequestf(t, "GET", "/api/v1/teams/%d/repos/%s/", team.ID, teamRepo.FullName()). 318 + AddTokenAuth(token5) 301 319 MakeRequest(t, req, http.StatusNotFound) 302 320 }
+4 -2
tests/integration/api_team_user_test.go
··· 25 25 normalUsername := "user2" 26 26 session := loginUser(t, normalUsername) 27 27 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadOrganization) 28 - req := NewRequest(t, "GET", "/api/v1/teams/1/members/user1?token="+token) 28 + req := NewRequest(t, "GET", "/api/v1/teams/1/members/user1"). 29 + AddTokenAuth(token) 29 30 MakeRequest(t, req, http.StatusNotFound) 30 31 31 - req = NewRequest(t, "GET", "/api/v1/teams/1/members/user2?token="+token) 32 + req = NewRequest(t, "GET", "/api/v1/teams/1/members/user2"). 33 + AddTokenAuth(token) 32 34 resp := MakeRequest(t, req, http.StatusOK) 33 35 var user2 *api.User 34 36 DecodeJSON(t, resp, &user2)
+20 -26
tests/integration/api_token_test.go
··· 35 35 defer tests.PrepareTestEnv(t)() 36 36 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) 37 37 38 - req := NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", unittest.NonexistentID) 39 - req = AddBasicAuthHeader(req, user.Name) 38 + req := NewRequestf(t, "DELETE", "/api/v1/users/user1/tokens/%d", unittest.NonexistentID). 39 + AddBasicAuth(user.Name) 40 40 MakeRequest(t, req, http.StatusNotFound) 41 41 } 42 42 ··· 46 46 47 47 // admin can get tokens for other users 48 48 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1}) 49 - req := NewRequestf(t, "GET", "/api/v1/users/user2/tokens") 50 - req = AddBasicAuthHeader(req, user.Name) 49 + req := NewRequest(t, "GET", "/api/v1/users/user2/tokens"). 50 + AddBasicAuth(user.Name) 51 51 MakeRequest(t, req, http.StatusOK) 52 52 53 53 // non-admin can get tokens for himself 54 54 user = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 2}) 55 - req = NewRequestf(t, "GET", "/api/v1/users/user2/tokens") 56 - req = AddBasicAuthHeader(req, user.Name) 55 + req = NewRequest(t, "GET", "/api/v1/users/user2/tokens"). 56 + AddBasicAuth(user.Name) 57 57 MakeRequest(t, req, http.StatusOK) 58 58 59 59 // non-admin can't get tokens for other users 60 60 user = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4}) 61 - req = NewRequestf(t, "GET", "/api/v1/users/user2/tokens") 62 - req = AddBasicAuthHeader(req, user.Name) 61 + req = NewRequest(t, "GET", "/api/v1/users/user2/tokens"). 62 + AddBasicAuth(user.Name) 63 63 MakeRequest(t, req, http.StatusForbidden) 64 64 } 65 65 ··· 73 73 74 74 // admin can delete tokens for other users 75 75 createAPIAccessTokenWithoutCleanUp(t, "test-key-1", user2, nil) 76 - req := NewRequestf(t, "DELETE", "/api/v1/users/"+user2.LoginName+"/tokens/test-key-1") 77 - req = AddBasicAuthHeader(req, admin.Name) 76 + req := NewRequest(t, "DELETE", "/api/v1/users/"+user2.LoginName+"/tokens/test-key-1"). 77 + AddBasicAuth(admin.Name) 78 78 MakeRequest(t, req, http.StatusNoContent) 79 79 80 80 // non-admin can delete tokens for himself 81 81 createAPIAccessTokenWithoutCleanUp(t, "test-key-2", user2, nil) 82 - req = NewRequestf(t, "DELETE", "/api/v1/users/"+user2.LoginName+"/tokens/test-key-2") 83 - req = AddBasicAuthHeader(req, user2.Name) 82 + req = NewRequest(t, "DELETE", "/api/v1/users/"+user2.LoginName+"/tokens/test-key-2"). 83 + AddBasicAuth(user2.Name) 84 84 MakeRequest(t, req, http.StatusNoContent) 85 85 86 86 // non-admin can't delete tokens for other users 87 87 createAPIAccessTokenWithoutCleanUp(t, "test-key-3", user2, nil) 88 - req = NewRequestf(t, "DELETE", "/api/v1/users/"+user2.LoginName+"/tokens/test-key-3") 89 - req = AddBasicAuthHeader(req, user4.Name) 88 + req = NewRequest(t, "DELETE", "/api/v1/users/"+user2.LoginName+"/tokens/test-key-3"). 89 + AddBasicAuth(user4.Name) 90 90 MakeRequest(t, req, http.StatusForbidden) 91 91 } 92 92 ··· 117 117 // from other endpoints and not updated. 118 118 // 119 119 // Test cases are in alphabetical order by URL. 120 - // 121 - // Note: query parameters are not currently supported since the token is 122 - // appended with `?=token=<token>`. 123 120 testCases := []requiredScopeTestCase{ 124 121 { 125 122 "/api/v1/admin/emails", ··· 526 523 accessToken := createAPIAccessTokenWithoutCleanUp(t, "test-token", user, &unauthorizedScopes) 527 524 defer deleteAPIAccessToken(t, accessToken, user) 528 525 529 - // Add API access token to the URL. 530 - url := fmt.Sprintf("%s?token=%s", testCase.url, accessToken.Token) 531 - 532 526 // Request the endpoint. Verify that permission is denied. 533 - req := NewRequestf(t, testCase.method, url) 527 + req := NewRequest(t, testCase.method, testCase.url). 528 + AddTokenAuth(accessToken.Token) 534 529 MakeRequest(t, req, http.StatusForbidden) 535 530 }) 536 531 } ··· 552 547 } 553 548 } 554 549 log.Debug("Requesting creation of token with scopes: %v", scopes) 555 - req := NewRequestWithJSON(t, "POST", "/api/v1/users/"+user.LoginName+"/tokens", payload) 556 - 557 - req = AddBasicAuthHeader(req, user.Name) 550 + req := NewRequestWithJSON(t, "POST", "/api/v1/users/"+user.LoginName+"/tokens", payload). 551 + AddBasicAuth(user.Name) 558 552 resp := MakeRequest(t, req, http.StatusCreated) 559 553 560 554 var newAccessToken api.AccessToken ··· 572 566 // createAPIAccessTokenWithoutCleanUp Delete an API access token and assert that 573 567 // deletion succeeded. 574 568 func deleteAPIAccessToken(t *testing.T, accessToken api.AccessToken, user *user_model.User) { 575 - req := NewRequestf(t, "DELETE", "/api/v1/users/"+user.LoginName+"/tokens/%d", accessToken.ID) 576 - req = AddBasicAuthHeader(req, user.Name) 569 + req := NewRequestf(t, "DELETE", "/api/v1/users/"+user.LoginName+"/tokens/%d", accessToken.ID). 570 + AddBasicAuth(user.Name) 577 571 MakeRequest(t, req, http.StatusNoContent) 578 572 579 573 unittest.AssertNotExistsBean(t, &auth_model.AccessToken{ID: accessToken.ID})
+6 -6
tests/integration/api_twofa_test.go
··· 23 23 24 24 user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 16}) 25 25 26 - req := NewRequestf(t, "GET", "/api/v1/user") 27 - req = AddBasicAuthHeader(req, user.Name) 26 + req := NewRequest(t, "GET", "/api/v1/user"). 27 + AddBasicAuth(user.Name) 28 28 MakeRequest(t, req, http.StatusOK) 29 29 30 30 otpKey, err := totp.Generate(totp.GenerateOpts{ ··· 41 41 42 42 assert.NoError(t, auth_model.NewTwoFactor(db.DefaultContext, tfa)) 43 43 44 - req = NewRequestf(t, "GET", "/api/v1/user") 45 - req = AddBasicAuthHeader(req, user.Name) 44 + req = NewRequest(t, "GET", "/api/v1/user"). 45 + AddBasicAuth(user.Name) 46 46 MakeRequest(t, req, http.StatusUnauthorized) 47 47 48 48 passcode, err := totp.GenerateCode(otpKey.Secret(), time.Now()) 49 49 assert.NoError(t, err) 50 50 51 - req = NewRequestf(t, "GET", "/api/v1/user") 52 - req = AddBasicAuthHeader(req, user.Name) 51 + req = NewRequest(t, "GET", "/api/v1/user"). 52 + AddBasicAuth(user.Name) 53 53 req.Header.Set("X-Gitea-OTP", passcode) 54 54 MakeRequest(t, req, http.StatusOK) 55 55 }
+8 -4
tests/integration/api_user_avatar_test.go
··· 35 35 Image: base64.StdEncoding.EncodeToString(avatar), 36 36 } 37 37 38 - req := NewRequestWithJSON(t, "POST", "/api/v1/user/avatar?token="+token, &opts) 38 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/avatar", &opts). 39 + AddTokenAuth(token) 39 40 MakeRequest(t, req, http.StatusNoContent) 40 41 41 42 opts = api.UpdateUserAvatarOption{ 42 43 Image: "Invalid", 43 44 } 44 45 45 - req = NewRequestWithJSON(t, "POST", "/api/v1/user/avatar?token="+token, &opts) 46 + req = NewRequestWithJSON(t, "POST", "/api/v1/user/avatar", &opts). 47 + AddTokenAuth(token) 46 48 MakeRequest(t, req, http.StatusBadRequest) 47 49 48 50 // Test what happens if you use a file that is not an image ··· 56 58 Image: base64.StdEncoding.EncodeToString(text), 57 59 } 58 60 59 - req = NewRequestWithJSON(t, "POST", "/api/v1/user/avatar?token="+token, &opts) 61 + req = NewRequestWithJSON(t, "POST", "/api/v1/user/avatar", &opts). 62 + AddTokenAuth(token) 60 63 MakeRequest(t, req, http.StatusInternalServerError) 61 64 } 62 65 ··· 67 70 session := loginUser(t, normalUsername) 68 71 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser) 69 72 70 - req := NewRequest(t, "DELETE", "/api/v1/user/avatar?token="+token) 73 + req := NewRequest(t, "DELETE", "/api/v1/user/avatar"). 74 + AddTokenAuth(token) 71 75 MakeRequest(t, req, http.StatusNoContent) 72 76 }
+14 -7
tests/integration/api_user_email_test.go
··· 21 21 session := loginUser(t, normalUsername) 22 22 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser) 23 23 24 - req := NewRequest(t, "GET", "/api/v1/user/emails?token="+token) 24 + req := NewRequest(t, "GET", "/api/v1/user/emails"). 25 + AddTokenAuth(token) 25 26 resp := MakeRequest(t, req, http.StatusOK) 26 27 27 28 var emails []*api.Email ··· 52 53 Emails: []string{"user101@example.com"}, 53 54 } 54 55 55 - req := NewRequestWithJSON(t, "POST", "/api/v1/user/emails?token="+token, &opts) 56 + req := NewRequestWithJSON(t, "POST", "/api/v1/user/emails", &opts). 57 + AddTokenAuth(token) 56 58 MakeRequest(t, req, http.StatusUnprocessableEntity) 57 59 58 60 opts = api.CreateEmailOption{ 59 61 Emails: []string{"user2-3@example.com"}, 60 62 } 61 - req = NewRequestWithJSON(t, "POST", "/api/v1/user/emails?token="+token, &opts) 63 + req = NewRequestWithJSON(t, "POST", "/api/v1/user/emails", &opts). 64 + AddTokenAuth(token) 62 65 resp := MakeRequest(t, req, http.StatusCreated) 63 66 64 67 var emails []*api.Email ··· 74 77 opts = api.CreateEmailOption{ 75 78 Emails: []string{"notAEmail"}, 76 79 } 77 - req = NewRequestWithJSON(t, "POST", "/api/v1/user/emails?token="+token, &opts) 80 + req = NewRequestWithJSON(t, "POST", "/api/v1/user/emails", &opts). 81 + AddTokenAuth(token) 78 82 MakeRequest(t, req, http.StatusUnprocessableEntity) 79 83 } 80 84 ··· 88 92 opts := api.DeleteEmailOption{ 89 93 Emails: []string{"user2-3@example.com"}, 90 94 } 91 - req := NewRequestWithJSON(t, "DELETE", "/api/v1/user/emails?token="+token, &opts) 95 + req := NewRequestWithJSON(t, "DELETE", "/api/v1/user/emails", &opts). 96 + AddTokenAuth(token) 92 97 MakeRequest(t, req, http.StatusNotFound) 93 98 94 99 opts = api.DeleteEmailOption{ 95 100 Emails: []string{"user2-2@example.com"}, 96 101 } 97 - req = NewRequestWithJSON(t, "DELETE", "/api/v1/user/emails?token="+token, &opts) 102 + req = NewRequestWithJSON(t, "DELETE", "/api/v1/user/emails", &opts). 103 + AddTokenAuth(token) 98 104 MakeRequest(t, req, http.StatusNoContent) 99 105 100 - req = NewRequest(t, "GET", "/api/v1/user/emails?token="+token) 106 + req = NewRequest(t, "GET", "/api/v1/user/emails"). 107 + AddTokenAuth(token) 101 108 resp := MakeRequest(t, req, http.StatusOK) 102 109 103 110 var emails []*api.Email
+20 -10
tests/integration/api_user_follow_test.go
··· 30 30 t.Run("Follow", func(t *testing.T) { 31 31 defer tests.PrintCurrentTest(t)() 32 32 33 - req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/following/%s?token=%s", user1, token2)) 33 + req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/following/%s", user1)). 34 + AddTokenAuth(token2) 34 35 MakeRequest(t, req, http.StatusNoContent) 35 36 }) 36 37 37 38 t.Run("ListFollowing", func(t *testing.T) { 38 39 defer tests.PrintCurrentTest(t)() 39 40 40 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/following?token=%s", user2, token2)) 41 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/following", user2)). 42 + AddTokenAuth(token2) 41 43 resp := MakeRequest(t, req, http.StatusOK) 42 44 43 45 var users []api.User ··· 49 51 t.Run("ListMyFollowing", func(t *testing.T) { 50 52 defer tests.PrintCurrentTest(t)() 51 53 52 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/following?token=%s", token2)) 54 + req := NewRequest(t, "GET", "/api/v1/user/following"). 55 + AddTokenAuth(token2) 53 56 resp := MakeRequest(t, req, http.StatusOK) 54 57 55 58 var users []api.User ··· 61 64 t.Run("ListFollowers", func(t *testing.T) { 62 65 defer tests.PrintCurrentTest(t)() 63 66 64 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/followers?token=%s", user1, token1)) 67 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/followers", user1)). 68 + AddTokenAuth(token1) 65 69 resp := MakeRequest(t, req, http.StatusOK) 66 70 67 71 var users []api.User ··· 73 77 t.Run("ListMyFollowers", func(t *testing.T) { 74 78 defer tests.PrintCurrentTest(t)() 75 79 76 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/followers?token=%s", token1)) 80 + req := NewRequest(t, "GET", "/api/v1/user/followers"). 81 + AddTokenAuth(token1) 77 82 resp := MakeRequest(t, req, http.StatusOK) 78 83 79 84 var users []api.User ··· 85 90 t.Run("CheckFollowing", func(t *testing.T) { 86 91 defer tests.PrintCurrentTest(t)() 87 92 88 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/following/%s?token=%s", user2, user1, token2)) 93 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/following/%s", user2, user1)). 94 + AddTokenAuth(token2) 89 95 MakeRequest(t, req, http.StatusNoContent) 90 96 91 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/following/%s?token=%s", user1, user2, token2)) 97 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/following/%s", user1, user2)). 98 + AddTokenAuth(token2) 92 99 MakeRequest(t, req, http.StatusNotFound) 93 100 }) 94 101 95 102 t.Run("CheckMyFollowing", func(t *testing.T) { 96 103 defer tests.PrintCurrentTest(t)() 97 104 98 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/following/%s?token=%s", user1, token2)) 105 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/following/%s", user1)). 106 + AddTokenAuth(token2) 99 107 MakeRequest(t, req, http.StatusNoContent) 100 108 101 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/following/%s?token=%s", user2, token1)) 109 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/following/%s", user2)). 110 + AddTokenAuth(token1) 102 111 MakeRequest(t, req, http.StatusNotFound) 103 112 }) 104 113 105 114 t.Run("Unfollow", func(t *testing.T) { 106 115 defer tests.PrintCurrentTest(t)() 107 116 108 - req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/following/%s?token=%s", user1, token2)) 117 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/following/%s", user1)). 118 + AddTokenAuth(token2) 109 119 MakeRequest(t, req, http.StatusNoContent) 110 120 }) 111 121 }
+2 -2
tests/integration/api_user_heatmap_test.go
··· 27 27 timeutil.Set(fakeNow) 28 28 defer timeutil.Unset() 29 29 30 - urlStr := fmt.Sprintf("/api/v1/users/%s/heatmap?token=%s", normalUsername, token) 31 - req := NewRequest(t, "GET", urlStr) 30 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/heatmap", normalUsername)). 31 + AddTokenAuth(token) 32 32 resp := MakeRequest(t, req, http.StatusOK) 33 33 var heatmap []*activities_model.UserHeatmapData 34 34 DecodeJSON(t, resp, &heatmap)
+6 -3
tests/integration/api_user_info_test.go
··· 31 31 t.Run("GetInfo", func(t *testing.T) { 32 32 defer tests.PrintCurrentTest(t)() 33 33 34 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s?token=%s", user2, token)) 34 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s", user2)). 35 + AddTokenAuth(token) 35 36 resp := MakeRequest(t, req, http.StatusOK) 36 37 37 38 var u api.User ··· 48 49 assert.Equal(t, org3.GetPlaceholderEmail(), u.Email) 49 50 50 51 // Test if the correct Mail is returned if a User is logged in 51 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s?token=%s", org3.Name, token)) 52 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s", org3.Name)). 53 + AddTokenAuth(token) 52 54 resp = MakeRequest(t, req, http.StatusOK) 53 55 DecodeJSON(t, resp, &u) 54 56 assert.Equal(t, org3.GetEmail(), u.Email) ··· 57 59 t.Run("GetAuthenticatedUser", func(t *testing.T) { 58 60 defer tests.PrintCurrentTest(t)() 59 61 60 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user?token=%s", token)) 62 + req := NewRequest(t, "GET", "/api/v1/user"). 63 + AddTokenAuth(token) 61 64 resp := MakeRequest(t, req, http.StatusOK) 62 65 63 66 var u api.User
+6 -3
tests/integration/api_user_org_perm_test.go
··· 35 35 session := loginUser(t, auoptc.LoginUser) 36 36 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadOrganization, auth_model.AccessTokenScopeReadUser) 37 37 38 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/orgs/%s/permissions?token=%s", auoptc.User, auoptc.Organization, token)) 38 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/orgs/%s/permissions", auoptc.User, auoptc.Organization)). 39 + AddTokenAuth(token) 39 40 resp := MakeRequest(t, req, http.StatusOK) 40 41 41 42 var apiOP api.OrganizationPermissions ··· 128 129 session := loginUser(t, "user1") 129 130 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser, auth_model.AccessTokenScopeReadOrganization) 130 131 131 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/unknow/orgs/org25/permissions?token=%s", token)) 132 + req := NewRequest(t, "GET", "/api/v1/users/unknow/orgs/org25/permissions"). 133 + AddTokenAuth(token) 132 134 resp := MakeRequest(t, req, http.StatusNotFound) 133 135 134 136 var apiError api.APIError ··· 142 144 session := loginUser(t, "user1") 143 145 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser, auth_model.AccessTokenScopeReadOrganization) 144 146 145 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/user1/orgs/unknow/permissions?token=%s", token)) 147 + req := NewRequest(t, "GET", "/api/v1/users/user1/orgs/unknow/permissions"). 148 + AddTokenAuth(token) 146 149 resp := MakeRequest(t, req, http.StatusNotFound) 147 150 var apiError api.APIError 148 151 DecodeJSON(t, resp, &apiError)
+4 -3
tests/integration/api_user_orgs_test.go
··· 74 74 if len(userDoer) != 0 { 75 75 token = getUserToken(t, userDoer, auth_model.AccessTokenScopeReadOrganization, auth_model.AccessTokenScopeReadUser) 76 76 } 77 - urlStr := fmt.Sprintf("/api/v1/users/%s/orgs?token=%s", userCheck, token) 78 - req := NewRequest(t, "GET", urlStr) 77 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/orgs", userCheck)). 78 + AddTokenAuth(token) 79 79 resp := MakeRequest(t, req, http.StatusOK) 80 80 DecodeJSON(t, resp, &orgs) 81 81 return orgs ··· 95 95 96 96 normalUsername := "user2" 97 97 token := getUserToken(t, normalUsername, auth_model.AccessTokenScopeReadOrganization, auth_model.AccessTokenScopeReadUser) 98 - req = NewRequest(t, "GET", "/api/v1/user/orgs?token="+token) 98 + req = NewRequest(t, "GET", "/api/v1/user/orgs"). 99 + AddTokenAuth(token) 99 100 resp := MakeRequest(t, req, http.StatusOK) 100 101 var orgs []*api.Organization 101 102 DecodeJSON(t, resp, &orgs)
+4 -3
tests/integration/api_user_search_test.go
··· 27 27 session := loginUser(t, adminUsername) 28 28 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser) 29 29 query := "user2" 30 - req := NewRequestf(t, "GET", "/api/v1/users/search?token=%s&q=%s", token, query) 30 + req := NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query). 31 + AddTokenAuth(token) 31 32 resp := MakeRequest(t, req, http.StatusOK) 32 33 33 34 var results SearchResults ··· 84 85 session := loginUser(t, adminUsername) 85 86 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser) 86 87 query := "user31" 87 - req := NewRequestf(t, "GET", "/api/v1/users/search?token=%s&q=%s", token, query) 88 - req.SetBasicAuth(token, "x-oauth-basic") 88 + req := NewRequestf(t, "GET", "/api/v1/users/search?q=%s", query). 89 + AddTokenAuth(token) 89 90 resp := MakeRequest(t, req, http.StatusOK) 90 91 91 92 var results SearchResults
+13 -10
tests/integration/api_user_secrets_test.go
··· 55 55 } 56 56 57 57 for _, c := range cases { 58 - req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/user/actions/secrets/%s?token=%s", c.Name, token), api.CreateOrUpdateSecretOption{ 58 + req := NewRequestWithJSON(t, "PUT", fmt.Sprintf("/api/v1/user/actions/secrets/%s", c.Name), api.CreateOrUpdateSecretOption{ 59 59 Data: "data", 60 - }) 60 + }).AddTokenAuth(token) 61 61 MakeRequest(t, req, c.ExpectedStatus) 62 62 } 63 63 }) 64 64 65 65 t.Run("Update", func(t *testing.T) { 66 66 name := "update_secret" 67 - url := fmt.Sprintf("/api/v1/user/actions/secrets/%s?token=%s", name, token) 67 + url := fmt.Sprintf("/api/v1/user/actions/secrets/%s", name) 68 68 69 69 req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{ 70 70 Data: "initial", 71 - }) 71 + }).AddTokenAuth(token) 72 72 MakeRequest(t, req, http.StatusCreated) 73 73 74 74 req = NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{ 75 75 Data: "changed", 76 - }) 76 + }).AddTokenAuth(token) 77 77 MakeRequest(t, req, http.StatusNoContent) 78 78 }) 79 79 80 80 t.Run("Delete", func(t *testing.T) { 81 81 name := "delete_secret" 82 - url := fmt.Sprintf("/api/v1/user/actions/secrets/%s?token=%s", name, token) 82 + url := fmt.Sprintf("/api/v1/user/actions/secrets/%s", name) 83 83 84 84 req := NewRequestWithJSON(t, "PUT", url, api.CreateOrUpdateSecretOption{ 85 85 Data: "initial", 86 - }) 86 + }).AddTokenAuth(token) 87 87 MakeRequest(t, req, http.StatusCreated) 88 88 89 - req = NewRequest(t, "DELETE", url) 89 + req = NewRequest(t, "DELETE", url). 90 + AddTokenAuth(token) 90 91 MakeRequest(t, req, http.StatusNoContent) 91 92 92 - req = NewRequest(t, "DELETE", url) 93 + req = NewRequest(t, "DELETE", url). 94 + AddTokenAuth(token) 93 95 MakeRequest(t, req, http.StatusNotFound) 94 96 95 - req = NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/actions/secrets/000?token=%s", token)) 97 + req = NewRequest(t, "DELETE", "/api/v1/user/actions/secrets/000"). 98 + AddTokenAuth(token) 96 99 MakeRequest(t, req, http.StatusBadRequest) 97 100 }) 98 101 }
+12 -6
tests/integration/api_user_star_test.go
··· 28 28 t.Run("Star", func(t *testing.T) { 29 29 defer tests.PrintCurrentTest(t)() 30 30 31 - req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo, tokenWithUserScope)) 31 + req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/starred/%s", repo)). 32 + AddTokenAuth(tokenWithUserScope) 32 33 MakeRequest(t, req, http.StatusNoContent) 33 34 }) 34 35 35 36 t.Run("GetStarredRepos", func(t *testing.T) { 36 37 defer tests.PrintCurrentTest(t)() 37 38 38 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/starred?token=%s", user, token)) 39 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/starred", user)). 40 + AddTokenAuth(token) 39 41 resp := MakeRequest(t, req, http.StatusOK) 40 42 41 43 assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) ··· 49 51 t.Run("GetMyStarredRepos", func(t *testing.T) { 50 52 defer tests.PrintCurrentTest(t)() 51 53 52 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred?token=%s", tokenWithUserScope)) 54 + req := NewRequest(t, "GET", "/api/v1/user/starred"). 55 + AddTokenAuth(tokenWithUserScope) 53 56 resp := MakeRequest(t, req, http.StatusOK) 54 57 55 58 assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) ··· 63 66 t.Run("IsStarring", func(t *testing.T) { 64 67 defer tests.PrintCurrentTest(t)() 65 68 66 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo, tokenWithUserScope)) 69 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s", repo)). 70 + AddTokenAuth(tokenWithUserScope) 67 71 MakeRequest(t, req, http.StatusNoContent) 68 72 69 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo+"notexisting", tokenWithUserScope)) 73 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s", repo+"notexisting")). 74 + AddTokenAuth(tokenWithUserScope) 70 75 MakeRequest(t, req, http.StatusNotFound) 71 76 }) 72 77 73 78 t.Run("Unstar", func(t *testing.T) { 74 79 defer tests.PrintCurrentTest(t)() 75 80 76 - req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/starred/%s?token=%s", repo, tokenWithUserScope)) 81 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/starred/%s", repo)). 82 + AddTokenAuth(tokenWithUserScope) 77 83 MakeRequest(t, req, http.StatusNoContent) 78 84 }) 79 85 }
+12 -6
tests/integration/api_user_watch_test.go
··· 28 28 t.Run("Watch", func(t *testing.T) { 29 29 defer tests.PrintCurrentTest(t)() 30 30 31 - req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/subscription?token=%s", repo, tokenWithRepoScope)) 31 + req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/subscription", repo)). 32 + AddTokenAuth(tokenWithRepoScope) 32 33 MakeRequest(t, req, http.StatusOK) 33 34 }) 34 35 35 36 t.Run("GetWatchedRepos", func(t *testing.T) { 36 37 defer tests.PrintCurrentTest(t)() 37 38 38 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/subscriptions?token=%s", user, token)) 39 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/subscriptions", user)). 40 + AddTokenAuth(token) 39 41 resp := MakeRequest(t, req, http.StatusOK) 40 42 41 43 assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) ··· 49 51 t.Run("GetMyWatchedRepos", func(t *testing.T) { 50 52 defer tests.PrintCurrentTest(t)() 51 53 52 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/subscriptions?token=%s", tokenWithRepoScope)) 54 + req := NewRequest(t, "GET", "/api/v1/user/subscriptions"). 55 + AddTokenAuth(tokenWithRepoScope) 53 56 resp := MakeRequest(t, req, http.StatusOK) 54 57 55 58 assert.Equal(t, "1", resp.Header().Get("X-Total-Count")) ··· 63 66 t.Run("IsWatching", func(t *testing.T) { 64 67 defer tests.PrintCurrentTest(t)() 65 68 66 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/subscription?token=%s", repo, tokenWithRepoScope)) 69 + req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/subscription", repo)). 70 + AddTokenAuth(tokenWithRepoScope) 67 71 MakeRequest(t, req, http.StatusOK) 68 72 69 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/subscription?token=%s", repo+"notexisting", tokenWithRepoScope)) 73 + req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/%s/subscription", repo+"notexisting")). 74 + AddTokenAuth(tokenWithRepoScope) 70 75 MakeRequest(t, req, http.StatusNotFound) 71 76 }) 72 77 73 78 t.Run("Unwatch", func(t *testing.T) { 74 79 defer tests.PrintCurrentTest(t)() 75 80 76 - req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/subscription?token=%s", repo, tokenWithRepoScope)) 81 + req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/repos/%s/subscription", repo)). 82 + AddTokenAuth(tokenWithRepoScope) 77 83 MakeRequest(t, req, http.StatusNoContent) 78 84 }) 79 85 }
+4 -4
tests/integration/api_wiki_test.go
··· 182 182 session := loginUser(t, username) 183 183 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 184 184 185 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/new?token=%s", username, "repo1", token) 185 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/new", username, "repo1") 186 186 187 187 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateWikiPageOptions{ 188 188 Title: title, 189 189 ContentBase64: base64.StdEncoding.EncodeToString([]byte("Wiki page content for API unit tests")), 190 190 Message: "", 191 - }) 191 + }).AddTokenAuth(token) 192 192 MakeRequest(t, req, http.StatusCreated) 193 193 } 194 194 } ··· 199 199 session := loginUser(t, username) 200 200 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 201 201 202 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/page/Page-With-Spaced-Name?token=%s", username, "repo1", token) 202 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/wiki/page/Page-With-Spaced-Name", username, "repo1") 203 203 204 204 req := NewRequestWithJSON(t, "PATCH", urlStr, &api.CreateWikiPageOptions{ 205 205 Title: "edited title", 206 206 ContentBase64: base64.StdEncoding.EncodeToString([]byte("Edited wiki page content for API unit tests")), 207 207 Message: "", 208 - }) 208 + }).AddTokenAuth(token) 209 209 MakeRequest(t, req, http.StatusOK) 210 210 } 211 211
+1 -1
tests/integration/cors_test.go
··· 14 14 15 15 func TestCORSNotSet(t *testing.T) { 16 16 defer tests.PrepareTestEnv(t)() 17 - req := NewRequestf(t, "GET", "/api/v1/version") 17 + req := NewRequest(t, "GET", "/api/v1/version") 18 18 session := loginUser(t, "user2") 19 19 resp := session.MakeRequest(t, req, http.StatusOK) 20 20 assert.Equal(t, resp.Code, http.StatusOK)
+4 -5
tests/integration/empty_repo_test.go
··· 6 6 import ( 7 7 "bytes" 8 8 "encoding/base64" 9 - "fmt" 10 9 "io" 11 10 "mime/multipart" 12 11 "net/http" ··· 119 118 session := loginUser(t, "user30") 120 119 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 121 120 122 - url := fmt.Sprintf("/api/v1/repos/user30/empty/contents/new-file.txt?token=%s", token) 123 - req := NewRequestWithJSON(t, "POST", url, &api.CreateFileOptions{ 121 + req := NewRequestWithJSON(t, "POST", "/api/v1/repos/user30/empty/contents/new-file.txt", &api.CreateFileOptions{ 124 122 FileOptions: api.FileOptions{ 125 123 NewBranchName: "new_branch", 126 124 Message: "init", 127 125 }, 128 126 ContentBase64: base64.StdEncoding.EncodeToString([]byte("newly-added-api-file")), 129 - }) 127 + }).AddTokenAuth(token) 130 128 131 129 resp := MakeRequest(t, req, http.StatusCreated) 132 130 var fileResponse api.FileResponse ··· 138 136 resp = session.MakeRequest(t, req, http.StatusOK) 139 137 assert.Contains(t, resp.Body.String(), "newly-added-api-file") 140 138 141 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/repos/user30/empty?token=%s", token)) 139 + req = NewRequest(t, "GET", "/api/v1/repos/user30/empty"). 140 + AddTokenAuth(token) 142 141 resp = session.MakeRequest(t, req, http.StatusOK) 143 142 var apiRepo api.Repository 144 143 DecodeJSON(t, resp, &apiRepo)
+6 -3
tests/integration/eventsource_test.go
··· 65 65 var apiNL []api.NotificationThread 66 66 67 67 // -- mark notifications as read -- 68 - req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?status-types=unread&token=%s", token)) 68 + req := NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). 69 + AddTokenAuth(token) 69 70 resp := session.MakeRequest(t, req, http.StatusOK) 70 71 71 72 DecodeJSON(t, resp, &apiNL) 72 73 assert.Len(t, apiNL, 2) 73 74 74 75 lastReadAt := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 <- only Notification 4 is in this filter ... 75 - req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s&token=%s", user2.Name, repo1.Name, lastReadAt, token)) 76 + req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/repos/%s/%s/notifications?last_read_at=%s", user2.Name, repo1.Name, lastReadAt)). 77 + AddTokenAuth(token) 76 78 session.MakeRequest(t, req, http.StatusResetContent) 77 79 78 - req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/notifications?token=%s&status-types=unread", token)) 80 + req = NewRequest(t, "GET", "/api/v1/notifications?status-types=unread"). 81 + AddTokenAuth(token) 79 82 resp = session.MakeRequest(t, req, http.StatusOK) 80 83 DecodeJSON(t, resp, &apiNL) 81 84 assert.Len(t, apiNL, 1)
+53 -28
tests/integration/integration_test.go
··· 163 163 return nil 164 164 } 165 165 166 - func (s *TestSession) MakeRequest(t testing.TB, req *http.Request, expectedStatus int) *httptest.ResponseRecorder { 166 + func (s *TestSession) MakeRequest(t testing.TB, rw *RequestWrapper, expectedStatus int) *httptest.ResponseRecorder { 167 167 t.Helper() 168 + req := rw.Request 168 169 baseURL, err := url.Parse(setting.AppURL) 169 170 assert.NoError(t, err) 170 171 for _, c := range s.jar.Cookies(baseURL) { 171 172 req.AddCookie(c) 172 173 } 173 - resp := MakeRequest(t, req, expectedStatus) 174 + resp := MakeRequest(t, rw, expectedStatus) 174 175 175 176 ch := http.Header{} 176 177 ch.Add("Cookie", strings.Join(resp.Header()["Set-Cookie"], ";")) ··· 180 181 return resp 181 182 } 182 183 183 - func (s *TestSession) MakeRequestNilResponseRecorder(t testing.TB, req *http.Request, expectedStatus int) *NilResponseRecorder { 184 + func (s *TestSession) MakeRequestNilResponseRecorder(t testing.TB, rw *RequestWrapper, expectedStatus int) *NilResponseRecorder { 184 185 t.Helper() 186 + req := rw.Request 185 187 baseURL, err := url.Parse(setting.AppURL) 186 188 assert.NoError(t, err) 187 189 for _, c := range s.jar.Cookies(baseURL) { 188 190 req.AddCookie(c) 189 191 } 190 - resp := MakeRequestNilResponseRecorder(t, req, expectedStatus) 192 + resp := MakeRequestNilResponseRecorder(t, rw, expectedStatus) 191 193 192 194 ch := http.Header{} 193 195 ch.Add("Cookie", strings.Join(resp.Header()["Set-Cookie"], ";")) ··· 197 199 return resp 198 200 } 199 201 200 - func (s *TestSession) MakeRequestNilResponseHashSumRecorder(t testing.TB, req *http.Request, expectedStatus int) *NilResponseHashSumRecorder { 202 + func (s *TestSession) MakeRequestNilResponseHashSumRecorder(t testing.TB, rw *RequestWrapper, expectedStatus int) *NilResponseHashSumRecorder { 201 203 t.Helper() 204 + req := rw.Request 202 205 baseURL, err := url.Parse(setting.AppURL) 203 206 assert.NoError(t, err) 204 207 for _, c := range s.jar.Cookies(baseURL) { 205 208 req.AddCookie(c) 206 209 } 207 - resp := MakeRequestNilResponseHashSumRecorder(t, req, expectedStatus) 210 + resp := MakeRequestNilResponseHashSumRecorder(t, rw, expectedStatus) 208 211 209 212 ch := http.Header{} 210 213 ch.Add("Cookie", strings.Join(resp.Header()["Set-Cookie"], ";")) ··· 314 317 return token 315 318 } 316 319 317 - func NewRequest(t testing.TB, method, urlStr string) *http.Request { 320 + type RequestWrapper struct { 321 + *http.Request 322 + } 323 + 324 + func (req *RequestWrapper) AddBasicAuth(username string) *RequestWrapper { 325 + req.Request.SetBasicAuth(username, userPassword) 326 + return req 327 + } 328 + 329 + func (req *RequestWrapper) AddTokenAuth(token string) *RequestWrapper { 330 + if token == "" { 331 + return req 332 + } 333 + if !strings.HasPrefix(token, "Bearer ") { 334 + token = "Bearer " + token 335 + } 336 + req.Request.Header.Set("Authorization", token) 337 + return req 338 + } 339 + 340 + func (req *RequestWrapper) SetHeader(name, value string) *RequestWrapper { 341 + req.Request.Header.Set(name, value) 342 + return req 343 + } 344 + 345 + func NewRequest(t testing.TB, method, urlStr string) *RequestWrapper { 318 346 t.Helper() 319 347 return NewRequestWithBody(t, method, urlStr, nil) 320 348 } 321 349 322 - func NewRequestf(t testing.TB, method, urlFormat string, args ...any) *http.Request { 350 + func NewRequestf(t testing.TB, method, urlFormat string, args ...any) *RequestWrapper { 323 351 t.Helper() 324 352 return NewRequest(t, method, fmt.Sprintf(urlFormat, args...)) 325 353 } 326 354 327 - func NewRequestWithValues(t testing.TB, method, urlStr string, values map[string]string) *http.Request { 355 + func NewRequestWithValues(t testing.TB, method, urlStr string, values map[string]string) *RequestWrapper { 328 356 t.Helper() 329 357 urlValues := url.Values{} 330 358 for key, value := range values { ··· 333 361 return NewRequestWithURLValues(t, method, urlStr, urlValues) 334 362 } 335 363 336 - func NewRequestWithURLValues(t testing.TB, method, urlStr string, urlValues url.Values) *http.Request { 364 + func NewRequestWithURLValues(t testing.TB, method, urlStr string, urlValues url.Values) *RequestWrapper { 337 365 t.Helper() 338 - req := NewRequestWithBody(t, method, urlStr, bytes.NewBufferString(urlValues.Encode())) 339 - req.Header.Add("Content-Type", "application/x-www-form-urlencoded") 340 - return req 366 + return NewRequestWithBody(t, method, urlStr, bytes.NewBufferString(urlValues.Encode())). 367 + SetHeader("Content-Type", "application/x-www-form-urlencoded") 341 368 } 342 369 343 - func NewRequestWithJSON(t testing.TB, method, urlStr string, v any) *http.Request { 370 + func NewRequestWithJSON(t testing.TB, method, urlStr string, v any) *RequestWrapper { 344 371 t.Helper() 345 372 346 373 jsonBytes, err := json.Marshal(v) 347 374 assert.NoError(t, err) 348 - req := NewRequestWithBody(t, method, urlStr, bytes.NewBuffer(jsonBytes)) 349 - req.Header.Add("Content-Type", "application/json") 350 - return req 375 + return NewRequestWithBody(t, method, urlStr, bytes.NewBuffer(jsonBytes)). 376 + SetHeader("Content-Type", "application/json") 351 377 } 352 378 353 - func NewRequestWithBody(t testing.TB, method, urlStr string, body io.Reader) *http.Request { 379 + func NewRequestWithBody(t testing.TB, method, urlStr string, body io.Reader) *RequestWrapper { 354 380 t.Helper() 355 381 if !strings.HasPrefix(urlStr, "http") && !strings.HasPrefix(urlStr, "/") { 356 382 urlStr = "/" + urlStr 357 383 } 358 - request, err := http.NewRequest(method, urlStr, body) 384 + req, err := http.NewRequest(method, urlStr, body) 359 385 assert.NoError(t, err) 360 - request.RequestURI = urlStr 361 - return request 362 - } 386 + req.RequestURI = urlStr 363 387 364 - func AddBasicAuthHeader(request *http.Request, username string) *http.Request { 365 - request.SetBasicAuth(username, userPassword) 366 - return request 388 + return &RequestWrapper{req} 367 389 } 368 390 369 391 const NoExpectedStatus = -1 370 392 371 - func MakeRequest(t testing.TB, req *http.Request, expectedStatus int) *httptest.ResponseRecorder { 393 + func MakeRequest(t testing.TB, rw *RequestWrapper, expectedStatus int) *httptest.ResponseRecorder { 372 394 t.Helper() 395 + req := rw.Request 373 396 recorder := httptest.NewRecorder() 374 397 if req.RemoteAddr == "" { 375 398 req.RemoteAddr = "test-mock:12345" ··· 383 406 return recorder 384 407 } 385 408 386 - func MakeRequestNilResponseRecorder(t testing.TB, req *http.Request, expectedStatus int) *NilResponseRecorder { 409 + func MakeRequestNilResponseRecorder(t testing.TB, rw *RequestWrapper, expectedStatus int) *NilResponseRecorder { 387 410 t.Helper() 411 + req := rw.Request 388 412 recorder := NewNilResponseRecorder() 389 413 testWebRoutes.ServeHTTP(recorder, req) 390 414 if expectedStatus != NoExpectedStatus { ··· 396 420 return recorder 397 421 } 398 422 399 - func MakeRequestNilResponseHashSumRecorder(t testing.TB, req *http.Request, expectedStatus int) *NilResponseHashSumRecorder { 423 + func MakeRequestNilResponseHashSumRecorder(t testing.TB, rw *RequestWrapper, expectedStatus int) *NilResponseHashSumRecorder { 400 424 t.Helper() 425 + req := rw.Request 401 426 recorder := NewNilResponseHashSumRecorder() 402 427 testWebRoutes.ServeHTTP(recorder, req) 403 428 if expectedStatus != NoExpectedStatus {
+4 -4
tests/integration/org_test.go
··· 169 169 Units: []string{"repo.code"}, 170 170 } 171 171 172 - req = NewRequestWithJSON(t, "POST", 173 - fmt.Sprintf("/api/v1/orgs/%s/teams?token=%s", orgName, token), teamToCreate) 172 + req = NewRequestWithJSON(t, "POST", fmt.Sprintf("/api/v1/orgs/%s/teams", orgName), teamToCreate). 173 + AddTokenAuth(token) 174 174 175 175 var apiTeam api.Team 176 176 ··· 183 183 // teamID := apiTeam.ID 184 184 185 185 // Now we need to add the restricted user to the team 186 - req = NewRequest(t, "PUT", 187 - fmt.Sprintf("/api/v1/teams/%d/members/%s?token=%s", apiTeam.ID, restrictedUser, token)) 186 + req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/teams/%d/members/%s", apiTeam.ID, restrictedUser)). 187 + AddTokenAuth(token) 188 188 _ = adminSession.MakeRequest(t, req, http.StatusNoContent) 189 189 190 190 // Now we need to check if the restrictedUser can access the repo
+4 -3
tests/integration/privateactivity_test.go
··· 35 35 36 36 session := loginUser(t, privateActivityTestUser) 37 37 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteIssue) 38 - urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues?state=all&token=%s", owner.Name, repoBefore.Name, token) 38 + urlStr := fmt.Sprintf("/api/v1/repos/%s/%s/issues?state=all", owner.Name, repoBefore.Name) 39 39 req := NewRequestWithJSON(t, "POST", urlStr, &api.CreateIssueOption{ 40 40 Body: "test", 41 41 Title: "test", 42 - }) 42 + }).AddTokenAuth(token) 43 43 session.MakeRequest(t, req, http.StatusCreated) 44 44 } 45 45 ··· 127 127 func testPrivateActivityHelperHasHeatmapContentFromSession(t *testing.T, session *TestSession) bool { 128 128 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser) 129 129 130 - req := NewRequestf(t, "GET", "/api/v1/users/%s/heatmap?token=%s", privateActivityTestUser, token) 130 + req := NewRequestf(t, "GET", "/api/v1/users/%s/heatmap", privateActivityTestUser). 131 + AddTokenAuth(token) 131 132 resp := session.MakeRequest(t, req, http.StatusOK) 132 133 133 134 var items []*activities_model.UserHeatmapData
+4 -4
tests/integration/pull_merge_test.go
··· 218 218 219 219 // Use API to create a conflicting pr 220 220 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 221 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", "user1", "repo1", token), &api.CreatePullRequestOption{ 221 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", "user1", "repo1"), &api.CreatePullRequestOption{ 222 222 Head: "conflict", 223 223 Base: "base", 224 224 Title: "create a conflicting pr", 225 - }) 225 + }).AddTokenAuth(token) 226 226 session.MakeRequest(t, req, http.StatusCreated) 227 227 228 228 // Now this PR will be marked conflict - or at least a race will do - so drop down to pure code at this point... ··· 326 326 327 327 // Use API to create a conflicting pr 328 328 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 329 - req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls?token=%s", "user1", "repo1", token), &api.CreatePullRequestOption{ 329 + req := NewRequestWithJSON(t, http.MethodPost, fmt.Sprintf("/api/v1/repos/%s/%s/pulls", "user1", "repo1"), &api.CreatePullRequestOption{ 330 330 Head: "unrelated", 331 331 Base: "base", 332 332 Title: "create an unrelated pr", 333 - }) 333 + }).AddTokenAuth(token) 334 334 session.MakeRequest(t, req, http.StatusCreated) 335 335 336 336 // Now this PR could be marked conflict - or at least a race may occur - so drop down to pure code at this point...
+3 -3
tests/integration/pull_status_test.go
··· 77 77 Context: "testci", 78 78 })) 79 79 80 - req = NewRequestf(t, "GET", "/user1/repo1/pulls/1/commits") 80 + req = NewRequest(t, "GET", "/user1/repo1/pulls/1/commits") 81 81 resp = session.MakeRequest(t, req, http.StatusOK) 82 82 doc = NewHTMLParser(t, resp.Body) 83 83 ··· 98 98 req := NewRequestWithJSON( 99 99 t, 100 100 http.MethodPost, 101 - fmt.Sprintf("/api/v1/repos/%s/%s/statuses/%s?token=%s", ctx.Username, ctx.Reponame, commitID, ctx.Token), 101 + fmt.Sprintf("/api/v1/repos/%s/%s/statuses/%s", ctx.Username, ctx.Reponame, commitID), 102 102 data, 103 - ) 103 + ).AddTokenAuth(ctx.Token) 104 104 if ctx.ExpectedCode != 0 { 105 105 ctx.Session.MakeRequest(t, req, ctx.ExpectedCode) 106 106 return
+4 -2
tests/integration/pull_update_test.go
··· 40 40 41 41 session := loginUser(t, "user2") 42 42 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 43 - req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/pulls/%d/update?token="+token, pr.BaseRepo.OwnerName, pr.BaseRepo.Name, pr.Issue.Index) 43 + req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/pulls/%d/update", pr.BaseRepo.OwnerName, pr.BaseRepo.Name, pr.Issue.Index). 44 + AddTokenAuth(token) 44 45 session.MakeRequest(t, req, http.StatusOK) 45 46 46 47 // Test GetDiverging after update ··· 68 69 69 70 session := loginUser(t, "user2") 70 71 token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteRepository) 71 - req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/pulls/%d/update?style=rebase&token="+token, pr.BaseRepo.OwnerName, pr.BaseRepo.Name, pr.Issue.Index) 72 + req := NewRequestf(t, "POST", "/api/v1/repos/%s/%s/pulls/%d/update?style=rebase", pr.BaseRepo.OwnerName, pr.BaseRepo.Name, pr.Issue.Index). 73 + AddTokenAuth(token) 72 74 session.MakeRequest(t, req, http.StatusOK) 73 75 74 76 // Test GetDiverging after update
+1 -1
tests/integration/repo_search_test.go
··· 51 51 } 52 52 53 53 func testSearch(t *testing.T, url string, expected []string) { 54 - req := NewRequestf(t, "GET", url) 54 + req := NewRequest(t, "GET", url) 55 55 resp := MakeRequest(t, req, http.StatusOK) 56 56 57 57 filenames := resultFilenames(t, NewHTMLParser(t, resp.Body))
+1 -1
tests/integration/user_test.go
··· 262 262 owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: repo.OwnerID}) 263 263 264 264 session := loginUser(t, owner.Name) 265 - req := NewRequestf(t, "GET", "/user/stopwatches") 265 + req := NewRequest(t, "GET", "/user/stopwatches") 266 266 resp := session.MakeRequest(t, req, http.StatusOK) 267 267 var apiWatches []*api.StopWatch 268 268 DecodeJSON(t, resp, &apiWatches)