This commit is contained in:
@@ -4,22 +4,21 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"archive/zip"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"net/http"
|
||||
neturl "net/url"
|
||||
"testing"
|
||||
|
||||
"code.gitea.io/gitea/models/packages"
|
||||
repo_model "code.gitea.io/gitea/models/repo"
|
||||
"code.gitea.io/gitea/models/unittest"
|
||||
user_model "code.gitea.io/gitea/models/user"
|
||||
composer_module "code.gitea.io/gitea/modules/packages/composer"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
"code.gitea.io/gitea/modules/test"
|
||||
"code.gitea.io/gitea/routers/api/packages/composer"
|
||||
"code.gitea.io/gitea/tests"
|
||||
"gitea.dev/models/packages"
|
||||
repo_model "gitea.dev/models/repo"
|
||||
"gitea.dev/models/unittest"
|
||||
user_model "gitea.dev/models/user"
|
||||
composer_module "gitea.dev/modules/packages/composer"
|
||||
"gitea.dev/modules/setting"
|
||||
"gitea.dev/modules/test"
|
||||
"gitea.dev/routers/api/packages/composer"
|
||||
"gitea.dev/tests"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
@@ -41,10 +40,8 @@ func TestPackageComposer(t *testing.T) {
|
||||
packageLicense := "MIT"
|
||||
packageBin := "./bin/script"
|
||||
|
||||
var buf bytes.Buffer
|
||||
archive := zip.NewWriter(&buf)
|
||||
w, _ := archive.Create("composer.json")
|
||||
w.Write([]byte(`{
|
||||
content := test.WriteZipArchive(map[string]string{
|
||||
"composer.json": `{
|
||||
"name": "` + packageName + `",
|
||||
"description": "` + packageDescription + `",
|
||||
"type": "` + packageType + `",
|
||||
@@ -57,9 +54,8 @@ func TestPackageComposer(t *testing.T) {
|
||||
"bin": [
|
||||
"` + packageBin + `"
|
||||
]
|
||||
}`))
|
||||
archive.Close()
|
||||
content := buf.Bytes()
|
||||
}`,
|
||||
}).Bytes()
|
||||
|
||||
url := fmt.Sprintf("%sapi/packages/%s/composer", setting.AppURL, user.Name)
|
||||
|
||||
@@ -70,8 +66,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
var result composer.ServiceIndexResponse
|
||||
DecodeJSON(t, resp, &result)
|
||||
result := DecodeJSON(t, resp, &composer.ServiceIndexResponse{})
|
||||
|
||||
assert.Equal(t, url+"/search.json?q=%query%&type=%type%", result.SearchTemplate)
|
||||
assert.Equal(t, url+"/p2/%package%.json", result.MetadataTemplate)
|
||||
@@ -173,8 +168,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
var result composer.SearchResultResponse
|
||||
DecodeJSON(t, resp, &result)
|
||||
result := DecodeJSON(t, resp, &composer.SearchResultResponse{})
|
||||
|
||||
assert.Equal(t, c.ExpectedTotal, result.Total, "case %d: unexpected total hits", i)
|
||||
assert.Len(t, result.Results, c.ExpectedResults, "case %d: unexpected result count", i)
|
||||
@@ -188,8 +182,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
var result map[string][]string
|
||||
DecodeJSON(t, resp, &result)
|
||||
result := DecodeJSON(t, resp, map[string][]string{})
|
||||
|
||||
assert.Contains(t, result, "packageNames")
|
||||
names := result["packageNames"]
|
||||
@@ -204,8 +197,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
resp := MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
var result composer.PackageMetadataResponse
|
||||
DecodeJSON(t, resp, &result)
|
||||
result := DecodeJSON(t, resp, &composer.PackageMetadataResponse{})
|
||||
|
||||
assert.Contains(t, result.Packages, packageName)
|
||||
pkgs := result.Packages[packageName]
|
||||
@@ -235,8 +227,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
resp = MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
result = composer.PackageMetadataResponse{}
|
||||
DecodeJSON(t, resp, &result)
|
||||
result = DecodeJSON(t, resp, &composer.PackageMetadataResponse{})
|
||||
|
||||
assert.Contains(t, result.Packages, packageName)
|
||||
pkgs = result.Packages[packageName]
|
||||
@@ -264,8 +255,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(user.Name)
|
||||
resp = MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
result = composer.PackageMetadataResponse{}
|
||||
DecodeJSON(t, resp, &result)
|
||||
result = DecodeJSON(t, resp, &composer.PackageMetadataResponse{})
|
||||
pkgs = result.Packages[packageName]
|
||||
assert.Len(t, pkgs, 1)
|
||||
assert.Equal(t, repo2.HTMLURL(), pkgs[0].Source.URL)
|
||||
@@ -277,8 +267,7 @@ func TestPackageComposer(t *testing.T) {
|
||||
AddBasicAuth(otherUser.Name)
|
||||
resp = MakeRequest(t, req, http.StatusOK)
|
||||
|
||||
result = composer.PackageMetadataResponse{}
|
||||
DecodeJSON(t, resp, &result)
|
||||
result = DecodeJSON(t, resp, &composer.PackageMetadataResponse{})
|
||||
pkgs = result.Packages[packageName]
|
||||
assert.Len(t, pkgs, 1)
|
||||
assert.Empty(t, pkgs[0].Source.URL)
|
||||
@@ -292,13 +281,13 @@ func TestPackageComposer(t *testing.T) {
|
||||
listReq := NewRequest(t, "GET", fmt.Sprintf("/%s/-/packages", user.Name)).
|
||||
AddBasicAuth(user.Name)
|
||||
listResp := MakeRequest(t, listReq, http.StatusOK)
|
||||
listDoc := NewHTMLParser(t, listResp.Body)
|
||||
assert.Equal(t, 0, listDoc.Find(".flex-item-title .ui.basic.label").Length())
|
||||
listDoc := NewHTMLParser(t, bytes.NewReader(listResp.Body.Bytes()))
|
||||
assert.Equal(t, 0, listDoc.Find(".item-title .ui.basic.label").Length())
|
||||
|
||||
viewReq := NewRequest(t, "GET", fmt.Sprintf("/%s/-/packages/composer/%s/%s", user.Name, neturl.PathEscape(packageName), neturl.PathEscape(packageVersion))).
|
||||
AddBasicAuth(user.Name)
|
||||
viewResp := MakeRequest(t, viewReq, http.StatusOK)
|
||||
viewDoc := NewHTMLParser(t, viewResp.Body)
|
||||
viewDoc := NewHTMLParser(t, bytes.NewReader(viewResp.Body.Bytes()))
|
||||
assert.Equal(t, 0, viewDoc.Find(".issue-title-header .ui.basic.label").Length())
|
||||
|
||||
privatePackageName := privateUser.Name + "/private-composer-package"
|
||||
@@ -325,13 +314,13 @@ func TestPackageComposer(t *testing.T) {
|
||||
|
||||
privateListReq := NewRequest(t, "GET", fmt.Sprintf("/%s/-/packages", privateUser.Name))
|
||||
privateListResp := privateSession.MakeRequest(t, privateListReq, http.StatusOK)
|
||||
privateListDoc := NewHTMLParser(t, privateListResp.Body)
|
||||
assert.Equal(t, 1, privateListDoc.Find(".flex-item-title .ui.basic.label").Length())
|
||||
assert.Equal(t, "Private", privateListDoc.Find(".flex-item-title .ui.basic.label").First().Text())
|
||||
privateListDoc := NewHTMLParser(t, bytes.NewReader(privateListResp.Body.Bytes()))
|
||||
assert.Equal(t, 1, privateListDoc.Find(".item-title .ui.basic.label").Length())
|
||||
assert.Equal(t, "Private", privateListDoc.Find(".item-title .ui.basic.label").First().Text())
|
||||
|
||||
privateViewReq := NewRequest(t, "GET", fmt.Sprintf("/%s/-/packages/composer/%s/%s", privateUser.Name, neturl.PathEscape(privatePackageName), neturl.PathEscape(privatePackageVersion)))
|
||||
privateViewResp := privateSession.MakeRequest(t, privateViewReq, http.StatusOK)
|
||||
privateViewDoc := NewHTMLParser(t, privateViewResp.Body)
|
||||
privateViewDoc := NewHTMLParser(t, bytes.NewReader(privateViewResp.Body.Bytes()))
|
||||
assert.Equal(t, 1, privateViewDoc.Find(".issue-title-header .ui.basic.label").Length())
|
||||
assert.Equal(t, "Private", privateViewDoc.Find(".issue-title-header .ui.basic.label").First().Text())
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user