aboutsummaryrefslogtreecommitdiffstats
path: root/tests/integration/api_user_star_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/api_user_star_test.go')
-rw-r--r--tests/integration/api_user_star_test.go74
1 files changed, 69 insertions, 5 deletions
diff --git a/tests/integration/api_user_star_test.go b/tests/integration/api_user_star_test.go
index 0062889a92..989e7ab1d1 100644
--- a/tests/integration/api_user_star_test.go
+++ b/tests/integration/api_user_star_test.go
@@ -11,7 +11,9 @@ import (
auth_model "code.gitea.io/gitea/models/auth"
"code.gitea.io/gitea/models/unittest"
user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
+ "code.gitea.io/gitea/modules/test"
"code.gitea.io/gitea/tests"
"github.com/stretchr/testify/assert"
@@ -30,13 +32,13 @@ func TestAPIStar(t *testing.T) {
t.Run("Star", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
- req := NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/starred/%s", repo)).
+ req := NewRequest(t, "PUT", "/api/v1/user/starred/"+repo).
AddTokenAuth(tokenWithUserScope)
MakeRequest(t, req, http.StatusNoContent)
// blocked user can't star a repo
user34 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 34})
- req = NewRequest(t, "PUT", fmt.Sprintf("/api/v1/user/starred/%s", repo)).
+ req = NewRequest(t, "PUT", "/api/v1/user/starred/"+repo).
AddTokenAuth(getUserToken(t, user34.Name, auth_model.AccessTokenScopeWriteRepository))
MakeRequest(t, req, http.StatusForbidden)
})
@@ -74,11 +76,11 @@ func TestAPIStar(t *testing.T) {
t.Run("IsStarring", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
- req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s", repo)).
+ req := NewRequest(t, "GET", "/api/v1/user/starred/"+repo).
AddTokenAuth(tokenWithUserScope)
MakeRequest(t, req, http.StatusNoContent)
- req = NewRequest(t, "GET", fmt.Sprintf("/api/v1/user/starred/%s", repo+"notexisting")).
+ req = NewRequest(t, "GET", "/api/v1/user/starred/"+repo+"notexisting").
AddTokenAuth(tokenWithUserScope)
MakeRequest(t, req, http.StatusNotFound)
})
@@ -86,8 +88,70 @@ func TestAPIStar(t *testing.T) {
t.Run("Unstar", func(t *testing.T) {
defer tests.PrintCurrentTest(t)()
- req := NewRequest(t, "DELETE", fmt.Sprintf("/api/v1/user/starred/%s", repo)).
+ req := NewRequest(t, "DELETE", "/api/v1/user/starred/"+repo).
AddTokenAuth(tokenWithUserScope)
MakeRequest(t, req, http.StatusNoContent)
})
}
+
+func TestAPIStarDisabled(t *testing.T) {
+ defer tests.PrepareTestEnv(t)()
+
+ user := "user1"
+ repo := "user2/repo1"
+
+ session := loginUser(t, user)
+ token := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeReadUser)
+ tokenWithUserScope := getTokenForLoggedInUser(t, session, auth_model.AccessTokenScopeWriteUser, auth_model.AccessTokenScopeWriteRepository)
+
+ defer test.MockVariableValue(&setting.Repository.DisableStars, true)()
+
+ t.Run("Star", func(t *testing.T) {
+ defer tests.PrintCurrentTest(t)()
+
+ req := NewRequest(t, "PUT", "/api/v1/user/starred/"+repo).
+ AddTokenAuth(tokenWithUserScope)
+ MakeRequest(t, req, http.StatusForbidden)
+
+ user34 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 34})
+ req = NewRequest(t, "PUT", "/api/v1/user/starred/"+repo).
+ AddTokenAuth(getUserToken(t, user34.Name, auth_model.AccessTokenScopeWriteRepository))
+ MakeRequest(t, req, http.StatusForbidden)
+ })
+
+ t.Run("GetStarredRepos", func(t *testing.T) {
+ defer tests.PrintCurrentTest(t)()
+
+ req := NewRequest(t, "GET", fmt.Sprintf("/api/v1/users/%s/starred", user)).
+ AddTokenAuth(token)
+ MakeRequest(t, req, http.StatusForbidden)
+ })
+
+ t.Run("GetMyStarredRepos", func(t *testing.T) {
+ defer tests.PrintCurrentTest(t)()
+
+ req := NewRequest(t, "GET", "/api/v1/user/starred").
+ AddTokenAuth(tokenWithUserScope)
+ MakeRequest(t, req, http.StatusForbidden)
+ })
+
+ t.Run("IsStarring", func(t *testing.T) {
+ defer tests.PrintCurrentTest(t)()
+
+ req := NewRequest(t, "GET", "/api/v1/user/starred/"+repo).
+ AddTokenAuth(tokenWithUserScope)
+ MakeRequest(t, req, http.StatusForbidden)
+
+ req = NewRequest(t, "GET", "/api/v1/user/starred/"+repo+"notexisting").
+ AddTokenAuth(tokenWithUserScope)
+ MakeRequest(t, req, http.StatusForbidden)
+ })
+
+ t.Run("Unstar", func(t *testing.T) {
+ defer tests.PrintCurrentTest(t)()
+
+ req := NewRequest(t, "DELETE", "/api/v1/user/starred/"+repo).
+ AddTokenAuth(tokenWithUserScope)
+ MakeRequest(t, req, http.StatusForbidden)
+ })
+}