123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- // 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_isLocalHostname(t *testing.T) {
- tests := []struct {
- hostname string
- want bool
- }{
- {hostname: "localhost", want: true},
- {hostname: "127.0.0.1", want: true},
- {hostname: "::1", want: true},
- {hostname: "0:0:0:0:0:0:0:1", want: true},
- {hostname: "gogs.io", want: false},
- }
- for _, test := range tests {
- t.Run("", func(t *testing.T) {
- assert.Equal(t, test.want, isLocalHostname(test.hostname))
- })
- }
- }
- 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)
- })
- }
- }
|