From 2bb8b3a56219f3fcba7c77c7a8fc10769b8c11bd Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 8 May 2017 10:55:27 +0800 Subject: fix bug when push a branch name with / & fix an integration test bug (#1689) --- integrations/integration_test.go | 11 +++++----- integrations/internal_test.go | 45 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 integrations/internal_test.go (limited to 'integrations') diff --git a/integrations/integration_test.go b/integrations/integration_test.go index 6696ff65fc..4a809403bd 100644 --- a/integrations/integration_test.go +++ b/integrations/integration_test.go @@ -94,11 +94,12 @@ func initIntegrationTest() { if err != nil { log.Fatalf("db.Query: %v", err) } - if rows.Next() { - break // database already exists - } - if _, err = db.Exec("CREATE DATABASE testgitea"); err != nil { - log.Fatalf("db.Exec: %v", err) + defer rows.Close() + + if !rows.Next() { + if _, err = db.Exec("CREATE DATABASE testgitea"); err != nil { + log.Fatalf("db.Exec: %v", err) + } } } routers.GlobalInit() diff --git a/integrations/internal_test.go b/integrations/internal_test.go new file mode 100644 index 0000000000..12d6fc8dc9 --- /dev/null +++ b/integrations/internal_test.go @@ -0,0 +1,45 @@ +// 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 ( + "encoding/json" + "fmt" + "net/http" + "net/url" + "testing" + + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/modules/setting" + + "github.com/stretchr/testify/assert" +) + +func assertProtectedBranch(t *testing.T, repoID int64, branchName string, isErr, canPush bool) { + reqURL := fmt.Sprintf("/api/internal/branch/%d/%s", repoID, url.QueryEscape(branchName)) + req, err := http.NewRequest("GET", reqURL, nil) + t.Log(reqURL) + req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", setting.InternalToken)) + + assert.NoError(t, err) + resp := MakeRequest(req) + if isErr { + assert.EqualValues(t, 500, resp.HeaderCode) + } else { + assert.EqualValues(t, http.StatusOK, resp.HeaderCode) + var branch models.ProtectedBranch + t.Log(string(resp.Body)) + assert.NoError(t, json.Unmarshal(resp.Body, &branch)) + assert.Equal(t, canPush, branch.CanPush) + } +} + +func TestInternal_GetProtectedBranch(t *testing.T) { + prepareTestEnv(t) + + assertProtectedBranch(t, 1, "master", false, true) + assertProtectedBranch(t, 1, "dev", false, true) + assertProtectedBranch(t, 1, "lunny/dev", false, true) +} -- cgit v1.2.3