115 lines · 3.5 KB · Go
RawDownload
// Copyright 2020 The Gitea Authors. All rights reserved.// Copyright 2025 The Forgejo Authors. All rights reserved// SPDX-License-Identifier: MIT package setting import (	"testing" 	"forgejo.org/modules/json" 	"github.com/stretchr/testify/assert"	"github.com/stretchr/testify/require") func TestMakeAbsoluteAssetURL(t *testing.T) {	assert.Equal(t, "https://localhost:2345", MakeAbsoluteAssetURL("https://localhost:1234", "https://localhost:2345"))	assert.Equal(t, "https://localhost:2345", MakeAbsoluteAssetURL("https://localhost:1234/", "https://localhost:2345"))	assert.Equal(t, "https://localhost:2345", MakeAbsoluteAssetURL("https://localhost:1234/", "https://localhost:2345/"))	assert.Equal(t, "https://localhost:1234/foo", MakeAbsoluteAssetURL("https://localhost:1234", "/foo"))	assert.Equal(t, "https://localhost:1234/foo", MakeAbsoluteAssetURL("https://localhost:1234/", "/foo"))	assert.Equal(t, "https://localhost:1234/foo", MakeAbsoluteAssetURL("https://localhost:1234/", "/foo/"))	assert.Equal(t, "https://localhost:1234/foo", MakeAbsoluteAssetURL("https://localhost:1234/foo", "/foo"))	assert.Equal(t, "https://localhost:1234/foo", MakeAbsoluteAssetURL("https://localhost:1234/foo/", "/foo"))	assert.Equal(t, "https://localhost:1234/foo", MakeAbsoluteAssetURL("https://localhost:1234/foo/", "/foo/"))	assert.Equal(t, "https://localhost:1234/bar", MakeAbsoluteAssetURL("https://localhost:1234/foo", "/bar"))	assert.Equal(t, "https://localhost:1234/bar", MakeAbsoluteAssetURL("https://localhost:1234/foo/", "/bar"))	assert.Equal(t, "https://localhost:1234/bar", MakeAbsoluteAssetURL("https://localhost:1234/foo/", "/bar/"))} func TestMakeManifestData(t *testing.T) {	jsonBytes := MakeManifestData(`Example App '\"`, "https://example.com", "https://example.com/foo/bar")	assert.True(t, json.Valid(jsonBytes))} func TestLoadServiceDomainListsForFederation(t *testing.T) {	oldAppURL := AppURL	oldFederation := Federation	oldService := Service 	defer func() {		AppURL = oldAppURL		Federation = oldFederation		Service = oldService	}() 	cfg, err := NewConfigProviderFromData(`[federation]ENABLED = true[service]EMAIL_DOMAIN_ALLOWLIST = *.allow.randomEMAIL_DOMAIN_BLOCKLIST = *.block.random`) 	require.NoError(t, err)	loadServerFrom(cfg)	loadFederationFrom(cfg)	loadServiceFrom(cfg) 	assert.True(t, match(Service.EmailDomainAllowList, "d1.allow.random"))	assert.True(t, match(Service.EmailDomainAllowList, "localhost"))} func TestLoadServiceDomainListsNoFederation(t *testing.T) {	oldAppURL := AppURL	oldFederation := Federation	oldService := Service 	defer func() {		AppURL = oldAppURL		Federation = oldFederation		Service = oldService	}() 	cfg, err := NewConfigProviderFromData(`[federation]ENABLED = false[service]EMAIL_DOMAIN_ALLOWLIST = *.allow.randomEMAIL_DOMAIN_BLOCKLIST = *.block.random`) 	require.NoError(t, err)	loadServerFrom(cfg)	loadFederationFrom(cfg)	loadServiceFrom(cfg) 	assert.True(t, match(Service.EmailDomainAllowList, "d1.allow.random"))} func TestLoadServiceDomainListsFederationEmptyAllowList(t *testing.T) {	oldAppURL := AppURL	oldFederation := Federation	oldService := Service 	defer func() {		AppURL = oldAppURL		Federation = oldFederation		Service = oldService	}() 	cfg, err := NewConfigProviderFromData(`[federation]ENABLED = true[service]EMAIL_DOMAIN_BLOCKLIST = *.block.random`) 	require.NoError(t, err)	loadServerFrom(cfg)	loadFederationFrom(cfg)	loadServiceFrom(cfg) 	assert.Empty(t, Service.EmailDomainAllowList)}