aboutsummaryrefslogtreecommitdiffstats
path: root/tests/integration/api_repo_get_contents_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/api_repo_get_contents_test.go')
-rw-r--r--tests/integration/api_repo_get_contents_test.go58
1 files changed, 34 insertions, 24 deletions
diff --git a/tests/integration/api_repo_get_contents_test.go b/tests/integration/api_repo_get_contents_test.go
index 68a8608117..d0f61da0c0 100644
--- a/tests/integration/api_repo_get_contents_test.go
+++ b/tests/integration/api_repo_get_contents_test.go
@@ -18,6 +18,7 @@ import (
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
repo_service "code.gitea.io/gitea/services/repository"
+ "code.gitea.io/gitea/tests"
"github.com/stretchr/testify/assert"
)
@@ -168,28 +169,37 @@ func testAPIGetContents(t *testing.T, u *url.URL) {
}
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))
- })
+ defer tests.PrepareTestEnv(t)()
+
+ file := "README.md"
+ sha := "65f1bf27bc3bf70f64657658635e66094edbcb4d"
+ content := "# repo1\n\nDescription for repo1"
+
+ resp := MakeRequest(t, NewRequest(t, http.MethodGet, "/api/v1/repos/user2/repo1/raw/"+file), 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, "/api/v1/repos/user2/repo1/raw/"+sha+"/"+file), 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, "/api/v1/repos/user2/repo1/raw/"+file+"?ref="+sha), 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, "/api/v1/repos/user2/repo1/raw/"+file+"?ref=master"), http.StatusOK)
+ raw, err = io.ReadAll(resp.Body)
+ assert.NoError(t, err)
+ assert.EqualValues(t, content, string(raw))
+
+ _ = MakeRequest(t, NewRequest(t, http.MethodGet, "/api/v1/repos/user2/repo1/raw/docs/README.md?ref=main"), http.StatusNotFound)
+ _ = MakeRequest(t, NewRequest(t, http.MethodGet, "/api/v1/repos/user2/repo1/raw/README.md?ref=main"), http.StatusOK)
+ _ = MakeRequest(t, NewRequest(t, http.MethodGet, "/api/v1/repos/user2/repo1/raw/docs/README.md?ref=sub-home-md-img-check"), http.StatusOK)
+ _ = MakeRequest(t, NewRequest(t, http.MethodGet, "/api/v1/repos/user2/repo1/raw/README.md?ref=sub-home-md-img-check"), http.StatusNotFound)
+
+ // FIXME: this is an incorrect behavior, non-existing branch falls back to default branch
+ _ = MakeRequest(t, NewRequest(t, http.MethodGet, "/api/v1/repos/user2/repo1/raw/README.md?ref=no-such"), http.StatusOK)
}