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 }