Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a544e006
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a544e006
编写于
5月 03, 2012
作者:
A
Andy Lindeman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allows assert_redirected_to to accept a regular expression
上级
fb7abea9
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
26 addition
and
13 deletion
+26
-13
actionpack/CHANGELOG.md
actionpack/CHANGELOG.md
+2
-0
actionpack/lib/action_dispatch/testing/assertions/response.rb
...onpack/lib/action_dispatch/testing/assertions/response.rb
+20
-13
actionpack/test/controller/action_pack_assertions_test.rb
actionpack/test/controller/action_pack_assertions_test.rb
+4
-0
未找到文件。
actionpack/CHANGELOG.md
浏览文件 @
a544e006
## Rails 4.0.0 (unreleased) ##
## Rails 4.0.0 (unreleased) ##
*
Allows
`assert_redirected_to`
to match against a regular expression.
*Andy Lindeman*
*
Add backtrace to development routing error page.
*Richard Schneeman*
*
Add backtrace to development routing error page.
*Richard Schneeman*
*
Replace
`include_seconds`
boolean argument with
`:include_seconds => true`
option
*
Replace
`include_seconds`
boolean argument with
`:include_seconds => true`
option
...
...
actionpack/lib/action_dispatch/testing/assertions/response.rb
浏览文件 @
a544e006
...
@@ -53,15 +53,18 @@ def assert_response(type, message = nil)
...
@@ -53,15 +53,18 @@ def assert_response(type, message = nil)
# # assert that the redirection was to the url for @customer
# # assert that the redirection was to the url for @customer
# assert_redirected_to @customer
# assert_redirected_to @customer
#
#
# # asserts that the redirection matches the regular expression
# assert_redirected_to %r(\Ahttp://example.org)
#
def
assert_redirected_to
(
options
=
{},
message
=
nil
)
def
assert_redirected_to
(
options
=
{},
message
=
nil
)
assert_response
(
:redirect
,
message
)
assert_response
(
:redirect
,
message
)
return
true
if
options
==
@response
.
location
return
true
if
options
==
=
@response
.
location
redirect_is
=
normalize_argument_to_redirection
(
@response
.
location
)
redirect_is
=
normalize_argument_to_redirection
(
@response
.
location
)
redirect_expected
=
normalize_argument_to_redirection
(
options
)
redirect_expected
=
normalize_argument_to_redirection
(
options
)
message
||=
"Expected response to be a redirect to <
#{
redirect_expected
}
> but was a redirect to <
#{
redirect_is
}
>"
message
||=
"Expected response to be a redirect to <
#{
redirect_expected
}
> but was a redirect to <
#{
redirect_is
}
>"
assert_
equal
redirect_expected
,
redirect_is
,
message
assert_
operator
redirect_expected
,
:===
,
redirect_is
,
message
end
end
private
private
...
@@ -71,7 +74,9 @@ def parameterize(value)
...
@@ -71,7 +74,9 @@ def parameterize(value)
end
end
def
normalize_argument_to_redirection
(
fragment
)
def
normalize_argument_to_redirection
(
fragment
)
case
fragment
normalized
=
case
fragment
when
Regexp
fragment
when
%r{^
\w
[A-Za-z
\d
+.-]*:.*}
when
%r{^
\w
[A-Za-z
\d
+.-]*:.*}
fragment
fragment
when
String
when
String
...
@@ -81,7 +86,9 @@ def normalize_argument_to_redirection(fragment)
...
@@ -81,7 +86,9 @@ def normalize_argument_to_redirection(fragment)
refer
refer
else
else
@controller
.
url_for
(
fragment
)
@controller
.
url_for
(
fragment
)
end
.
delete
(
"
\0\r\n
"
)
end
normalized
.
respond_to?
(
:delete
)
?
normalized
.
delete
(
"
\0\r\n
"
)
:
normalized
end
end
end
end
end
end
...
...
actionpack/test/controller/action_pack_assertions_test.rb
浏览文件 @
a544e006
...
@@ -178,6 +178,9 @@ def test_assert_redirect_to_named_route_failure
...
@@ -178,6 +178,9 @@ def test_assert_redirect_to_named_route_failure
assert_raise
(
ActiveSupport
::
TestCase
::
Assertion
)
do
assert_raise
(
ActiveSupport
::
TestCase
::
Assertion
)
do
assert_redirected_to
'http://test.host/route_two'
assert_redirected_to
'http://test.host/route_two'
end
end
assert_raise
(
ActiveSupport
::
TestCase
::
Assertion
)
do
assert_redirected_to
%r(^http://test.host/route_two)
end
assert_raise
(
ActiveSupport
::
TestCase
::
Assertion
)
do
assert_raise
(
ActiveSupport
::
TestCase
::
Assertion
)
do
assert_redirected_to
:controller
=>
'action_pack_assertions'
,
:action
=>
'nothing'
,
:id
=>
'two'
assert_redirected_to
:controller
=>
'action_pack_assertions'
,
:action
=>
'nothing'
,
:id
=>
'two'
end
end
...
@@ -212,6 +215,7 @@ def test_assert_redirected_to_top_level_named_route_from_nested_controller
...
@@ -212,6 +215,7 @@ def test_assert_redirected_to_top_level_named_route_from_nested_controller
process
:redirect_to_top_level_named_route
process
:redirect_to_top_level_named_route
# assert_redirected_to "http://test.host/action_pack_assertions/foo" would pass because of exact match early return
# assert_redirected_to "http://test.host/action_pack_assertions/foo" would pass because of exact match early return
assert_redirected_to
"/action_pack_assertions/foo"
assert_redirected_to
"/action_pack_assertions/foo"
assert_redirected_to
%r(/action_pack_assertions/foo)
end
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录