From 0308d44a16d7bdcda75c1e946dc06efca48ed624 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Sun, 30 Apr 2017 13:08:09 +0800 Subject: [PATCH] fix #1643 and improve integration test (#1645) --- integrations/api_repo_test.go | 9 +++++++++ integrations/{view_test.go => repo_test.go} | 9 --------- integrations/user_test.go | 21 +++++++++++++++++++++ routers/api/v1/repo/repo.go | 7 ++++++- 4 files changed, 36 insertions(+), 10 deletions(-) rename integrations/{view_test.go => repo_test.go} (69%) create mode 100644 integrations/user_test.go diff --git a/integrations/api_repo_test.go b/integrations/api_repo_test.go index febdf31ef2..64649efe1d 100644 --- a/integrations/api_repo_test.go +++ b/integrations/api_repo_test.go @@ -21,3 +21,12 @@ func TestAPIUserReposNotLogin(t *testing.T) { resp := MakeRequest(req) assert.EqualValues(t, http.StatusOK, resp.HeaderCode) } + +func TestAPISearchRepoNotLogin(t *testing.T) { + assert.NoError(t, models.LoadFixtures()) + + req, err := http.NewRequest("GET", "/api/v1/repos/search?q=Test", nil) + assert.NoError(t, err) + resp := MakeRequest(req) + assert.EqualValues(t, http.StatusOK, resp.HeaderCode) +} diff --git a/integrations/view_test.go b/integrations/repo_test.go similarity index 69% rename from integrations/view_test.go rename to integrations/repo_test.go index 26d8348afe..37874c275d 100644 --- a/integrations/view_test.go +++ b/integrations/repo_test.go @@ -19,12 +19,3 @@ func TestViewRepo(t *testing.T) { resp := MakeRequest(req) assert.EqualValues(t, http.StatusOK, resp.HeaderCode) } - -func TestViewUser(t *testing.T) { - prepareTestEnv(t) - - req, err := http.NewRequest("GET", "/user2", nil) - assert.NoError(t, err) - resp := MakeRequest(req) - assert.EqualValues(t, http.StatusOK, resp.HeaderCode) -} diff --git a/integrations/user_test.go b/integrations/user_test.go new file mode 100644 index 0000000000..f9358c1682 --- /dev/null +++ b/integrations/user_test.go @@ -0,0 +1,21 @@ +// Copyright 2017 The Gitea Authors. All rights reserved. +// Use of this source code is governed by a MIT-style +// license that can be found in the LICENSE file. + +package integrations + +import ( + "net/http" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestViewUser(t *testing.T) { + prepareTestEnv(t) + + req, err := http.NewRequest("GET", "/user2", nil) + assert.NoError(t, err) + resp := MakeRequest(req) + assert.EqualValues(t, http.StatusOK, resp.HeaderCode) +} diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go index 0f22eaeb8f..c0b8bb3d7b 100644 --- a/routers/api/v1/repo/repo.go +++ b/routers/api/v1/repo/repo.go @@ -55,6 +55,11 @@ func Search(ctx *context.APIContext) { return } + var userID int64 + if ctx.IsSigned { + userID = ctx.User.ID + } + results := make([]*api.Repository, len(repos)) for i, repo := range repos { if err = repo.GetOwner(); err != nil { @@ -64,7 +69,7 @@ func Search(ctx *context.APIContext) { }) return } - accessMode, err := models.AccessLevel(ctx.User.ID, repo) + accessMode, err := models.AccessLevel(userID, repo) if err != nil { ctx.JSON(500, map[string]interface{}{ "ok": false,