summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/integration/api_repo_get_contents_test.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/integration/api_repo_get_contents_test.go b/tests/integration/api_repo_get_contents_test.go
index f7d9c716aa..8b193b03c9 100644
--- a/tests/integration/api_repo_get_contents_test.go
+++ b/tests/integration/api_repo_get_contents_test.go
@@ -4,6 +4,7 @@
package integration
import (
+ "io"
"net/http"
"net/url"
"testing"
@@ -159,3 +160,30 @@ func testAPIGetContents(t *testing.T, u *url.URL) {
req = NewRequestf(t, "GET", "/api/v1/repos/%s/%s/contents/%s?token=%s", user3.Name, repo3.Name, treePath, token2)
MakeRequest(t, req, http.StatusOK)
}
+
+func TestAPIGetContentsRefFormats(t *testing.T) {
+ onGiteaRun(t, func(t *testing.T, u *url.URL) {
+ file := "README.md"
+ sha := "65f1bf27bc3bf70f64657658635e66094edbcb4d"
+ content := "# repo1\n\nDescription for repo1"
+
+ noRef := setting.AppURL + "api/v1/repos/user2/repo1/raw/" + file
+ refInPath := setting.AppURL + "api/v1/repos/user2/repo1/raw/" + sha + "/" + file
+ refInQuery := setting.AppURL + "api/v1/repos/user2/repo1/raw/" + file + "?ref=" + sha
+
+ resp := MakeRequest(t, NewRequest(t, http.MethodGet, noRef), http.StatusOK)
+ raw, err := io.ReadAll(resp.Body)
+ assert.NoError(t, err)
+ assert.EqualValues(t, content, string(raw))
+
+ resp = MakeRequest(t, NewRequest(t, http.MethodGet, refInPath), http.StatusOK)
+ raw, err = io.ReadAll(resp.Body)
+ assert.NoError(t, err)
+ assert.EqualValues(t, content, string(raw))
+
+ resp = MakeRequest(t, NewRequest(t, http.MethodGet, refInQuery), http.StatusOK)
+ raw, err = io.ReadAll(resp.Body)
+ assert.NoError(t, err)
+ assert.EqualValues(t, content, string(raw))
+ })
+}