aboutsummaryrefslogtreecommitdiffstats
path: root/modules/lfstransfer/backend/util_test.go
blob: 408b53c369fb75be763fe2abc4625e979b4b0230 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// Copyright 2025 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package backend

import (
	"testing"

	"code.gitea.io/gitea/modules/setting"
	"code.gitea.io/gitea/modules/test"

	"github.com/stretchr/testify/assert"
)

func TestToInternalLFSURL(t *testing.T) {
	defer test.MockVariableValue(&setting.LocalURL, "http://localurl/")()
	defer test.MockVariableValue(&setting.AppSubURL, "/sub")()
	cases := []struct {
		url      string
		expected string
	}{
		{"http://appurl/any", ""},
		{"http://appurl/sub/any", ""},
		{"http://appurl/sub/owner/repo/any", ""},
		{"http://appurl/sub/owner/repo/info/any", ""},
		{"http://appurl/sub/owner/repo/info/lfs/any", "http://localurl/api/internal/repo/owner/repo/info/lfs/any"},
	}
	for _, c := range cases {
		assert.Equal(t, c.expected, toInternalLFSURL(c.url), c.url)
	}
}

func TestIsInternalLFSURL(t *testing.T) {
	defer test.MockVariableValue(&setting.LocalURL, "http://localurl/")()
	defer test.MockVariableValue(&setting.InternalToken, "mock-token")()
	cases := []struct {
		url      string
		expected bool
	}{
		{"", false},
		{"http://otherurl/api/internal/repo/owner/repo/info/lfs/any", false},
		{"http://localurl/api/internal/repo/owner/repo/info/lfs/any", true},
		{"http://localurl/api/internal/repo/owner/repo/info", false},
		{"http://localurl/api/internal/misc/owner/repo/info/lfs/any", false},
		{"http://localurl/api/internal/owner/repo/info/lfs/any", false},
		{"http://localurl/api/internal/foo/bar", false},
	}
	for _, c := range cases {
		req := newInternalRequestLFS(t.Context(), c.url, "GET", nil, nil)
		assert.Equal(t, c.expected, req != nil, c.url)
		assert.Equal(t, c.expected, isInternalLFSURL(c.url), c.url)
	}
}