Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
759f2ccc
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,发现更多精彩内容 >>
提交
759f2ccc
编写于
10月 27, 2009
作者:
J
Joshua Peek
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Start migrating AC routing tests into dispatch folder
上级
c2a17217
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
336 addition
and
332 deletion
+336
-332
actionpack/test/controller/routing_test.rb
actionpack/test/controller/routing_test.rb
+0
-332
actionpack/test/dispatch/routing_test.rb
actionpack/test/dispatch/routing_test.rb
+336
-0
未找到文件。
actionpack/test/controller/routing_test.rb
浏览文件 @
759f2ccc
...
...
@@ -2046,335 +2046,3 @@ def assert_raise(e)
assert
true
end
end
class
TestRoutingMapper
<
ActiveSupport
::
TestCase
include
Rack
::
Test
::
Methods
SprocketsApp
=
lambda
{
|
env
|
[
200
,
{
"Content-Type"
=>
"text/html"
},
[
"javascripts"
]]
}
class
IpRestrictor
def
self
.
matches?
(
request
)
request
.
ip
=~
/192\.168\.1\.1\d\d/
end
end
class
Dispatcher
def
self
.
new
(
*
args
)
lambda
{
|
env
|
params
=
env
[
'action_dispatch.request.path_parameters'
]
controller
,
action
=
params
[
:controller
],
params
[
:action
]
[
200
,
{
'Content-Type'
=>
'text/html'
},
[
"
#{
controller
}
#
#{
action
}
"
]]
}
end
end
old_dispatcher
=
ActionDispatch
::
Routing
::
RouteSet
::
Dispatcher
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
remove_const
:Dispatcher
}
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
const_set
:Dispatcher
,
Dispatcher
}
Routes
=
ActionDispatch
::
Routing
::
RouteSet
.
new
Routes
.
draw
do
controller
:sessions
do
get
'login'
,
:to
=>
:new
,
:as
=>
:login
post
'login'
,
:to
=>
:create
delete
'logout'
,
:to
=>
:destroy
,
:as
=>
:logout
end
match
'account/login'
,
:to
=>
redirect
(
"/login"
)
match
'openid/login'
,
:via
=>
[
:get
,
:post
],
:to
=>
"openid#login"
controller
(
:global
)
do
match
'global/:action'
match
'global/export'
,
:to
=>
:export
,
:as
=>
:export_request
match
'global/hide_notice'
,
:to
=>
:hide_notice
,
:as
=>
:hide_notice
match
'/export/:id/:file'
,
:to
=>
:export
,
:as
=>
:export_download
,
:constraints
=>
{
:file
=>
/.*/
}
end
constraints
(
:ip
=>
/192\.168\.1\.\d\d\d/
)
do
get
'admin'
,
:to
=>
"queenbee#index"
end
constraints
IpRestrictor
do
get
'admin/accounts'
,
:to
=>
"queenbee#accounts"
end
resources
:projects
,
:controller
=>
:project
do
resources
:involvements
,
:attachments
resources
:participants
do
put
:update_all
,
:on
=>
:collection
end
resources
:companies
do
resources
:people
resource
:avatar
end
resources
:images
do
post
:revise
,
:on
=>
:member
end
resources
:people
do
namespace
":access_token"
do
resource
:avatar
end
member
do
put
:accessible_projects
post
:resend
,
:generate_new_password
end
end
resources
:posts
do
get
:archive
,
:toggle_view
,
:on
=>
:collection
post
:preview
,
:on
=>
:member
resource
:subscription
resources
:comments
do
post
:preview
,
:on
=>
:collection
end
end
end
match
'sprockets.js'
,
:to
=>
SprocketsApp
match
'people/:id/update'
,
:to
=>
'people#update'
,
:as
=>
:update_person
match
'/projects/:project_id/people/:id/update'
,
:to
=>
'people#update'
,
:as
=>
:update_project_person
# misc
match
'articles/:year/:month/:day/:title'
,
:to
=>
"articles#show"
,
:as
=>
:article
namespace
:account
do
resource
:subscription
,
:credit
,
:credit_card
end
controller
:articles
do
scope
'articles'
do
scope
':title'
,
:title
=>
/[a-z]+/
,
:as
=>
:with_title
do
match
':id'
,
:to
=>
:with_id
end
end
end
scope
':access_token'
,
:constraints
=>
{
:access_token
=>
/\w{5,5}/
}
do
resources
:rooms
end
end
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
remove_const
:Dispatcher
}
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
const_set
:Dispatcher
,
old_dispatcher
}
def
app
Routes
end
def
test_logout
delete
'/logout'
assert_equal
'sessions#destroy'
,
last_response
.
body
# assert_equal '/logout', app.logout_path
end
def
test_login
get
'/login'
assert_equal
'sessions#new'
,
last_response
.
body
post
'/login'
assert_equal
'sessions#create'
,
last_response
.
body
# assert_equal '/login', app.login_path
end
def
test_login_redirect
get
'/account/login'
assert_equal
301
,
last_response
.
status
assert_equal
'http://example.org/login'
,
last_response
.
headers
[
'Location'
]
assert_equal
'Moved Permanently'
,
last_response
.
body
end
def
test_openid
get
'/openid/login'
assert_equal
'openid#login'
,
last_response
.
body
post
'/openid/login'
assert_equal
'openid#login'
,
last_response
.
body
end
# def test_admin
# get '/admin', {}, {'REMOTE_ADDR' => '192.168.1.100'}
# assert_equal 'queenbee#index', last_response.body
#
# assert_raise(ActionController::RoutingError) { get '/admin', {}, {'REMOTE_ADDR' => '10.0.0.100'} }
#
# get '/admin/accounts', {}, {'REMOTE_ADDR' => '192.168.1.100'}
# assert_equal 'queenbee#accounts', last_response.body
#
# assert_raise(ActionController::RoutingError) { get '/admin/accounts', {}, {'REMOTE_ADDR' => '10.0.0.100'} }
# end
def
test_global
get
'/global/dashboard'
assert_equal
'global#dashboard'
,
last_response
.
body
get
'/global/export'
assert_equal
'global#export'
,
last_response
.
body
get
'/global/hide_notice'
assert_equal
'global#hide_notice'
,
last_response
.
body
get
'/export/123/foo.txt'
assert_equal
'global#export'
,
last_response
.
body
# assert_equal '/global/export', app.export_request_path
# assert_equal '/global/hide_notice', app.hide_notice_path
# assert_equal '/export/123/foo.txt', app.export_download_path(:id => 123, :file => 'foo.txt')
end
def
test_projects
get
'/projects/1'
assert_equal
'projects#show'
,
last_response
.
body
end
def
test_projects_involvements
get
'/projects/1/involvements'
assert_equal
'involvements#index'
,
last_response
.
body
get
'/projects/1/involvements/1'
assert_equal
'involvements#show'
,
last_response
.
body
end
def
test_projects_attachments
get
'/projects/1/attachments'
assert_equal
'attachments#index'
,
last_response
.
body
end
def
test_projects_participants
get
'/projects/1/participants'
assert_equal
'participants#index'
,
last_response
.
body
put
'/projects/1/participants/update_all'
assert_equal
'participants#update_all'
,
last_response
.
body
end
def
test_projects_companies
get
'/projects/1/companies'
assert_equal
'companies#index'
,
last_response
.
body
get
'/projects/1/companies/1/people'
assert_equal
'people#index'
,
last_response
.
body
get
'/projects/1/companies/1/avatar'
assert_equal
'avatar#show'
,
last_response
.
body
end
def
test_project_images
get
'/projects/1/images'
assert_equal
'images#index'
,
last_response
.
body
post
'/projects/1/images/1/revise'
assert_equal
'images#revise'
,
last_response
.
body
end
def
test_projects_people
get
'/projects/1/people'
assert_equal
'people#index'
,
last_response
.
body
get
'/projects/1/people/1'
assert_equal
'people#show'
,
last_response
.
body
get
'/projects/1/people/1/7a2dec8/avatar'
assert_equal
'avatar#show'
,
last_response
.
body
put
'/projects/1/people/1/accessible_projects'
assert_equal
'people#accessible_projects'
,
last_response
.
body
post
'/projects/1/people/1/resend'
assert_equal
'people#resend'
,
last_response
.
body
post
'/projects/1/people/1/generate_new_password'
assert_equal
'people#generate_new_password'
,
last_response
.
body
end
def
test_projects_posts
get
'/projects/1/posts'
assert_equal
'posts#index'
,
last_response
.
body
get
'/projects/1/posts/archive'
assert_equal
'posts#archive'
,
last_response
.
body
get
'/projects/1/posts/toggle_view'
assert_equal
'posts#toggle_view'
,
last_response
.
body
post
'/projects/1/posts/1/preview'
assert_equal
'posts#preview'
,
last_response
.
body
get
'/projects/1/posts/1/subscription'
assert_equal
'subscription#show'
,
last_response
.
body
get
'/projects/1/posts/1/comments'
assert_equal
'comments#index'
,
last_response
.
body
post
'/projects/1/posts/1/comments/preview'
assert_equal
'comments#preview'
,
last_response
.
body
end
def
test_sprockets
get
'/sprockets.js'
assert_equal
'javascripts'
,
last_response
.
body
end
def
test_update_person_route
get
'/people/1/update'
assert_equal
'people#update'
,
last_response
.
body
# assert_equal '/people/1/update', app.update_person_path(:id => 1)
end
def
test_update_project_person
get
'/projects/1/people/2/update'
assert_equal
'people#update'
,
last_response
.
body
# assert_equal '/projects/1/people/2/update', app.update_project_person_path(:project_id => 1, :id => 2)
end
def
test_articles_perma
get
'/articles/2009/08/18/rails-3'
assert_equal
'articles#show'
,
last_response
.
body
# assert_equal '/articles/2009/8/18/rails-3', app.article_path(:year => 2009, :month => 8, :day => 18, :title => 'rails-3')
end
def
test_account_namespace
get
'/account/subscription'
assert_equal
'subscription#show'
,
last_response
.
body
get
'/account/credit'
assert_equal
'credit#show'
,
last_response
.
body
get
'/account/credit_card'
assert_equal
'credit_card#show'
,
last_response
.
body
end
def
test_articles_with_id
get
'/articles/rails/1'
assert_equal
'articles#with_id'
,
last_response
.
body
assert_raise
(
ActionController
::
RoutingError
)
{
get
'/articles/123/1'
}
# assert_equal '/articles/rails/1', app.with_title_path(:title => 'rails', :id => 1)
end
def
test_access_token_rooms
get
'/12345/rooms'
assert_equal
'rooms#index'
,
last_response
.
body
get
'/12345/rooms/1'
assert_equal
'rooms#show'
,
last_response
.
body
get
'/12345/rooms/1/edit'
assert_equal
'rooms#edit'
,
last_response
.
body
end
end
actionpack/test/dispatch/routing_test.rb
0 → 100644
浏览文件 @
759f2ccc
require
'abstract_unit'
require
'controller/fake_controllers'
class
TestRoutingMapper
<
ActionDispatch
::
IntegrationTest
SprocketsApp
=
lambda
{
|
env
|
[
200
,
{
"Content-Type"
=>
"text/html"
},
[
"javascripts"
]]
}
class
IpRestrictor
def
self
.
matches?
(
request
)
request
.
ip
=~
/192\.168\.1\.1\d\d/
end
end
class
Dispatcher
def
self
.
new
(
*
args
)
lambda
{
|
env
|
params
=
env
[
'action_dispatch.request.path_parameters'
]
controller
,
action
=
params
[
:controller
],
params
[
:action
]
[
200
,
{
'Content-Type'
=>
'text/html'
},
[
"
#{
controller
}
#
#{
action
}
"
]]
}
end
end
old_dispatcher
=
ActionDispatch
::
Routing
::
RouteSet
::
Dispatcher
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
remove_const
:Dispatcher
}
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
const_set
:Dispatcher
,
Dispatcher
}
Routes
=
ActionDispatch
::
Routing
::
RouteSet
.
new
Routes
.
draw
do
controller
:sessions
do
get
'login'
,
:to
=>
:new
,
:as
=>
:login
post
'login'
,
:to
=>
:create
delete
'logout'
,
:to
=>
:destroy
,
:as
=>
:logout
end
match
'account/login'
,
:to
=>
redirect
(
"/login"
)
match
'openid/login'
,
:via
=>
[
:get
,
:post
],
:to
=>
"openid#login"
controller
(
:global
)
do
match
'global/:action'
match
'global/export'
,
:to
=>
:export
,
:as
=>
:export_request
match
'global/hide_notice'
,
:to
=>
:hide_notice
,
:as
=>
:hide_notice
match
'/export/:id/:file'
,
:to
=>
:export
,
:as
=>
:export_download
,
:constraints
=>
{
:file
=>
/.*/
}
end
constraints
(
:ip
=>
/192\.168\.1\.\d\d\d/
)
do
get
'admin'
,
:to
=>
"queenbee#index"
end
constraints
IpRestrictor
do
get
'admin/accounts'
,
:to
=>
"queenbee#accounts"
end
resources
:projects
,
:controller
=>
:project
do
resources
:involvements
,
:attachments
resources
:participants
do
put
:update_all
,
:on
=>
:collection
end
resources
:companies
do
resources
:people
resource
:avatar
end
resources
:images
do
post
:revise
,
:on
=>
:member
end
resources
:people
do
namespace
":access_token"
do
resource
:avatar
end
member
do
put
:accessible_projects
post
:resend
,
:generate_new_password
end
end
resources
:posts
do
get
:archive
,
:toggle_view
,
:on
=>
:collection
post
:preview
,
:on
=>
:member
resource
:subscription
resources
:comments
do
post
:preview
,
:on
=>
:collection
end
end
end
match
'sprockets.js'
,
:to
=>
SprocketsApp
match
'people/:id/update'
,
:to
=>
'people#update'
,
:as
=>
:update_person
match
'/projects/:project_id/people/:id/update'
,
:to
=>
'people#update'
,
:as
=>
:update_project_person
# misc
match
'articles/:year/:month/:day/:title'
,
:to
=>
"articles#show"
,
:as
=>
:article
namespace
:account
do
resource
:subscription
,
:credit
,
:credit_card
end
controller
:articles
do
scope
'articles'
do
scope
':title'
,
:title
=>
/[a-z]+/
,
:as
=>
:with_title
do
match
':id'
,
:to
=>
:with_id
end
end
end
scope
':access_token'
,
:constraints
=>
{
:access_token
=>
/\w{5,5}/
}
do
resources
:rooms
end
end
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
remove_const
:Dispatcher
}
ActionDispatch
::
Routing
::
RouteSet
.
module_eval
{
const_set
:Dispatcher
,
old_dispatcher
}
def
app
Routes
end
def
setup
Routes
.
install_helpers
(
metaclass
)
end
def
test_logout
delete
'/logout'
assert_equal
'sessions#destroy'
,
@response
.
body
# assert_equal '/logout', logout_path
end
def
test_login
get
'/login'
assert_equal
'sessions#new'
,
@response
.
body
post
'/login'
assert_equal
'sessions#create'
,
@response
.
body
# assert_equal '/login', app.login_path
end
def
test_login_redirect
get
'/account/login'
assert_equal
301
,
@response
.
status
assert_equal
'http://www.example.com/login'
,
@response
.
headers
[
'Location'
]
assert_equal
'Moved Permanently'
,
@response
.
body
end
def
test_openid
get
'/openid/login'
assert_equal
'openid#login'
,
@response
.
body
post
'/openid/login'
assert_equal
'openid#login'
,
@response
.
body
end
# def test_admin
# get '/admin', {}, {'REMOTE_ADDR' => '192.168.1.100'}
# assert_equal 'queenbee#index', @response.body
#
# assert_raise(ActionController::RoutingError) { get '/admin', {}, {'REMOTE_ADDR' => '10.0.0.100'} }
#
# get '/admin/accounts', {}, {'REMOTE_ADDR' => '192.168.1.100'}
# assert_equal 'queenbee#accounts', @response.body
#
# assert_raise(ActionController::RoutingError) { get '/admin/accounts', {}, {'REMOTE_ADDR' => '10.0.0.100'} }
# end
def
test_global
get
'/global/dashboard'
assert_equal
'global#dashboard'
,
@response
.
body
get
'/global/export'
assert_equal
'global#export'
,
@response
.
body
get
'/global/hide_notice'
assert_equal
'global#hide_notice'
,
@response
.
body
get
'/export/123/foo.txt'
assert_equal
'global#export'
,
@response
.
body
# assert_equal '/global/export', app.export_request_path
# assert_equal '/global/hide_notice', app.hide_notice_path
# assert_equal '/export/123/foo.txt', app.export_download_path(:id => 123, :file => 'foo.txt')
end
def
test_projects
get
'/projects/1'
assert_equal
'projects#show'
,
@response
.
body
end
def
test_projects_involvements
get
'/projects/1/involvements'
assert_equal
'involvements#index'
,
@response
.
body
get
'/projects/1/involvements/1'
assert_equal
'involvements#show'
,
@response
.
body
end
def
test_projects_attachments
get
'/projects/1/attachments'
assert_equal
'attachments#index'
,
@response
.
body
end
def
test_projects_participants
get
'/projects/1/participants'
assert_equal
'participants#index'
,
@response
.
body
put
'/projects/1/participants/update_all'
assert_equal
'participants#update_all'
,
@response
.
body
end
def
test_projects_companies
get
'/projects/1/companies'
assert_equal
'companies#index'
,
@response
.
body
get
'/projects/1/companies/1/people'
assert_equal
'people#index'
,
@response
.
body
get
'/projects/1/companies/1/avatar'
assert_equal
'avatar#show'
,
@response
.
body
end
def
test_project_images
get
'/projects/1/images'
assert_equal
'images#index'
,
@response
.
body
post
'/projects/1/images/1/revise'
assert_equal
'images#revise'
,
@response
.
body
end
def
test_projects_people
get
'/projects/1/people'
assert_equal
'people#index'
,
@response
.
body
get
'/projects/1/people/1'
assert_equal
'people#show'
,
@response
.
body
get
'/projects/1/people/1/7a2dec8/avatar'
assert_equal
'avatar#show'
,
@response
.
body
put
'/projects/1/people/1/accessible_projects'
assert_equal
'people#accessible_projects'
,
@response
.
body
post
'/projects/1/people/1/resend'
assert_equal
'people#resend'
,
@response
.
body
post
'/projects/1/people/1/generate_new_password'
assert_equal
'people#generate_new_password'
,
@response
.
body
end
def
test_projects_posts
get
'/projects/1/posts'
assert_equal
'posts#index'
,
@response
.
body
get
'/projects/1/posts/archive'
assert_equal
'posts#archive'
,
@response
.
body
get
'/projects/1/posts/toggle_view'
assert_equal
'posts#toggle_view'
,
@response
.
body
post
'/projects/1/posts/1/preview'
assert_equal
'posts#preview'
,
@response
.
body
get
'/projects/1/posts/1/subscription'
assert_equal
'subscription#show'
,
@response
.
body
get
'/projects/1/posts/1/comments'
assert_equal
'comments#index'
,
@response
.
body
post
'/projects/1/posts/1/comments/preview'
assert_equal
'comments#preview'
,
@response
.
body
end
def
test_sprockets
get
'/sprockets.js'
assert_equal
'javascripts'
,
@response
.
body
end
def
test_update_person_route
get
'/people/1/update'
assert_equal
'people#update'
,
@response
.
body
# assert_equal '/people/1/update', app.update_person_path(:id => 1)
end
def
test_update_project_person
get
'/projects/1/people/2/update'
assert_equal
'people#update'
,
@response
.
body
# assert_equal '/projects/1/people/2/update', app.update_project_person_path(:project_id => 1, :id => 2)
end
def
test_articles_perma
get
'/articles/2009/08/18/rails-3'
assert_equal
'articles#show'
,
@response
.
body
# assert_equal '/articles/2009/8/18/rails-3', app.article_path(:year => 2009, :month => 8, :day => 18, :title => 'rails-3')
end
def
test_account_namespace
get
'/account/subscription'
assert_equal
'subscription#show'
,
@response
.
body
get
'/account/credit'
assert_equal
'credit#show'
,
@response
.
body
get
'/account/credit_card'
assert_equal
'credit_card#show'
,
@response
.
body
end
def
test_articles_with_id
get
'/articles/rails/1'
assert_equal
'articles#with_id'
,
@response
.
body
assert_raise
(
ActionController
::
RoutingError
)
{
get
'/articles/123/1'
}
# assert_equal '/articles/rails/1', app.with_title_path(:title => 'rails', :id => 1)
end
def
test_access_token_rooms
get
'/12345/rooms'
assert_equal
'rooms#index'
,
@response
.
body
get
'/12345/rooms/1'
assert_equal
'rooms#show'
,
@response
.
body
get
'/12345/rooms/1/edit'
assert_equal
'rooms#edit'
,
@response
.
body
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录