Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
44b82396
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,发现更多精彩内容 >>
提交
44b82396
编写于
5月 12, 2015
作者:
J
Jakub Jirutka
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add spec for RelativeLinkFilter
上级
b3276661
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
120 addition
and
73 deletion
+120
-73
spec/helpers/gitlab_markdown_helper_spec.rb
spec/helpers/gitlab_markdown_helper_spec.rb
+0
-73
spec/lib/gitlab/markdown/relative_link_filter_spec.rb
spec/lib/gitlab/markdown/relative_link_filter_spec.rb
+120
-0
未找到文件。
spec/helpers/gitlab_markdown_helper_spec.rb
浏览文件 @
44b82396
...
@@ -96,79 +96,6 @@ describe GitlabMarkdownHelper do
...
@@ -96,79 +96,6 @@ describe GitlabMarkdownHelper do
end
end
end
end
describe
"#markdown"
do
# TODO (rspeicher): These belong in a relative link filter spec
context
'relative links'
do
context
'with a valid repository'
do
before
do
@repository
=
project
.
repository
@ref
=
'markdown'
end
it
"should handle relative urls for a file in master"
do
actual
=
"[GitLab API doc](doc/api/README.md)
\n
"
expected
=
"<p><a href=
\"
/
#{
project
.
path_with_namespace
}
/blob/
#{
@ref
}
/doc/api/README.md
\"
>GitLab API doc</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should handle relative urls for a file in master with an anchor"
do
actual
=
"[GitLab API doc](doc/api/README.md#section)
\n
"
expected
=
"<p><a href=
\"
/
#{
project
.
path_with_namespace
}
/blob/
#{
@ref
}
/doc/api/README.md#section
\"
>GitLab API doc</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should not handle relative urls for the current file with an anchor"
do
actual
=
"[GitLab API doc](#section)
\n
"
expected
=
"<p><a href=
\"
#section
\"
>GitLab API doc</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should handle relative urls for a directory in master"
do
actual
=
"[GitLab API doc](doc/api)
\n
"
expected
=
"<p><a href=
\"
/
#{
project
.
path_with_namespace
}
/tree/
#{
@ref
}
/doc/api
\"
>GitLab API doc</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should handle absolute urls"
do
actual
=
"[GitLab](https://www.gitlab.com)
\n
"
expected
=
"<p><a href=
\"
https://www.gitlab.com
\"
>GitLab</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should handle relative urls in reference links for a file in master"
do
actual
=
"[GitLab API doc][GitLab readme]
\n
[GitLab readme]: doc/api/README.md
\n
"
expected
=
"<p><a href=
\"
/
#{
project
.
path_with_namespace
}
/blob/
#{
@ref
}
/doc/api/README.md
\"
>GitLab API doc</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should handle relative urls in reference links for a directory in master"
do
actual
=
"[GitLab API doc directory][GitLab readmes]
\n
[GitLab readmes]: doc/api/
\n
"
expected
=
"<p><a href=
\"
/
#{
project
.
path_with_namespace
}
/tree/
#{
@ref
}
/doc/api
\"
>GitLab API doc directory</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
it
"should not handle malformed relative urls in reference links for a file in master"
do
actual
=
"[GitLab readme]: doc/api/README.md
\n
"
expected
=
""
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
end
context
'with an empty repository'
do
before
do
@project
=
create
(
:empty_project
)
@repository
=
@project
.
repository
end
it
"should not touch relative urls"
do
actual
=
"[GitLab API doc][GitLab readme]
\n
[GitLab readme]: doc/api/README.md
\n
"
expected
=
"<p><a href=
\"
doc/api/README.md
\"
>GitLab API doc</a></p>
\n
"
expect
(
markdown
(
actual
)).
to
match
(
expected
)
end
end
end
end
describe
'#render_wiki_content'
do
describe
'#render_wiki_content'
do
before
do
before
do
@wiki
=
double
(
'WikiPage'
)
@wiki
=
double
(
'WikiPage'
)
...
...
spec/lib/gitlab/markdown/relative_link_filter_spec.rb
0 → 100644
浏览文件 @
44b82396
require
'spec_helper'
module
Gitlab::Markdown
describe
RelativeLinkFilter
do
include
ActionView
::
Helpers
::
TagHelper
let!
(
:project
)
{
create
(
:project
)
}
let
(
:commit
)
{
project
.
commit
}
let
(
:project_path
)
{
project
.
path_with_namespace
}
let
(
:repository
)
{
project
.
repository
}
let
(
:ref
)
{
'markdown'
}
let
(
:project_wiki
)
{
nil
}
let
(
:requested_path
)
{
'/'
}
let
(
:blob
)
{
RepoHelpers
.
sample_blob
}
let
(
:context
)
do
{
commit:
commit
,
project:
project
,
project_wiki:
project_wiki
,
requested_path:
requested_path
,
ref:
ref
}
end
shared_examples
:preserve_unchanged
do
it
"should not modify any relative url in anchor"
do
doc
=
tag
(
:a
,
href:
'README.md'
)
expect
(
filter
(
doc
)
).
to
match
'"README.md"'
end
it
"should not modify any relative url in image"
do
doc
=
tag
(
:img
,
src:
'files/images/logo-black.png'
)
expect
(
filter
(
doc
)
).
to
match
'"files/images/logo-black.png"'
end
end
shared_examples
:relative_to_requested
do
it
"should rebuild url relative to the requested path"
do
expect
(
filter
(
tag
(
:a
,
href:
'users.md'
))
).
to
\
match
%("/#{project_path}/blob/#{ref}/doc/api/users.md")
end
end
context
"with a project_wiki"
do
let
(
:project_wiki
)
{
double
(
'ProjectWiki'
)
}
include_examples
:preserve_unchanged
end
context
"without a repository"
do
let!
(
:project
)
{
create
(
:empty_project
)
}
include_examples
:preserve_unchanged
end
context
"with an empty repository"
do
let!
(
:project
)
{
create
(
:project_empty_repo
)
}
include_examples
:preserve_unchanged
end
context
"with a valid repository"
do
it
"should rebuild relative url for a file in the repo"
do
expect
(
filter
(
tag
(
:a
,
href:
'doc/api/README.md'
))
).
to
\
match
%("/#{project_path}/blob/#{ref}/doc/api/README.md")
end
it
"should rebuild relative url for a file in the repo with an anchor"
do
expect
(
filter
(
tag
(
:a
,
href:
'README.md#section'
))
).
to
\
match
%("/#{project_path}/blob/#{ref}/README.md#section")
end
it
"should rebuild relative url for a directory in the repo"
do
expect
(
filter
(
tag
(
:a
,
href:
'doc/api/'
))
).
to
\
match
%("/#{project_path}/tree/#{ref}/doc/api")
end
it
"should rebuild relative url for an image in the repo"
do
expect
(
filter
(
tag
(
:img
,
src:
'files/images/logo-black.png'
))
).
to
\
match
%("/#{project_path}/raw/#{ref}/files/images/logo-black.png")
end
it
"should not modify relative url with an anchor only"
do
doc
=
tag
(
:a
,
href:
'#section-1'
)
expect
(
filter
(
doc
)
).
to
match
%("#section-1")
end
it
"should not modify absolute url"
do
expect
(
filter
(
tag
(
:a
,
href:
'http://example.org'
))
).
to
\
match
%("http://example.org")
end
context
"when requested path is a file in the repo"
do
let
(
:requested_path
)
{
'doc/api/README.md'
}
include_examples
:relative_to_requested
end
context
"when requested path is a directory in the repo"
do
let
(
:requested_path
)
{
'doc/api'
}
include_examples
:relative_to_requested
end
end
def
filter
(
doc
)
described_class
.
call
(
doc
,
context
).
to_s
end
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录