Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
bed05a13
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
bed05a13
编写于
2月 10, 2014
作者:
D
Dmitriy Zaporozhets
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix submodule_helper specs
Signed-off-by:
N
Dmitriy Zaporozhets
<
dmitriy.zaporozhets@gmail.com
>
上级
dee11dad
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
60 addition
and
37 deletion
+60
-37
app/helpers/submodule_helper.rb
app/helpers/submodule_helper.rb
+1
-3
app/models/repository.rb
app/models/repository.rb
+16
-0
spec/helpers/submodule_helper_spec.rb
spec/helpers/submodule_helper_spec.rb
+43
-34
未找到文件。
app/helpers/submodule_helper.rb
浏览文件 @
bed05a13
...
...
@@ -3,9 +3,7 @@ module SubmoduleHelper
# links to files listing for submodule if submodule is a project on this server
def
submodule_links
(
submodule_item
)
submodule
=
@repository
.
submodules
(
@ref
)[
submodule_item
.
path
]
url
=
submodule
[
'url'
]
if
submodule
url
=
@repository
.
submodule_url_for
(
@ref
,
submodule_item
.
path
)
return
url
,
nil
unless
url
=~
/([^\/:]+\/[^\/]+\.git)\Z/
...
...
app/models/repository.rb
浏览文件 @
bed05a13
...
...
@@ -188,4 +188,20 @@ class Repository
nil
end
end
# Returns url for submodule
#
# Ex.
# @repository.submodule_url_for('master', 'rack')
# # => git@localhost:rack.git
#
def
submodule_url_for
(
ref
,
path
)
if
submodules
.
any?
submodule
=
submodules
(
ref
)[
path
]
if
submodule
submodule
[
'url'
]
end
end
end
end
spec/helpers/submodule_helper_spec.rb
浏览文件 @
bed05a13
...
...
@@ -2,8 +2,13 @@ require 'spec_helper'
describe
SubmoduleHelper
do
describe
'submodule links'
do
let
(
:submodule_item
)
{
double
(
submodule_url:
''
,
id:
'hash
'
)
}
let
(
:submodule_item
)
{
double
(
id:
'hash'
,
path:
'rack
'
)
}
let
(
:config
)
{
Gitlab
.
config
.
gitlab
}
let
(
:repo
)
{
double
()
}
before
do
self
.
instance_variable_set
(
:@repository
,
repo
)
end
context
'submodule on self'
do
before
do
...
...
@@ -12,28 +17,28 @@ describe SubmoduleHelper do
it
'should detect ssh on standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
ssh_port:
22
)
# set this just to be sure
s
ubmodule_item
.
stub
(
submodule_url:
[
config
.
user
,
'@'
,
config
.
host
,
':gitlab-org/gitlab-ce.git'
].
join
(
''
))
s
tub_url
(
[
config
.
user
,
'@'
,
config
.
host
,
':gitlab-org/gitlab-ce.git'
].
join
(
''
))
submodule_links
(
submodule_item
).
should
==
[
project_path
(
'gitlab-org/gitlab-ce'
),
project_tree_path
(
'gitlab-org/gitlab-ce'
,
'hash'
)
]
end
it
'should detect ssh on non-standard port'
do
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_port:
2222
)
Gitlab
.
config
.
gitlab_shell
.
stub
(
ssh_path_prefix:
Settings
.
send
(
:build_gitlab_shell_ssh_path_prefix
))
s
ubmodule_item
.
stub
(
submodule_url:
[
'ssh://'
,
config
.
user
,
'@'
,
config
.
host
,
':2222/gitlab-org/gitlab-ce.git'
].
join
(
''
))
s
tub_url
(
[
'ssh://'
,
config
.
user
,
'@'
,
config
.
host
,
':2222/gitlab-org/gitlab-ce.git'
].
join
(
''
))
submodule_links
(
submodule_item
).
should
==
[
project_path
(
'gitlab-org/gitlab-ce'
),
project_tree_path
(
'gitlab-org/gitlab-ce'
,
'hash'
)
]
end
it
'should detect http on standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
80
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
s
ubmodule_item
.
stub
(
submodule_url:
[
'http://'
,
config
.
host
,
'/gitlab-org/gitlab-ce.git'
].
join
(
''
))
s
tub_url
(
[
'http://'
,
config
.
host
,
'/gitlab-org/gitlab-ce.git'
].
join
(
''
))
submodule_links
(
submodule_item
).
should
==
[
project_path
(
'gitlab-org/gitlab-ce'
),
project_tree_path
(
'gitlab-org/gitlab-ce'
,
'hash'
)
]
end
it
'should detect http on non-standard port'
do
Gitlab
.
config
.
gitlab
.
stub
(
port:
3000
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
s
ubmodule_item
.
stub
(
submodule_url:
[
'http://'
,
config
.
host
,
':3000/gitlab-org/gitlab-ce.git'
].
join
(
''
))
s
tub_url
(
[
'http://'
,
config
.
host
,
':3000/gitlab-org/gitlab-ce.git'
].
join
(
''
))
submodule_links
(
submodule_item
).
should
==
[
project_path
(
'gitlab-org/gitlab-ce'
),
project_tree_path
(
'gitlab-org/gitlab-ce'
,
'hash'
)
]
end
...
...
@@ -41,69 +46,73 @@ describe SubmoduleHelper do
Gitlab
.
config
.
gitlab
.
stub
(
port:
80
)
# set this just to be sure
Gitlab
.
config
.
gitlab
.
stub
(
relative_url_root:
'/gitlab/root'
)
Gitlab
.
config
.
gitlab
.
stub
(
url:
Settings
.
send
(
:build_gitlab_url
))
s
ubmodule_item
.
stub
(
submodule_url:
[
'http://'
,
config
.
host
,
'/gitlab/root/gitlab-org/gitlab-ce.git'
].
join
(
''
))
s
tub_url
(
[
'http://'
,
config
.
host
,
'/gitlab/root/gitlab-org/gitlab-ce.git'
].
join
(
''
))
submodule_links
(
submodule_item
).
should
==
[
project_path
(
'gitlab-org/gitlab-ce'
),
project_tree_path
(
'gitlab-org/gitlab-ce'
,
'hash'
)
]
end
end
context
'submodule on github.com'
do
it
'should detect ssh'
do
s
ubmodule_item
.
stub
(
submodule_url:
'git@github.com:gitlab-org/gitlab-ce.git'
)
s
tub_url
(
'git@github.com:gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
'https://github.com/gitlab-org/gitlab-ce'
,
'https://github.com/gitlab-org/gitlab-ce/tree/hash'
]
end
it
'should detect http'
do
s
ubmodule_item
.
stub
(
submodule_url:
'http://github.com/gitlab-org/gitlab-ce.git'
)
s
tub_url
(
'http://github.com/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
'https://github.com/gitlab-org/gitlab-ce'
,
'https://github.com/gitlab-org/gitlab-ce/tree/hash'
]
end
it
'should detect https'
do
s
ubmodule_item
.
stub
(
submodule_url:
'https://github.com/gitlab-org/gitlab-ce.git'
)
s
tub_url
(
'https://github.com/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
'https://github.com/gitlab-org/gitlab-ce'
,
'https://github.com/gitlab-org/gitlab-ce/tree/hash'
]
end
it
'should return original with non-standard url'
do
s
ubmodule_item
.
stub
(
submodule_url:
'http://github.com/gitlab-org/gitlab-ce'
)
submodule_links
(
submodule_item
).
should
==
[
submodule_item
.
submodule_url
,
nil
]
s
tub_url
(
'http://github.com/gitlab-org/gitlab-ce'
)
submodule_links
(
submodule_item
).
should
==
[
repo
.
submodule_url_for
,
nil
]
s
ubmodule_item
.
stub
(
submodule_url:
'http://github.com/another/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
submodule_item
.
submodule_url
,
nil
]
s
tub_url
(
'http://github.com/another/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
repo
.
submodule_url_for
,
nil
]
end
end
context
'submodule on gitlab.com'
do
it
'should detect ssh'
do
s
ubmodule_item
.
stub
(
submodule_url:
'git@gitlab.com:gitlab-org/gitlab-ce.git'
)
s
tub_url
(
'git@gitlab.com:gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
'https://gitlab.com/gitlab-org/gitlab-ce'
,
'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash'
]
end
it
'should detect http'
do
s
ubmodule_item
.
stub
(
submodule_url:
'http://gitlab.com/gitlab-org/gitlab-ce.git'
)
s
tub_url
(
'http://gitlab.com/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
'https://gitlab.com/gitlab-org/gitlab-ce'
,
'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash'
]
end
it
'should detect https'
do
s
ubmodule_item
.
stub
(
submodule_url:
'https://gitlab.com/gitlab-org/gitlab-ce.git'
)
s
tub_url
(
'https://gitlab.com/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
'https://gitlab.com/gitlab-org/gitlab-ce'
,
'https://gitlab.com/gitlab-org/gitlab-ce/tree/hash'
]
end
it
'should return original with non-standard url'
do
s
ubmodule_item
.
stub
(
submodule_url:
'http://gitlab.com/gitlab-org/gitlab-ce'
)
submodule_links
(
submodule_item
).
should
==
[
submodule_item
.
submodule_url
,
nil
]
s
tub_url
(
'http://gitlab.com/gitlab-org/gitlab-ce'
)
submodule_links
(
submodule_item
).
should
==
[
repo
.
submodule_url_for
,
nil
]
s
ubmodule_item
.
stub
(
submodule_url:
'http://gitlab.com/another/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
submodule_item
.
submodule_url
,
nil
]
s
tub_url
(
'http://gitlab.com/another/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
repo
.
submodule_url_for
,
nil
]
end
end
context
'submodule on unsupported'
do
it
'should return original'
do
s
ubmodule_item
.
stub
(
submodule_url:
'http://mygitserver.com/gitlab-org/gitlab-ce'
)
submodule_links
(
submodule_item
).
should
==
[
submodule_item
.
submodule_url
,
nil
]
s
tub_url
(
'http://mygitserver.com/gitlab-org/gitlab-ce'
)
submodule_links
(
submodule_item
).
should
==
[
repo
.
submodule_url_for
,
nil
]
s
ubmodule_item
.
stub
(
submodule_url:
'http://mygitserver.com/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
submodule_item
.
submodule_url
,
nil
]
s
tub_url
(
'http://mygitserver.com/gitlab-org/gitlab-ce.git'
)
submodule_links
(
submodule_item
).
should
==
[
repo
.
submodule_url_for
,
nil
]
end
end
end
def
stub_url
(
url
)
repo
.
stub
(
submodule_url_for:
url
)
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录