github.com/scorpionis/hub@v2.2.1+incompatible/git/url_test.go (about)

     1  package git
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/github/hub/Godeps/_workspace/src/github.com/bmizerany/assert"
     7  )
     8  
     9  func createURLParser() *URLParser {
    10  	c := make(SSHConfig)
    11  	c["github.com"] = "ssh.github.com"
    12  	c["gh"] = "github.com"
    13  	c["git.company.com"] = "ssh.git.company.com"
    14  
    15  	return &URLParser{c}
    16  }
    17  
    18  func TestURLParser_ParseURL_HTTPURL(t *testing.T) {
    19  	p := createURLParser()
    20  
    21  	u, err := p.Parse("https://github.com/octokit/go-octokit.git")
    22  	assert.Equal(t, nil, err)
    23  	assert.Equal(t, "github.com", u.Host)
    24  	assert.Equal(t, "https", u.Scheme)
    25  	assert.Equal(t, "/octokit/go-octokit.git", u.Path)
    26  }
    27  
    28  func TestURLParser_ParseURL_GitURL(t *testing.T) {
    29  	p := createURLParser()
    30  
    31  	u, err := p.Parse("git://github.com/octokit/go-octokit.git")
    32  	assert.Equal(t, nil, err)
    33  	assert.Equal(t, "github.com", u.Host)
    34  	assert.Equal(t, "git", u.Scheme)
    35  	assert.Equal(t, "/octokit/go-octokit.git", u.Path)
    36  
    37  	u, err = p.Parse("https://git.company.com/octokit/go-octokit.git")
    38  	assert.Equal(t, nil, err)
    39  	assert.Equal(t, "git.company.com", u.Host)
    40  	assert.Equal(t, "https", u.Scheme)
    41  	assert.Equal(t, "/octokit/go-octokit.git", u.Path)
    42  
    43  	u, err = p.Parse("git://git.company.com/octokit/go-octokit.git")
    44  	assert.Equal(t, nil, err)
    45  	assert.Equal(t, "git.company.com", u.Host)
    46  	assert.Equal(t, "git", u.Scheme)
    47  	assert.Equal(t, "/octokit/go-octokit.git", u.Path)
    48  }
    49  
    50  func TestURLParser_ParseURL_SSHURL(t *testing.T) {
    51  	p := createURLParser()
    52  
    53  	u, err := p.Parse("git@github.com:lostisland/go-sawyer.git")
    54  	assert.Equal(t, nil, err)
    55  	assert.Equal(t, "github.com", u.Host)
    56  	assert.Equal(t, "ssh", u.Scheme)
    57  	assert.Equal(t, "git", u.User.Username())
    58  	assert.Equal(t, "/lostisland/go-sawyer.git", u.Path)
    59  
    60  	u, err = p.Parse("gh:octokit/go-octokit")
    61  	assert.Equal(t, nil, err)
    62  	assert.Equal(t, "github.com", u.Host)
    63  	assert.Equal(t, "ssh", u.Scheme)
    64  	assert.Equal(t, "/octokit/go-octokit", u.Path)
    65  
    66  	u, err = p.Parse("git@git.company.com:octokit/go-octokit")
    67  	assert.Equal(t, nil, err)
    68  	assert.Equal(t, "ssh.git.company.com", u.Host)
    69  	assert.Equal(t, "ssh", u.Scheme)
    70  	assert.Equal(t, "/octokit/go-octokit", u.Path)
    71  }
    72  
    73  func TestURLParser_ParseURL_LocalPath(t *testing.T) {
    74  	p := createURLParser()
    75  
    76  	u, err := p.Parse("/path/to/repo.git")
    77  	assert.Equal(t, nil, err)
    78  	assert.Equal(t, "", u.Host)
    79  	assert.Equal(t, "", u.Scheme)
    80  	assert.Equal(t, "/path/to/repo.git", u.Path)
    81  
    82  	u, err = p.Parse(`c:\path\to\repo.git`)
    83  	assert.Equal(t, nil, err)
    84  	assert.Equal(t, `c:\path\to\repo.git`, u.String())
    85  }