code.gitea.io/gitea@v1.19.3/modules/lfs/endpoint_test.go (about)

     1  // Copyright 2021 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package lfs
     5  
     6  import (
     7  	"net/url"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func str2url(raw string) *url.URL {
    14  	u, _ := url.Parse(raw)
    15  	return u
    16  }
    17  
    18  func TestDetermineEndpoint(t *testing.T) {
    19  	// Test cases
    20  	cases := []struct {
    21  		cloneurl string
    22  		lfsurl   string
    23  		expected *url.URL
    24  	}{
    25  		// case 0
    26  		{
    27  			cloneurl: "",
    28  			lfsurl:   "",
    29  			expected: nil,
    30  		},
    31  		// case 1
    32  		{
    33  			cloneurl: "https://git.com/repo",
    34  			lfsurl:   "",
    35  			expected: str2url("https://git.com/repo.git/info/lfs"),
    36  		},
    37  		// case 2
    38  		{
    39  			cloneurl: "https://git.com/repo.git",
    40  			lfsurl:   "",
    41  			expected: str2url("https://git.com/repo.git/info/lfs"),
    42  		},
    43  		// case 3
    44  		{
    45  			cloneurl: "",
    46  			lfsurl:   "https://gitlfs.com/repo",
    47  			expected: str2url("https://gitlfs.com/repo"),
    48  		},
    49  		// case 4
    50  		{
    51  			cloneurl: "https://git.com/repo.git",
    52  			lfsurl:   "https://gitlfs.com/repo",
    53  			expected: str2url("https://gitlfs.com/repo"),
    54  		},
    55  		// case 5
    56  		{
    57  			cloneurl: "git://git.com/repo.git",
    58  			lfsurl:   "",
    59  			expected: str2url("https://git.com/repo.git/info/lfs"),
    60  		},
    61  		// case 6
    62  		{
    63  			cloneurl: "",
    64  			lfsurl:   "git://gitlfs.com/repo",
    65  			expected: str2url("https://gitlfs.com/repo"),
    66  		},
    67  	}
    68  
    69  	for n, c := range cases {
    70  		ep := DetermineEndpoint(c.cloneurl, c.lfsurl)
    71  
    72  		assert.Equal(t, c.expected, ep, "case %d: error should match", n)
    73  	}
    74  }