// Copyright 2017 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package utils import ( "testing" "code.gitea.io/gitea/modules/setting" "github.com/stretchr/testify/assert" ) func TestRemoveUsernameParameterSuffix(t *testing.T) { assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar (Foo Bar)")) assert.Equal(t, "foobar", RemoveUsernameParameterSuffix("foobar")) assert.Equal(t, "", RemoveUsernameParameterSuffix("")) } func TestIsExternalURL(t *testing.T) { setting.AppURL = "https://try.gitea.io/" type test struct { Expected bool RawURL string } newTest := func(expected bool, rawURL string) test { return test{Expected: expected, RawURL: rawURL} } for _, test := range []test{ newTest(false, "https://try.gitea.io"), newTest(true, "https://example.com/"), newTest(true, "//example.com"), newTest(true, "http://example.com"), newTest(false, "a/"), newTest(false, "https://try.gitea.io/test?param=false"), newTest(false, "test?param=false"), newTest(false, "//try.gitea.io/test?param=false"), newTest(false, "/hey/hey/hey#3244"), newTest(true, "://missing protocol scheme"), } { assert.Equal(t, test.Expected, IsExternalURL(test.RawURL)) } } func TestSanitizeFlashErrorString(t *testing.T) { tests := []struct { name string arg string want string }{ { name: "no error", arg: "", want: "", }, { name: "normal error", arg: "can not open file: \"abc.exe\"", want: "can not open file: "abc.exe"", }, { name: "line break error", arg: "some error:\n\nawesome!", want: "some error:

awesome!", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := SanitizeFlashErrorString(tt.arg); got != tt.want { t.Errorf("SanitizeFlashErrorString() = '%v', want '%v'", got, tt.want) } }) } }