summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKN4CK3R <admin@oldschoolhack.me>2022-11-25 12:46:28 +0100
committerGitHub <noreply@github.com>2022-11-25 13:46:28 +0200
commitff4e292b3fe49ee3086f45de1717301981e5f5f2 (patch)
tree030cda05bc5d14f4e0c2a4f6cf046e5a0d890a8a /tests
parent9ba4ef93ff114588f2392ee130a19bdeae3c61da (diff)
downloadgitea-ff4e292b3fe49ee3086f45de1717301981e5f5f2.tar.gz
gitea-ff4e292b3fe49ee3086f45de1717301981e5f5f2.zip
Add support for HEAD requests in Maven registry (#21834) (#21929)
Backport of #21834 Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/api_packages_maven_test.go30
1 files changed, 28 insertions, 2 deletions
diff --git a/tests/integration/api_packages_maven_test.go b/tests/integration/api_packages_maven_test.go
index 87d95557ce..e71e1ff03b 100644
--- a/tests/integration/api_packages_maven_test.go
+++ b/tests/integration/api_packages_maven_test.go
@@ -7,6 +7,7 @@ package integration
import (
"fmt"
"net/http"
+ "strconv"
"strings"
"testing"
@@ -39,6 +40,12 @@ func TestPackageMaven(t *testing.T) {
MakeRequest(t, req, expectedStatus)
}
+ checkHeaders := func(t *testing.T, h http.Header, contentType string, contentLength int64) {
+ assert.Equal(t, contentType, h.Get("Content-Type"))
+ assert.Equal(t, strconv.FormatInt(contentLength, 10), h.Get("Content-Length"))
+ assert.NotEmpty(t, h.Get("Last-Modified"))
+ }
+
t.Run("Upload", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
@@ -77,10 +84,18 @@ func TestPackageMaven(t *testing.T) {
t.Run("Download", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
- req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename))
+ req := NewRequest(t, "HEAD", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename))
req = AddBasicAuthHeader(req, user.Name)
resp := MakeRequest(t, req, http.StatusOK)
+ checkHeaders(t, resp.Header(), "application/java-archive", 4)
+
+ req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s", root, packageVersion, filename))
+ req = AddBasicAuthHeader(req, user.Name)
+ resp = MakeRequest(t, req, http.StatusOK)
+
+ checkHeaders(t, resp.Header(), "application/java-archive", 4)
+
assert.Equal(t, []byte("test"), resp.Body.Bytes())
pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeMaven)
@@ -150,10 +165,18 @@ func TestPackageMaven(t *testing.T) {
t.Run("DownloadPOM", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
- req := NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename))
+ req := NewRequest(t, "HEAD", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename))
req = AddBasicAuthHeader(req, user.Name)
resp := MakeRequest(t, req, http.StatusOK)
+ checkHeaders(t, resp.Header(), "text/xml", int64(len(pomContent)))
+
+ req = NewRequest(t, "GET", fmt.Sprintf("%s/%s/%s.pom", root, packageVersion, filename))
+ req = AddBasicAuthHeader(req, user.Name)
+ resp = MakeRequest(t, req, http.StatusOK)
+
+ checkHeaders(t, resp.Header(), "text/xml", int64(len(pomContent)))
+
assert.Equal(t, []byte(pomContent), resp.Body.Bytes())
pvs, err := packages.GetVersionsByPackageType(db.DefaultContext, user.ID, packages.TypeMaven)
@@ -191,6 +214,9 @@ func TestPackageMaven(t *testing.T) {
resp := MakeRequest(t, req, http.StatusOK)
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>"
+
+ checkHeaders(t, resp.Header(), "text/xml", int64(len(expectedMetadata)))
+
assert.Equal(t, expectedMetadata, resp.Body.String())
for key, checksum := range map[string]string{