Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
18c3b77b
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,发现更多精彩内容 >>
提交
18c3b77b
编写于
6月 16, 2009
作者:
Y
Yehuda Katz + Carl Lerche
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Merge process2 into process to people's regular tests run :P
上级
1fbfa3e7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
12 addition
and
115 deletion
+12
-115
actionpack/lib/action_controller/testing/integration.rb
actionpack/lib/action_controller/testing/integration.rb
+1
-1
actionpack/lib/action_controller/testing/process.rb
actionpack/lib/action_controller/testing/process.rb
+11
-40
actionpack/lib/action_controller/testing/process2.rb
actionpack/lib/action_controller/testing/process2.rb
+0
-74
未找到文件。
actionpack/lib/action_controller/testing/integration.rb
浏览文件 @
18c3b77b
...
...
@@ -245,7 +245,7 @@ def process(method, path, parameters = nil, rack_environment = nil)
path
=
location
.
query
?
"
#{
location
.
path
}
?
#{
location
.
query
}
"
:
location
.
path
end
[
ControllerCapture
,
ActionController
::
ProcessWithTest
].
each
do
|
mod
|
[
ControllerCapture
,
ActionController
::
Testing
].
each
do
|
mod
|
unless
ActionController
::
Base
<
mod
ActionController
::
Base
.
class_eval
{
include
mod
}
end
...
...
actionpack/lib/action_controller/testing/process.rb
浏览文件 @
18c3b77b
...
...
@@ -124,30 +124,24 @@ def process(action, parameters = nil, session = nil, flash = nil, http_method =
@request
.
recycle!
@response
.
recycle!
@controller
.
response_body
=
nil
@controller
.
formats
=
nil
@controller
.
params
=
nil
@html_document
=
nil
@request
.
request_method
=
http_method
@request
.
env
[
'REQUEST_METHOD'
]
=
http_method
parameters
||=
{}
@request
.
assign_parameters
(
@controller
.
class
.
controller_path
,
action
.
to_s
,
parameters
)
@request
.
session
=
ActionController
::
TestSession
.
new
(
session
)
unless
session
.
nil?
@request
.
session
[
"flash"
]
=
ActionController
::
Flash
::
FlashHash
.
new
.
update
(
flash
)
if
flash
build_request_uri
(
action
,
parameters
)
Base
.
class_eval
{
include
ProcessWithTest
}
unless
Base
<
ProcessWithTest
env
=
@request
.
env
app
=
@controller
# TODO: Enable Lint
# app = Rack::Lint.new(app)
status
,
headers
,
body
=
app
.
action
(
action
,
env
)
response
=
Rack
::
MockResponse
.
new
(
status
,
headers
,
body
)
@response
.
request
,
@response
.
template
=
@request
,
@controller
.
template
@
response
.
status
,
@response
.
headers
,
@response
.
body
=
response
.
status
,
response
.
headers
,
response
.
body
@controller
.
request
=
@request
@controller
.
params
.
merge!
(
parameters
)
build_request_uri
(
action
,
parameters
)
Base
.
class_eval
{
include
Testing
}
@
controller
.
process_with_new_base_test
(
@request
,
@response
)
@response
end
...
...
@@ -167,7 +161,7 @@ def assigns(key = nil)
next
if
ActionController
::
Base
.
protected_instance_variables
.
include?
(
ivar
)
assigns
[
ivar
[
1
..-
1
]]
=
@controller
.
instance_variable_get
(
ivar
)
end
key
.
nil?
?
assigns
:
assigns
[
key
.
to_s
]
end
...
...
@@ -263,27 +257,4 @@ def with_routing
ActionController
::
Routing
.
const_set
(
:Routes
,
real_routes
)
if
real_routes
end
end
module
ProcessWithTest
#:nodoc:
def
self
.
included
(
base
)
base
.
class_eval
{
attr_reader
:assigns
alias_method_chain
:process
,
:test
}
end
def
process_with_test
(
*
args
)
process_without_test
(
*
args
).
tap
{
set_test_assigns
}
end
private
def
set_test_assigns
@assigns
=
{}
(
instance_variable_names
-
self
.
class
.
protected_instance_variables
).
each
do
|
var
|
name
,
value
=
var
[
1
..-
1
],
instance_variable_get
(
var
)
@assigns
[
name
]
=
value
@template
.
assigns
[
name
]
=
value
if
response
end
end
end
end
end
\ No newline at end of file
actionpack/lib/action_controller/testing/process2.rb
已删除
100644 → 0
浏览文件 @
1fbfa3e7
require
"action_controller/testing/process"
module
ActionController
module
TestProcess
# Executes a request simulating GET HTTP method and set/volley the response
def
get
(
action
,
parameters
=
nil
,
session
=
nil
,
flash
=
nil
)
process
(
action
,
parameters
,
session
,
flash
,
"GET"
)
end
# Executes a request simulating POST HTTP method and set/volley the response
def
post
(
action
,
parameters
=
nil
,
session
=
nil
,
flash
=
nil
)
process
(
action
,
parameters
,
session
,
flash
,
"POST"
)
end
# Executes a request simulating PUT HTTP method and set/volley the response
def
put
(
action
,
parameters
=
nil
,
session
=
nil
,
flash
=
nil
)
process
(
action
,
parameters
,
session
,
flash
,
"PUT"
)
end
# Executes a request simulating DELETE HTTP method and set/volley the response
def
delete
(
action
,
parameters
=
nil
,
session
=
nil
,
flash
=
nil
)
process
(
action
,
parameters
,
session
,
flash
,
"DELETE"
)
end
# Executes a request simulating HEAD HTTP method and set/volley the response
def
head
(
action
,
parameters
=
nil
,
session
=
nil
,
flash
=
nil
)
process
(
action
,
parameters
,
session
,
flash
,
"HEAD"
)
end
def
process
(
action
,
parameters
=
nil
,
session
=
nil
,
flash
=
nil
,
http_method
=
'GET'
)
# Sanity check for required instance variables so we can give an
# understandable error message.
%w(@controller @request @response)
.
each
do
|
iv_name
|
if
!
(
instance_variable_names
.
include?
(
iv_name
)
||
instance_variable_names
.
include?
(
iv_name
.
to_sym
))
||
instance_variable_get
(
iv_name
).
nil?
raise
"
#{
iv_name
}
is nil: make sure you set it in your test's setup method."
end
end
@request
.
recycle!
@response
.
recycle!
@controller
.
response_body
=
nil
@controller
.
formats
=
nil
@controller
.
params
=
nil
@html_document
=
nil
@request
.
env
[
'REQUEST_METHOD'
]
=
http_method
parameters
||=
{}
@request
.
assign_parameters
(
@controller
.
class
.
controller_path
,
action
.
to_s
,
parameters
)
@request
.
session
=
ActionController
::
TestSession
.
new
(
session
)
unless
session
.
nil?
@request
.
session
[
"flash"
]
=
ActionController
::
Flash
::
FlashHash
.
new
.
update
(
flash
)
if
flash
@controller
.
request
=
@request
@controller
.
params
.
merge!
(
parameters
)
build_request_uri
(
action
,
parameters
)
# Base.class_eval { include ProcessWithTest } unless Base < ProcessWithTest
@controller
.
process_with_new_base_test
(
@request
,
@response
)
@response
end
def
build_request_uri
(
action
,
parameters
)
unless
@request
.
env
[
'REQUEST_URI'
]
options
=
@controller
.
__send__
(
:rewrite_options
,
parameters
)
options
.
update
(
:only_path
=>
true
,
:action
=>
action
)
url
=
ActionController
::
UrlRewriter
.
new
(
@request
,
parameters
)
@request
.
request_uri
=
url
.
rewrite
(
options
)
end
end
end
end
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录