From 4a47f4a84f70b184d7cd440f20f3afcc81c81805 Mon Sep 17 00:00:00 2001 From: Norwin <git@nroo.de> Date: Fri, 29 Jul 2022 22:52:12 +0200 Subject: [PATCH 1/6] increase default page sizes to 20 --- custom/conf/app.example.ini | 2 +- docs/content/doc/advanced/config-cheat-sheet.en-us.md | 2 +- modules/setting/setting.go | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini index 08708948940fa..5af41f9a21b73 100644 --- a/custom/conf/app.example.ini +++ b/custom/conf/app.example.ini @@ -1078,7 +1078,7 @@ ROUTER = console ;EXPLORE_PAGING_NUM = 20 ;; ;; Number of issues that are displayed on one page -;ISSUE_PAGING_NUM = 10 +;ISSUE_PAGING_NUM = 20 ;; ;; Number of maximum commits displayed in one activity feed ;FEED_MAX_COMMIT_NUM = 5 diff --git a/docs/content/doc/advanced/config-cheat-sheet.en-us.md b/docs/content/doc/advanced/config-cheat-sheet.en-us.md index 31a294e1c9334..bfbe88444daf5 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.en-us.md +++ b/docs/content/doc/advanced/config-cheat-sheet.en-us.md @@ -171,7 +171,7 @@ The following configuration set `Content-Type: application/vnd.android.package-a ## UI (`ui`) - `EXPLORE_PAGING_NUM`: **20**: Number of repositories that are shown in one explore page. -- `ISSUE_PAGING_NUM`: **10**: Number of issues that are shown in one page (for all pages that list issues). +- `ISSUE_PAGING_NUM`: **20**: Number of issues that are shown in one page (for all pages that list issues). - `MEMBERS_PAGING_NUM`: **20**: Number of members that are shown in organization members. - `FEED_MAX_COMMIT_NUM`: **5**: Number of maximum commits shown in one activity feed. - `FEED_PAGING_NUM`: **20**: Number of items that are displayed in home feed. diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 23e3280dc9f10..465dc75cad16e 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -262,8 +262,8 @@ var ( }{ ExplorePagingNum: 20, SitemapPagingNum: 20, - IssuePagingNum: 10, - RepoSearchPagingNum: 10, + IssuePagingNum: 20, + RepoSearchPagingNum: 20, MembersPagingNum: 20, FeedMaxCommitNum: 5, FeedPagingNum: 20, From e351b139342c2da74b778aa295e8067f5b5e5f0f Mon Sep 17 00:00:00 2001 From: Norwin <git@nroo.de> Date: Fri, 29 Jul 2022 23:02:43 +0200 Subject: [PATCH 2/6] adjust docs to reflect that the setting is used all over the place --- docs/content/doc/advanced/config-cheat-sheet.en-us.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/doc/advanced/config-cheat-sheet.en-us.md b/docs/content/doc/advanced/config-cheat-sheet.en-us.md index bfbe88444daf5..dae7fff5d4983 100644 --- a/docs/content/doc/advanced/config-cheat-sheet.en-us.md +++ b/docs/content/doc/advanced/config-cheat-sheet.en-us.md @@ -171,7 +171,7 @@ The following configuration set `Content-Type: application/vnd.android.package-a ## UI (`ui`) - `EXPLORE_PAGING_NUM`: **20**: Number of repositories that are shown in one explore page. -- `ISSUE_PAGING_NUM`: **20**: Number of issues that are shown in one page (for all pages that list issues). +- `ISSUE_PAGING_NUM`: **20**: Number of issues that are shown in one page (for all pages that list issues, milestones, projects). - `MEMBERS_PAGING_NUM`: **20**: Number of members that are shown in organization members. - `FEED_MAX_COMMIT_NUM`: **5**: Number of maximum commits shown in one activity feed. - `FEED_PAGING_NUM`: **20**: Number of items that are displayed in home feed. From f1ec84187697aeda5d95562f114de4f3166fb4e5 Mon Sep 17 00:00:00 2001 From: Norwin <git@nroo.de> Date: Sat, 30 Jul 2022 11:15:53 +0200 Subject: [PATCH 3/6] adjust tests --- integrations/issue_test.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/integrations/issue_test.go b/integrations/issue_test.go index 7d30d657f5589..19cf43555479b 100644 --- a/integrations/issue_test.go +++ b/integrations/issue_test.go @@ -361,12 +361,13 @@ func TestSearchIssues(t *testing.T) { resp := session.MakeRequest(t, req, http.StatusOK) var apiIssues []*api.Issue DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + // as this API is used in the frontend, it uses UI page size + assert.Len(t, apiIssues, setting.UI.IssuePagingNum) req = NewRequest(t, "GET", link.String()) resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, setting.UI.IssuePagingNum) since := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 before := time.Unix(999307200, 0).Format(time.RFC3339) @@ -394,14 +395,15 @@ func TestSearchIssues(t *testing.T) { resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.EqualValues(t, "17", resp.Header().Get("X-Total-Count")) - assert.Len(t, apiIssues, 10) // there are more but 10 is page item limit + assert.Len(t, apiIssues, 17) - query.Add("limit", "20") + query.Add("limit", "5") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 17) + assert.EqualValues(t, "17", resp.Header().Get("X-Total-Count")) + assert.Len(t, apiIssues, 5) query = url.Values{"assigned": {"true"}, "state": {"all"}} link.RawQuery = query.Encode() @@ -457,7 +459,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { var apiIssues []*api.Issue DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, setting.UI.IssuePagingNum) query := url.Values{ "token": []string{token}, @@ -466,7 +468,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { req = NewRequest(t, "GET", link.String()) resp = MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, setting.UI.IssuePagingNum) query.Add("labels", "label1") link.RawQuery = query.Encode() From ba8b1be5581e5f799f530bd6dc71fba212db06d6 Mon Sep 17 00:00:00 2001 From: Norwin <git@nroo.de> Date: Sun, 31 Jul 2022 15:07:49 +0200 Subject: [PATCH 4/6] fix tests 2 --- integrations/issue_test.go | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/integrations/issue_test.go b/integrations/issue_test.go index 19cf43555479b..e1059d44e6b91 100644 --- a/integrations/issue_test.go +++ b/integrations/issue_test.go @@ -356,18 +356,23 @@ func TestSearchIssues(t *testing.T) { session := loginUser(t, "user2") + // as this API is used in the frontend, it uses UI page size + expectedIssueCount := 15 // from the fixtures + if expectedIssueCount > setting.UI.IssuePagingNum { + expectedIssueCount = setting.UI.IssuePagingNum + } + link, _ := url.Parse("/issues/search") req := NewRequest(t, "GET", link.String()) resp := session.MakeRequest(t, req, http.StatusOK) var apiIssues []*api.Issue DecodeJSON(t, resp, &apiIssues) - // as this API is used in the frontend, it uses UI page size - assert.Len(t, apiIssues, setting.UI.IssuePagingNum) + assert.Len(t, apiIssues, expectedIssueCount) req = NewRequest(t, "GET", link.String()) resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, setting.UI.IssuePagingNum) + assert.Len(t, apiIssues, expectedIssueCount) since := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 before := time.Unix(999307200, 0).Format(time.RFC3339) @@ -451,6 +456,12 @@ func TestSearchIssues(t *testing.T) { func TestSearchIssuesWithLabels(t *testing.T) { defer prepareTestEnv(t)() + // as this API is used in the frontend, it uses UI page size + expectedIssueCount := 15 // from the fixtures + if expectedIssueCount > setting.UI.IssuePagingNum { + expectedIssueCount = setting.UI.IssuePagingNum + } + token := getUserToken(t, "user1") link, _ := url.Parse("/api/v1/repos/issues/search?token=" + token) @@ -459,7 +470,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { var apiIssues []*api.Issue DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, setting.UI.IssuePagingNum) + assert.Len(t, apiIssues, expectedIssueCount) query := url.Values{ "token": []string{token}, @@ -468,7 +479,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { req = NewRequest(t, "GET", link.String()) resp = MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, setting.UI.IssuePagingNum) + assert.Len(t, apiIssues, expectedIssueCount) query.Add("labels", "label1") link.RawQuery = query.Encode() From 0930750cf1b0d87b6957feb8cafcf4e6dbc57872 Mon Sep 17 00:00:00 2001 From: Norwin <git@nroo.de> Date: Sun, 31 Jul 2022 22:51:51 +0200 Subject: [PATCH 5/6] fix remaining test cases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit the refactor in #19318 skipped changing TestSearchIssuesWithLabels, so this is changed to, so we don't have duplicate tests 🙃 --- integrations/api_issue_test.go | 28 +++++++++++++++++++++------- integrations/issue_test.go | 22 +++++++++------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/integrations/api_issue_test.go b/integrations/api_issue_test.go index 5c802e8d20df7..8f02ef461a110 100644 --- a/integrations/api_issue_test.go +++ b/integrations/api_issue_test.go @@ -16,6 +16,7 @@ import ( repo_model "code.gitea.io/gitea/models/repo" "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" "github.com/stretchr/testify/assert" @@ -171,19 +172,25 @@ func TestAPISearchIssues(t *testing.T) { token := getUserToken(t, "user2") + // as this API was used in the frontend, it uses UI page size + expectedIssueCount := 15 // from the fixtures + if expectedIssueCount > setting.UI.IssuePagingNum { + expectedIssueCount = setting.UI.IssuePagingNum + } + link, _ := url.Parse("/api/v1/repos/issues/search") req := NewRequest(t, "GET", link.String()+"?token="+token) resp := MakeRequest(t, req, http.StatusOK) var apiIssues []*api.Issue DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, expectedIssueCount) query := url.Values{"token": {token}} link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) resp = MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, expectedIssueCount) since := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 before := time.Unix(999307200, 0).Format(time.RFC3339) @@ -211,14 +218,15 @@ func TestAPISearchIssues(t *testing.T) { resp = MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.EqualValues(t, "17", resp.Header().Get("X-Total-Count")) - assert.Len(t, apiIssues, 10) // there are more but 10 is page item limit + assert.Len(t, apiIssues, 17) - query.Add("limit", "20") + query.Add("limit", "10") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) resp = MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 17) + assert.EqualValues(t, "17", resp.Header().Get("X-Total-Count")) + assert.Len(t, apiIssues, 10) query = url.Values{"assigned": {"true"}, "state": {"all"}, "token": {token}} link.RawQuery = query.Encode() @@ -266,6 +274,12 @@ func TestAPISearchIssues(t *testing.T) { func TestAPISearchIssuesWithLabels(t *testing.T) { defer prepareTestEnv(t)() + // as this API was used in the frontend, it uses UI page size + expectedIssueCount := 15 // from the fixtures + if expectedIssueCount > setting.UI.IssuePagingNum { + expectedIssueCount = setting.UI.IssuePagingNum + } + token := getUserToken(t, "user1") link, _ := url.Parse("/api/v1/repos/issues/search") @@ -274,7 +288,7 @@ func TestAPISearchIssuesWithLabels(t *testing.T) { var apiIssues []*api.Issue DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, expectedIssueCount) query := url.Values{} query.Add("token", token) @@ -282,7 +296,7 @@ func TestAPISearchIssuesWithLabels(t *testing.T) { req = NewRequest(t, "GET", link.String()) resp = MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, 10) + assert.Len(t, apiIssues, expectedIssueCount) query.Add("labels", "label1") link.RawQuery = query.Encode() diff --git a/integrations/issue_test.go b/integrations/issue_test.go index e1059d44e6b91..467821809bd8c 100644 --- a/integrations/issue_test.go +++ b/integrations/issue_test.go @@ -356,7 +356,6 @@ func TestSearchIssues(t *testing.T) { session := loginUser(t, "user2") - // as this API is used in the frontend, it uses UI page size expectedIssueCount := 15 // from the fixtures if expectedIssueCount > setting.UI.IssuePagingNum { expectedIssueCount = setting.UI.IssuePagingNum @@ -456,15 +455,14 @@ func TestSearchIssues(t *testing.T) { func TestSearchIssuesWithLabels(t *testing.T) { defer prepareTestEnv(t)() - // as this API is used in the frontend, it uses UI page size expectedIssueCount := 15 // from the fixtures if expectedIssueCount > setting.UI.IssuePagingNum { expectedIssueCount = setting.UI.IssuePagingNum } - token := getUserToken(t, "user1") + session := loginUser(t, "user1") - link, _ := url.Parse("/api/v1/repos/issues/search?token=" + token) + link, _ := url.Parse("/issues/search") req := NewRequest(t, "GET", link.String()) resp := MakeRequest(t, req, http.StatusOK) var apiIssues []*api.Issue @@ -472,19 +470,17 @@ func TestSearchIssuesWithLabels(t *testing.T) { assert.Len(t, apiIssues, expectedIssueCount) - query := url.Values{ - "token": []string{token}, - } + query := url.Values{} link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, expectedIssueCount) query.Add("labels", "label1") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, 2) @@ -492,7 +488,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { query.Set("labels", "label1,label2") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, 2) @@ -500,7 +496,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { query.Set("labels", "orglabel4") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, 1) @@ -509,7 +505,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { query.Add("state", "all") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, 2) @@ -517,7 +513,7 @@ func TestSearchIssuesWithLabels(t *testing.T) { query.Set("labels", "label1,orglabel4") link.RawQuery = query.Encode() req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + resp = session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, 2) } From 14a84cacd5db92941c9931516587fbe443291125 Mon Sep 17 00:00:00 2001 From: Norwin <git@nroo.de> Date: Sun, 31 Jul 2022 22:57:16 +0200 Subject: [PATCH 6/6] speaking of duplicate tests... i think they got obsolete when removing session auth sources from api/v1 --- integrations/api_issue_test.go | 24 ++++++------------------ integrations/issue_test.go | 17 +++-------------- 2 files changed, 9 insertions(+), 32 deletions(-) diff --git a/integrations/api_issue_test.go b/integrations/api_issue_test.go index 8f02ef461a110..bb4e2f0c72dac 100644 --- a/integrations/api_issue_test.go +++ b/integrations/api_issue_test.go @@ -179,16 +179,12 @@ func TestAPISearchIssues(t *testing.T) { } link, _ := url.Parse("/api/v1/repos/issues/search") - req := NewRequest(t, "GET", link.String()+"?token="+token) - resp := MakeRequest(t, req, http.StatusOK) + query := url.Values{"token": {getUserToken(t, "user1")}} var apiIssues []*api.Issue - DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, expectedIssueCount) - query := url.Values{"token": {token}} link.RawQuery = query.Encode() - req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + req := NewRequest(t, "GET", link.String()) + resp := MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, expectedIssueCount) @@ -280,21 +276,13 @@ func TestAPISearchIssuesWithLabels(t *testing.T) { expectedIssueCount = setting.UI.IssuePagingNum } - token := getUserToken(t, "user1") - link, _ := url.Parse("/api/v1/repos/issues/search") - req := NewRequest(t, "GET", link.String()+"?token="+token) - resp := MakeRequest(t, req, http.StatusOK) + query := url.Values{"token": {getUserToken(t, "user1")}} var apiIssues []*api.Issue - DecodeJSON(t, resp, &apiIssues) - - assert.Len(t, apiIssues, expectedIssueCount) - query := url.Values{} - query.Add("token", token) link.RawQuery = query.Encode() - req = NewRequest(t, "GET", link.String()) - resp = MakeRequest(t, req, http.StatusOK) + req := NewRequest(t, "GET", link.String()) + resp := MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, expectedIssueCount) diff --git a/integrations/issue_test.go b/integrations/issue_test.go index 467821809bd8c..e1d3b1b21e2af 100644 --- a/integrations/issue_test.go +++ b/integrations/issue_test.go @@ -368,11 +368,6 @@ func TestSearchIssues(t *testing.T) { DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, expectedIssueCount) - req = NewRequest(t, "GET", link.String()) - resp = session.MakeRequest(t, req, http.StatusOK) - DecodeJSON(t, resp, &apiIssues) - assert.Len(t, apiIssues, expectedIssueCount) - since := "2000-01-01T00%3A50%3A01%2B00%3A00" // 946687801 before := time.Unix(999307200, 0).Format(time.RFC3339) query := url.Values{} @@ -461,19 +456,13 @@ func TestSearchIssuesWithLabels(t *testing.T) { } session := loginUser(t, "user1") - link, _ := url.Parse("/issues/search") - req := NewRequest(t, "GET", link.String()) - resp := MakeRequest(t, req, http.StatusOK) + query := url.Values{} var apiIssues []*api.Issue - DecodeJSON(t, resp, &apiIssues) - - assert.Len(t, apiIssues, expectedIssueCount) - query := url.Values{} link.RawQuery = query.Encode() - req = NewRequest(t, "GET", link.String()) - resp = session.MakeRequest(t, req, http.StatusOK) + req := NewRequest(t, "GET", link.String()) + resp := session.MakeRequest(t, req, http.StatusOK) DecodeJSON(t, resp, &apiIssues) assert.Len(t, apiIssues, expectedIssueCount)