更新若干功能
This commit is contained in:
45
clone_test.go
Normal file
45
clone_test.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package main
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestRepoNameFromURL(t *testing.T) {
|
||||
cases := map[string]string{
|
||||
"https://github.com/user/my-repo.git": "my-repo",
|
||||
"https://github.com/user/my-repo": "my-repo",
|
||||
"https://github.com/user/my-repo/": "my-repo",
|
||||
"git@github.com:user/awesome.git": "awesome",
|
||||
"ssh://git@host:2222/team/svc.git": "svc",
|
||||
"https://gitee.com/a/b c.git": "b-c",
|
||||
" https://github.com/x/trim.git ": "trim",
|
||||
"https://github.com/user/dots...git": "dots", // 残余尾点会被修剪(Windows 目录名尾部点非法)
|
||||
"https://github.com/user/UPPER.git": "UPPER",
|
||||
`D:\code\my-repo`: "my-repo", // Windows 本地路径克隆
|
||||
`D:\code\my-repo\`: "my-repo",
|
||||
}
|
||||
for in, want := range cases {
|
||||
if got := repoNameFromURL(in); got != want {
|
||||
t.Errorf("repoNameFromURL(%q)=%q want %q", in, got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCloneProgress(t *testing.T) {
|
||||
cases := []struct {
|
||||
line string
|
||||
want int
|
||||
ok bool
|
||||
}{
|
||||
{"Receiving objects: 0% (1/100)", 10, true},
|
||||
{"Receiving objects: 100% (100/100), done.", 85, true},
|
||||
{"Resolving deltas: 100% (50/50), done.", 98, true},
|
||||
{"Counting objects: 50% (5/10)", 3, true},
|
||||
{"Compressing objects: 100% (9/9), done.", 10, true},
|
||||
{"Cloning into 'demo'...", 0, false},
|
||||
}
|
||||
for _, c := range cases {
|
||||
got, ok := cloneProgress(c.line)
|
||||
if ok != c.ok || got != c.want {
|
||||
t.Errorf("cloneProgress(%q)=(%d,%v) want (%d,%v)", c.line, got, ok, c.want, c.ok)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user