1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- // Copyright 2020 The Gogs 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 repo
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- "gogs.io/gogs/internal/db"
- "gogs.io/gogs/internal/mocks"
- )
- func Test_validateWebhook(t *testing.T) {
- l := &mocks.Locale{
- MockLang: "en",
- MockTr: func(s string, _ ...interface{}) string {
- return s
- },
- }
- tests := []struct {
- name string
- actor *db.User
- webhook *db.Webhook
- expField string
- expMsg string
- expOK bool
- }{
- {
- name: "admin bypass local address check",
- actor: &db.User{IsAdmin: true},
- webhook: &db.Webhook{URL: "http://localhost:3306"},
- expOK: true,
- },
- {
- name: "local address not allowed",
- actor: &db.User{},
- webhook: &db.Webhook{URL: "http://localhost:3306"},
- expField: "PayloadURL",
- expMsg: "repo.settings.webhook.err_cannot_use_local_addresses",
- expOK: false,
- },
- }
- for _, test := range tests {
- t.Run(test.name, func(t *testing.T) {
- field, msg, ok := validateWebhook(test.actor, l, test.webhook)
- assert.Equal(t, test.expOK, ok)
- assert.Equal(t, test.expMsg, msg)
- assert.Equal(t, test.expField, field)
- })
- }
- }
|