Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
3bf45890
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,发现更多精彩内容 >>
提交
3bf45890
编写于
7月 03, 2009
作者:
J
José Valim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://github.com/rails/rails
上级
b7bc6807
a4bdc00f
变更
26
隐藏空白更改
内联
并排
Showing
26 changed file
with
489 addition
and
56 deletion
+489
-56
actionpack/lib/action_controller/routing/route_set.rb
actionpack/lib/action_controller/routing/route_set.rb
+1
-0
actionpack/lib/action_view/helpers/asset_tag_helper.rb
actionpack/lib/action_view/helpers/asset_tag_helper.rb
+70
-3
actionpack/lib/action_view/helpers/form_helper.rb
actionpack/lib/action_view/helpers/form_helper.rb
+6
-4
actionpack/lib/action_view/helpers/tag_helper.rb
actionpack/lib/action_view/helpers/tag_helper.rb
+2
-1
actionpack/test/controller/routing_test.rb
actionpack/test/controller/routing_test.rb
+10
-0
actionpack/test/template/active_record_helper_test.rb
actionpack/test/template/active_record_helper_test.rb
+1
-1
actionpack/test/template/asset_tag_helper_test.rb
actionpack/test/template/asset_tag_helper_test.rb
+41
-2
actionpack/test/template/form_helper_test.rb
actionpack/test/template/form_helper_test.rb
+97
-5
actionpack/test/template/form_tag_helper_test.rb
actionpack/test/template/form_tag_helper_test.rb
+3
-3
actionpack/test/template/prototype_helper_test.rb
actionpack/test/template/prototype_helper_test.rb
+3
-3
activesupport/lib/active_support/duration.rb
activesupport/lib/active_support/duration.rb
+4
-2
activesupport/lib/active_support/new_callbacks.rb
activesupport/lib/active_support/new_callbacks.rb
+1
-1
activesupport/lib/active_support/ordered_hash.rb
activesupport/lib/active_support/ordered_hash.rb
+18
-4
activesupport/lib/active_support/testing/isolation.rb
activesupport/lib/active_support/testing/isolation.rb
+5
-0
activesupport/test/core_ext/duration_test.rb
activesupport/test/core_ext/duration_test.rb
+1
-0
activesupport/test/isolation_test.rb
activesupport/test/isolation_test.rb
+15
-2
activesupport/test/ordered_hash_test.rb
activesupport/test/ordered_hash_test.rb
+24
-1
railties/lib/initializer.rb
railties/lib/initializer.rb
+2
-5
railties/lib/rails/gem_dependency.rb
railties/lib/rails/gem_dependency.rb
+7
-3
railties/test/gem_dependency_test.rb
railties/test/gem_dependency_test.rb
+9
-0
railties/test/initializer/check_ruby_version_test.rb
railties/test/initializer/check_ruby_version_test.rb
+51
-0
railties/test/initializer/install_gem_spec_stubs_test.rb
railties/test/initializer/install_gem_spec_stubs_test.rb
+85
-0
railties/test/initializer/path_test.rb
railties/test/initializer/path_test.rb
+7
-14
railties/test/initializer/test_helper.rb
railties/test/initializer/test_helper.rb
+24
-0
railties/test/initializer_test.rb
railties/test/initializer_test.rb
+1
-1
railties/test/plugin_test_helper.rb
railties/test/plugin_test_helper.rb
+1
-1
未找到文件。
actionpack/lib/action_controller/routing/route_set.rb
浏览文件 @
3bf45890
...
...
@@ -305,6 +305,7 @@ def routes_changed_at
end
def
add_route
(
path
,
options
=
{})
options
.
each
{
|
k
,
v
|
options
[
k
]
=
v
.
to_s
if
[
:controller
,
:action
].
include?
(
k
)
&&
v
.
is_a?
(
Symbol
)
}
route
=
builder
.
build
(
path
,
options
)
routes
<<
route
route
...
...
actionpack/lib/action_view/helpers/asset_tag_helper.rb
浏览文件 @
3bf45890
...
...
@@ -454,6 +454,21 @@ def image_path(source)
end
alias_method
:path_to_image
,
:image_path
# aliased to avoid conflicts with an image_path named route
# Computes the path to a video asset in the public videos directory.
# Full paths from the document root will be passed through.
# Used internally by +video_tag+ to build the video path.
#
# ==== Examples
# video_path("hd") # => /videos/hd
# video_path("hd.avi") # => /videos/hd.avi
# video_path("trailers/hd.avi") # => /videos/trailers/hd.avi
# video_path("/trailers/hd.avi") # => /videos/hd.avi
# video_path("http://www.railsapplication.com/vid/hd.avi") # => http://www.railsapplication.com/vid/hd.avi
def
video_path
(
source
)
compute_public_path
(
source
,
'videos'
)
end
alias_method
:path_to_video
,
:video_path
# aliased to avoid conflicts with an video_path named route
# Returns an html image tag for the +source+. The +source+ can be a full
# path or a file that exists in your public images directory.
#
...
...
@@ -490,8 +505,8 @@ def image_path(source)
def
image_tag
(
source
,
options
=
{})
options
.
symbolize_keys!
options
[
:src
]
=
path_to_image
(
source
)
options
[
:alt
]
||=
File
.
basename
(
options
[
:src
]
,
'.*'
).
split
(
'.'
).
first
.
to_s
.
capitalize
src
=
options
[
:src
]
=
path_to_image
(
source
)
options
[
:alt
]
||=
File
.
basename
(
src
,
'.*'
).
split
(
'.'
).
first
.
to_s
.
capitalize
if
size
=
options
.
delete
(
:size
)
options
[
:width
],
options
[
:height
]
=
size
.
split
(
"x"
)
if
size
=~
%r{^
\d
+x
\d
+$}
...
...
@@ -499,12 +514,64 @@ def image_tag(source, options = {})
if
mouseover
=
options
.
delete
(
:mouseover
)
options
[
:onmouseover
]
=
"this.src='
#{
image_path
(
mouseover
)
}
'"
options
[
:onmouseout
]
=
"this.src='
#{
image_path
(
options
[
:src
])
}
'"
options
[
:onmouseout
]
=
"this.src='
#{
src
}
'"
end
tag
(
"img"
,
options
)
end
# Returns an html video tag for the +sources+. If +sources+ is a string,
# a single video tag will be returned. If +sources+ is an array, a video
# tag with nested source tags for each source will be returned. The
# +sources+ can be full paths or files that exists in your public videos
# directory.
#
# ==== Options
# You can add HTML attributes using the +options+. The +options+ supports
# two additional keys for convenience and conformance:
#
# * <tt>:poster</tt> - Set an image (like a screenshot) to be shown
# before the video loads. The path is calculated like the +src+ of +image_tag+.
# * <tt>:size</tt> - Supplied as "{Width}x{Height}", so "30x45" becomes
# width="30" and height="45". <tt>:size</tt> will be ignored if the
# value is not in the correct format.
#
# ==== Examples
# video_tag("trailer") # =>
# <video src="/videos/trailer" />
# video_tag("trailer.ogg") # =>
# <video src="/videos/trailer.ogg" />
# video_tag("trailer.ogg", :controls => true, :autobuffer => true) # =>
# <video autobuffer="autobuffer" controls="controls" src="/videos/trailer.ogg" />
# video_tag("trailer.m4v", :size => "16x10", :poster => "screenshot.png") # =>
# <video src="/videos/trailer.m4v" width="16" height="10" poster="/images/screenshot.png" />
# video_tag("/trailers/hd.avi", :size => "16x16") # =>
# <video src="/trailers/hd.avi" width="16" height="16" />
# video_tag("/trailers/hd.avi", :height => '32', :width => '32') # =>
# <video height="32" src="/trailers/hd.avi" width="32" />
# video_tag(["trailer.ogg", "trailer.flv"]) # =>
# <video><source src="trailer.ogg" /><source src="trailer.ogg" /><source src="trailer.flv" /></video>
# video_tag(["trailer.ogg", "trailer.flv"] :size => "160x120") # =>
# <video height="120" width="160"><source src="trailer.ogg" /><source src="trailer.flv" /></video>
def
video_tag
(
sources
,
options
=
{})
options
.
symbolize_keys!
options
[
:poster
]
=
path_to_image
(
options
[
:poster
])
if
options
[
:poster
]
if
size
=
options
.
delete
(
:size
)
options
[
:width
],
options
[
:height
]
=
size
.
split
(
"x"
)
if
size
=~
%r{^
\d
+x
\d
+$}
end
if
sources
.
is_a?
(
Array
)
content_tag
(
"video"
,
options
)
do
sources
.
map
{
|
source
|
tag
(
"source"
,
:src
=>
source
)
}.
join
end
else
options
[
:src
]
=
path_to_video
(
sources
)
tag
(
"video"
,
options
)
end
end
def
self
.
cache_asset_timestamps
@@cache_asset_timestamps
end
...
...
actionpack/lib/action_view/helpers/form_helper.rb
浏览文件 @
3bf45890
...
...
@@ -926,6 +926,7 @@ class FormBuilder #:nodoc:
attr_accessor
:object_name
,
:object
,
:options
def
initialize
(
object_name
,
object
,
template
,
options
,
proc
)
@nested_child_index
=
{}
@object_name
,
@object
,
@template
,
@options
,
@proc
=
object_name
,
object
,
template
,
options
,
proc
@default_options
=
@options
?
@options
.
slice
(
:index
)
:
{}
if
@object_name
.
to_s
.
match
(
/\[\]$/
)
...
...
@@ -1028,7 +1029,7 @@ def fields_for_with_nested_attributes(association_name, args, block)
explicit_child_index
=
args
.
last
[
:child_index
]
if
args
.
last
.
is_a?
(
Hash
)
children
.
map
do
|
child
|
fields_for_nested_model
(
"
#{
name
}
[
#{
explicit_child_index
||
nested_child_index
}
]"
,
child
,
args
,
block
)
fields_for_nested_model
(
"
#{
name
}
[
#{
explicit_child_index
||
nested_child_index
(
name
)
}
]"
,
child
,
args
,
block
)
end
.
join
else
fields_for_nested_model
(
name
,
explicit_object
||
association
,
args
,
block
)
...
...
@@ -1046,9 +1047,9 @@ def fields_for_nested_model(name, object, args, block)
end
end
def
nested_child_index
@nested_child_index
||=
-
1
@nested_child_index
+=
1
def
nested_child_index
(
name
)
@nested_child_index
[
name
]
||=
-
1
@nested_child_index
[
name
]
+=
1
end
end
end
...
...
@@ -1056,5 +1057,6 @@ def nested_child_index
class
<<
Base
attr_accessor
:default_form_builder
end
Base
.
default_form_builder
=
::
ActionView
::
Helpers
::
FormBuilder
end
actionpack/lib/action_view/helpers/tag_helper.rb
浏览文件 @
3bf45890
...
...
@@ -8,7 +8,8 @@ module Helpers #:nodoc:
module
TagHelper
include
ERB
::
Util
BOOLEAN_ATTRIBUTES
=
%w(disabled readonly multiple checked)
.
to_set
BOOLEAN_ATTRIBUTES
=
%w(disabled readonly multiple checked autobuffer
autoplay controls loop)
.
to_set
BOOLEAN_ATTRIBUTES
.
merge
(
BOOLEAN_ATTRIBUTES
.
map
{
|
attr
|
attr
.
to_sym
})
# Returns an empty HTML tag of type +name+ which by default is XHTML
...
...
actionpack/test/controller/routing_test.rb
浏览文件 @
3bf45890
...
...
@@ -2492,6 +2492,16 @@ def test_route_requirement_recognize_with_xi_modifiers
end
assert_equal
({
:controller
=>
'pages'
,
:action
=>
'show'
,
:name
=>
'JAMIS'
},
set
.
recognize_path
(
'/page/JAMIS'
))
end
def
test_routes_with_symbols
set
.
draw
do
|
map
|
map
.
connect
'unnamed'
,
:controller
=>
:pages
,
:action
=>
:show
,
:name
=>
:as_symbol
map
.
named
'named'
,
:controller
=>
:pages
,
:action
=>
:show
,
:name
=>
:as_symbol
end
assert_equal
({
:controller
=>
'pages'
,
:action
=>
'show'
,
:name
=>
:as_symbol
},
set
.
recognize_path
(
'/unnamed'
))
assert_equal
({
:controller
=>
'pages'
,
:action
=>
'show'
,
:name
=>
:as_symbol
},
set
.
recognize_path
(
'/named'
))
end
end
class
RouteLoadingTest
<
Test
::
Unit
::
TestCase
...
...
actionpack/test/template/active_record_helper_test.rb
浏览文件 @
3bf45890
...
...
@@ -171,7 +171,7 @@ def test_form_with_protect_against_forgery
@request_forgery_protection_token
=
'authenticity_token'
@form_authenticity_token
=
'123'
assert_dom_equal
(
%(<form action="create" method="post"><div style='margin:0;padding:0'><input type='hidden' name='authenticity_token' value='123' /></div><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>)
,
%(<form action="create" method="post"><div style='margin:0;padding:0
;display:inline
'><input type='hidden' name='authenticity_token' value='123' /></div><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>)
,
form
(
"post"
)
)
end
...
...
actionpack/test/template/asset_tag_helper_test.rb
浏览文件 @
3bf45890
...
...
@@ -138,11 +138,38 @@ def teardown
%(image_tag("error.png", "size" => "45 x 70"))
=>
%(<img alt="Error" src="/images/error.png" />)
,
%(image_tag("error.png", "size" => "x"))
=>
%(<img alt="Error" src="/images/error.png" />)
,
%(image_tag("http://www.rubyonrails.com/images/rails.png"))
=>
%(<img alt="Rails" src="http://www.rubyonrails.com/images/rails.png" />)
,
%(image_tag("http://www.rubyonrails.com/images/rails.png"))
=>
%(<img alt="Rails" src="http://www.rubyonrails.com/images/rails.png" />)
,
%(image_tag("mouse.png", :mouseover => "/images/mouse_over.png"))
=>
%(<img alt="Mouse" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" src="/images/mouse.png" />)
,
%(image_tag("mouse.png", :mouseover => image_path("mouse_over.png")))
=>
%(<img alt="Mouse" onmouseover="this.src='/images/mouse_over.png'" onmouseout="this.src='/images/mouse.png'" src="/images/mouse.png" />)
}
VideoPathToTag
=
{
%(video_path("xml"))
=>
%(/videos/xml)
,
%(video_path("xml.ogg"))
=>
%(/videos/xml.ogg)
,
%(video_path("dir/xml.ogg"))
=>
%(/videos/dir/xml.ogg)
,
%(video_path("/dir/xml.ogg"))
=>
%(/dir/xml.ogg)
}
PathToVideoToTag
=
{
%(path_to_video("xml"))
=>
%(/videos/xml)
,
%(path_to_video("xml.ogg"))
=>
%(/videos/xml.ogg)
,
%(path_to_video("dir/xml.ogg"))
=>
%(/videos/dir/xml.ogg)
,
%(path_to_video("/dir/xml.ogg"))
=>
%(/dir/xml.ogg)
}
VideoLinkToTag
=
{
%(video_tag("xml.ogg"))
=>
%(<video src="/videos/xml.ogg" />)
,
%(video_tag("rss.m4v", :autoplay => true, :controls => true))
=>
%(<video autoplay="autoplay" controls="controls" src="/videos/rss.m4v" />)
,
%(video_tag("rss.m4v", :autobuffer => true))
=>
%(<video autobuffer="autobuffer" src="/videos/rss.m4v" />)
,
%(video_tag("gold.m4v", :size => "160x120"))
=>
%(<video height="120" src="/videos/gold.m4v" width="160" />)
,
%(video_tag("gold.m4v", "size" => "320x240"))
=>
%(<video height="240" src="/videos/gold.m4v" width="320" />)
,
%(video_tag("trailer.ogg", :poster => "screenshot.png"))
=>
%(<video poster="/images/screenshot.png" src="/videos/trailer.ogg" />)
,
%(video_tag("error.avi", "size" => "100"))
=>
%(<video src="/videos/error.avi" />)
,
%(video_tag("error.avi", "size" => "100 x 100"))
=>
%(<video src="/videos/error.avi" />)
,
%(video_tag("error.avi", "size" => "x"))
=>
%(<video src="/videos/error.avi" />)
,
%(video_tag("http://media.rubyonrails.org/video/rails_blog_2.mov"))
=>
%(<video src="http://media.rubyonrails.org/video/rails_blog_2.mov" />)
,
%(video_tag(["multiple.ogg", "multiple.avi"]))
=>
%(<video><source src="multiple.ogg" /><source src="multiple.avi" /></video>)
,
%(video_tag(["multiple.ogg", "multiple.avi"], :size => "160x120", :controls => true))
=>
%(<video controls="controls" height="120" width="160"><source src="multiple.ogg" /><source src="multiple.avi" /></video>)
}
def
test_auto_discovery_link_tag
AutoDiscoveryToTag
.
each
{
|
method
,
tag
|
assert_dom_equal
(
tag
,
eval
(
method
))
}
...
...
@@ -272,6 +299,18 @@ def test_image_tag_windows_behaviour
end
end
def
test_video_path
VideoPathToTag
.
each
{
|
method
,
tag
|
assert_dom_equal
(
tag
,
eval
(
method
))
}
end
def
test_path_to_video_alias_for_video_path
PathToVideoToTag
.
each
{
|
method
,
tag
|
assert_dom_equal
(
tag
,
eval
(
method
))
}
end
def
test_video_tag
VideoLinkToTag
.
each
{
|
method
,
tag
|
assert_dom_equal
(
tag
,
eval
(
method
))
}
end
def
test_timebased_asset_id
expected_time
=
File
.
stat
(
File
.
expand_path
(
File
.
dirname
(
__FILE__
)
+
"/../fixtures/public/images/rails.png"
)).
mtime
.
to_i
.
to_s
assert_equal
%(<img alt="Rails" src="/images/rails.png?#{expected_time}" />)
,
image_tag
(
"rails.png"
)
...
...
@@ -284,7 +323,7 @@ def test_timebased_asset_id_with_relative_url_root
ensure
ActionController
::
Base
.
relative_url_root
=
""
end
def
test_should_skip_asset_id_on_complete_url
assert_equal
%(<img alt="Rails" src="http://www.example.com/rails.png" />)
,
image_tag
(
"http://www.example.com/rails.png"
)
end
...
...
actionpack/test/template/form_helper_test.rb
浏览文件 @
3bf45890
...
...
@@ -21,6 +21,9 @@ def author_attributes=(attributes); end
attr_accessor
:comments
def
comments_attributes
=
(
attributes
);
end
attr_accessor
:tags
def
tags_attributes
=
(
attributes
);
end
end
class
Comment
...
...
@@ -33,6 +36,50 @@ def to_param; @id; end
def
name
@id
.
nil?
?
"new
#{
self
.
class
.
name
.
downcase
}
"
:
"
#{
self
.
class
.
name
.
downcase
}
#
#{
@id
}
"
end
attr_accessor
:relevances
def
relevances_attributes
=
(
attributes
);
end
end
class
Tag
attr_reader
:id
attr_reader
:post_id
def
initialize
(
id
=
nil
,
post_id
=
nil
);
@id
,
@post_id
=
id
,
post_id
end
def
save
;
@id
=
1
;
@post_id
=
1
end
def
new_record?
;
@id
.
nil?
end
def
to_param
;
@id
;
end
def
value
@id
.
nil?
?
"new
#{
self
.
class
.
name
.
downcase
}
"
:
"
#{
self
.
class
.
name
.
downcase
}
#
#{
@id
}
"
end
attr_accessor
:relevances
def
relevances_attributes
=
(
attributes
);
end
end
class
CommentRelevance
attr_reader
:id
attr_reader
:comment_id
def
initialize
(
id
=
nil
,
comment_id
=
nil
);
@id
,
@comment_id
=
id
,
comment_id
end
def
save
;
@id
=
1
;
@comment_id
=
1
end
def
new_record?
;
@id
.
nil?
end
def
to_param
;
@id
;
end
def
value
@id
.
nil?
?
"new
#{
self
.
class
.
name
.
downcase
}
"
:
"
#{
self
.
class
.
name
.
downcase
}
#
#{
@id
}
"
end
end
class
TagRelevance
attr_reader
:id
attr_reader
:tag_id
def
initialize
(
id
=
nil
,
tag_id
=
nil
);
@id
,
@tag_id
=
id
,
tag_id
end
def
save
;
@id
=
1
;
@tag_id
=
1
end
def
new_record?
;
@id
.
nil?
end
def
to_param
;
@id
;
end
def
value
@id
.
nil?
?
"new
#{
self
.
class
.
name
.
downcase
}
"
:
"
#{
self
.
class
.
name
.
downcase
}
#
#{
@id
}
"
end
end
class
Author
<
Comment
...
...
@@ -383,7 +430,7 @@ def test_form_for_with_method
expected
=
"<form action='http://www.example.com' id='create-post' method='post'>"
+
"<div style='margin:0;padding:0'><input name='_method' type='hidden' value='put' /></div>"
+
"<div style='margin:0;padding:0
;display:inline
'><input name='_method' type='hidden' value='put' /></div>"
+
"<input name='post[title]' size='30' type='text' id='post_title' value='Hello World' />"
+
"<textarea name='post[body]' id='post_body' rows='20' cols='40'>Back to the hill and over it again!</textarea>"
+
"<input name='post[secret]' type='hidden' value='0' />"
+
...
...
@@ -740,6 +787,51 @@ def test_nested_fields_for_with_child_index_option_override_on_a_nested_attribut
assert_dom_equal
expected
,
output_buffer
end
def
test_nested_fields_uses_unique_indices_for_different_collection_associations
@post
.
comments
=
[
Comment
.
new
(
321
)]
@post
.
tags
=
[
Tag
.
new
(
123
),
Tag
.
new
(
456
)]
@post
.
comments
[
0
].
relevances
=
[]
@post
.
tags
[
0
].
relevances
=
[]
@post
.
tags
[
1
].
relevances
=
[]
form_for
(
:post
,
@post
)
do
|
f
|
f
.
fields_for
(
:comments
,
@post
.
comments
[
0
])
do
|
cf
|
concat
cf
.
text_field
(
:name
)
cf
.
fields_for
(
:relevances
,
CommentRelevance
.
new
(
314
))
do
|
crf
|
concat
crf
.
text_field
(
:value
)
end
end
f
.
fields_for
(
:tags
,
@post
.
tags
[
0
])
do
|
tf
|
concat
tf
.
text_field
(
:value
)
tf
.
fields_for
(
:relevances
,
TagRelevance
.
new
(
3141
))
do
|
trf
|
concat
trf
.
text_field
(
:value
)
end
end
f
.
fields_for
(
'tags'
,
@post
.
tags
[
1
])
do
|
tf
|
concat
tf
.
text_field
(
:value
)
tf
.
fields_for
(
:relevances
,
TagRelevance
.
new
(
31415
))
do
|
trf
|
concat
trf
.
text_field
(
:value
)
end
end
end
expected
=
'<form action="http://www.example.com" method="post">'
+
'<input id="post_comments_attributes_0_id" name="post[comments_attributes][0][id]" type="hidden" value="321" />'
+
'<input id="post_comments_attributes_0_name" name="post[comments_attributes][0][name]" size="30" type="text" value="comment #321" />'
+
'<input id="post_comments_attributes_0_relevances_attributes_0_id" name="post[comments_attributes][0][relevances_attributes][0][id]" type="hidden" value="314" />'
+
'<input id="post_comments_attributes_0_relevances_attributes_0_value" name="post[comments_attributes][0][relevances_attributes][0][value]" size="30" type="text" value="commentrelevance #314" />'
+
'<input id="post_tags_attributes_0_id" name="post[tags_attributes][0][id]" type="hidden" value="123" />'
+
'<input id="post_tags_attributes_0_value" name="post[tags_attributes][0][value]" size="30" type="text" value="tag #123" />'
+
'<input id="post_tags_attributes_0_relevances_attributes_0_id" name="post[tags_attributes][0][relevances_attributes][0][id]" type="hidden" value="3141" />'
+
'<input id="post_tags_attributes_0_relevances_attributes_0_value" name="post[tags_attributes][0][relevances_attributes][0][value]" size="30" type="text" value="tagrelevance #3141" />'
+
'<input id="post_tags_attributes_1_id" name="post[tags_attributes][1][id]" type="hidden" value="456" />'
+
'<input id="post_tags_attributes_1_value" name="post[tags_attributes][1][value]" size="30" type="text" value="tag #456" />'
+
'<input id="post_tags_attributes_1_relevances_attributes_0_id" name="post[tags_attributes][1][relevances_attributes][0][id]" type="hidden" value="31415" />'
+
'<input id="post_tags_attributes_1_relevances_attributes_0_value" name="post[tags_attributes][1][relevances_attributes][0][value]" size="30" type="text" value="tagrelevance #31415" />'
+
'</form>'
assert_dom_equal
expected
,
output_buffer
end
def
test_fields_for
fields_for
(
:post
,
@post
)
do
|
f
|
concat
f
.
text_field
(
:title
)
...
...
@@ -1092,7 +1184,7 @@ def test_form_for_with_record_url_option
def
test_form_for_with_existing_object
form_for
(
@post
)
do
|
f
|
end
expected
=
"<form action=
\"
/posts/123
\"
class=
\"
edit_post
\"
id=
\"
edit_post_123
\"
method=
\"
post
\"
><div style=
\"
margin:0;padding:0
\"
><input name=
\"
_method
\"
type=
\"
hidden
\"
value=
\"
put
\"
/></div></form>"
expected
=
"<form action=
\"
/posts/123
\"
class=
\"
edit_post
\"
id=
\"
edit_post_123
\"
method=
\"
post
\"
><div style=
\"
margin:0;padding:0
;display:inline
\"
><input name=
\"
_method
\"
type=
\"
hidden
\"
value=
\"
put
\"
/></div></form>"
assert_equal
expected
,
output_buffer
end
...
...
@@ -1113,7 +1205,7 @@ def test_form_for_with_existing_object_in_list
form_for
([
@post
,
@comment
])
{}
expected
=
%(<form action="#{comment_path(@post, @comment)}" class="edit_comment" id="edit_comment_1" method="post"><div style="margin:0;padding:0"><input name="_method" type="hidden" value="put" /></div></form>)
expected
=
%(<form action="#{comment_path(@post, @comment)}" class="edit_comment" id="edit_comment_1" method="post"><div style="margin:0;padding:0
;display:inline
"><input name="_method" type="hidden" value="put" /></div></form>)
assert_dom_equal
expected
,
output_buffer
end
...
...
@@ -1132,7 +1224,7 @@ def test_form_for_with_existing_object_and_namespace_in_list
form_for
([
:admin
,
@post
,
@comment
])
{}
expected
=
%(<form action="#{admin_comment_path(@post, @comment)}" class="edit_comment" id="edit_comment_1" method="post"><div style="margin:0;padding:0"><input name="_method" type="hidden" value="put" /></div></form>)
expected
=
%(<form action="#{admin_comment_path(@post, @comment)}" class="edit_comment" id="edit_comment_1" method="post"><div style="margin:0;padding:0
;display:inline
"><input name="_method" type="hidden" value="put" /></div></form>)
assert_dom_equal
expected
,
output_buffer
end
...
...
@@ -1148,7 +1240,7 @@ def test_form_for_with_new_object_and_namespace_in_list
def
test_form_for_with_existing_object_and_custom_url
form_for
(
@post
,
:url
=>
"/super_posts"
)
do
|
f
|
end
expected
=
"<form action=
\"
/super_posts
\"
class=
\"
edit_post
\"
id=
\"
edit_post_123
\"
method=
\"
post
\"
><div style=
\"
margin:0;padding:0
\"
><input name=
\"
_method
\"
type=
\"
hidden
\"
value=
\"
put
\"
/></div></form>"
expected
=
"<form action=
\"
/super_posts
\"
class=
\"
edit_post
\"
id=
\"
edit_post_123
\"
method=
\"
post
\"
><div style=
\"
margin:0;padding:0
;display:inline
\"
><input name=
\"
_method
\"
type=
\"
hidden
\"
value=
\"
put
\"
/></div></form>"
assert_equal
expected
,
output_buffer
end
...
...
actionpack/test/template/form_tag_helper_test.rb
浏览文件 @
3bf45890
...
...
@@ -40,13 +40,13 @@ def test_form_tag_multipart
def
test_form_tag_with_method_put
actual
=
form_tag
({},
{
:method
=>
:put
})
expected
=
%(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0'><input type="hidden" name="_method" value="put" /></div>)
expected
=
%(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0
;display:inline
'><input type="hidden" name="_method" value="put" /></div>)
assert_dom_equal
expected
,
actual
end
def
test_form_tag_with_method_delete
actual
=
form_tag
({},
{
:method
=>
:delete
})
expected
=
%(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0'><input type="hidden" name="_method" value="delete" /></div>)
expected
=
%(<form action="http://www.example.com" method="post"><div style='margin:0;padding:0
;display:inline
'><input type="hidden" name="_method" value="delete" /></div>)
assert_dom_equal
expected
,
actual
end
...
...
@@ -62,7 +62,7 @@ def test_form_tag_with_block_and_method_in_erb
__in_erb_template
=
''
form_tag
(
"http://example.com"
,
:method
=>
:put
)
{
concat
"Hello world!"
}
expected
=
%(<form action="http://example.com" method="post"><div style='margin:0;padding:0'><input type="hidden" name="_method" value="put" /></div>Hello world!</form>)
expected
=
%(<form action="http://example.com" method="post"><div style='margin:0;padding:0
;display:inline
'><input type="hidden" name="_method" value="put" /></div>Hello world!</form>)
assert_dom_equal
expected
,
output_buffer
end
...
...
actionpack/test/template/prototype_helper_test.rb
浏览文件 @
3bf45890
...
...
@@ -136,7 +136,7 @@ def test_form_remote_tag
end
def
test_form_remote_tag_with_method
assert_dom_equal
%(<form action=\"http://www.example.com/fast\" method=\"post\" onsubmit=\"new Ajax.Updater('glass_of_beer', 'http://www.example.com/fast', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;\"><div style='margin:0;padding:0'><input name='_method' type='hidden' value='put' /></div>)
,
assert_dom_equal
%(<form action=\"http://www.example.com/fast\" method=\"post\" onsubmit=\"new Ajax.Updater('glass_of_beer', 'http://www.example.com/fast', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;\"><div style='margin:0;padding:0
;display:inline
'><input name='_method' type='hidden' value='put' /></div>)
,
form_remote_tag
(
:update
=>
"glass_of_beer"
,
:url
=>
{
:action
=>
:fast
},
:html
=>
{
:method
=>
:put
})
end
...
...
@@ -164,7 +164,7 @@ def test_remote_form_for_with_record_identification_with_existing_record
@record
.
save
remote_form_for
(
@record
)
{}
expected
=
%(<form action='#{author_path(@record)}' id='edit_author_1' method='post' onsubmit="new Ajax.Request('#{author_path(@record)}', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;" class='edit_author'><div style='margin:0;padding:0'><input name='_method' type='hidden' value='put' /></div></form>)
expected
=
%(<form action='#{author_path(@record)}' id='edit_author_1' method='post' onsubmit="new Ajax.Request('#{author_path(@record)}', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;" class='edit_author'><div style='margin:0;padding:0
;display:inline
'><input name='_method' type='hidden' value='put' /></div></form>)
assert_dom_equal
expected
,
output_buffer
end
...
...
@@ -180,7 +180,7 @@ def test_remote_form_for_with_existing_object_in_list
@article
.
save
remote_form_for
([
@author
,
@article
])
{}
expected
=
%(<form action='#{author_article_path(@author, @article)}' id='edit_article_1' method='post' onsubmit="new Ajax.Request('#{author_article_path(@author, @article)}', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;" class='edit_article'><div style='margin:0;padding:0'><input name='_method' type='hidden' value='put' /></div></form>)
expected
=
%(<form action='#{author_article_path(@author, @article)}' id='edit_article_1' method='post' onsubmit="new Ajax.Request('#{author_article_path(@author, @article)}', {asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;" class='edit_article'><div style='margin:0;padding:0
;display:inline
'><input name='_method' type='hidden' value='put' /></div></form>)
assert_dom_equal
expected
,
output_buffer
end
...
...
activesupport/lib/active_support/duration.rb
浏览文件 @
3bf45890
...
...
@@ -68,10 +68,12 @@ def ago(time = ::Time.current)
def
inspect
#:nodoc:
consolidated
=
parts
.
inject
(
::
Hash
.
new
(
0
))
{
|
h
,
part
|
h
[
part
.
first
]
+=
part
.
last
;
h
}
[
:years
,
:months
,
:days
,
:minutes
,
:seconds
].
map
do
|
length
|
parts
=
[
:years
,
:months
,
:days
,
:minutes
,
:seconds
].
map
do
|
length
|
n
=
consolidated
[
length
]
"
#{
n
}
#{
n
==
1
?
length
.
to_s
.
singularize
:
length
.
to_s
}
"
if
n
.
nonzero?
end
.
compact
.
to_sentence
(
:locale
=>
:en
)
end
.
compact
parts
=
[
"0 seconds"
]
if
parts
.
empty?
parts
.
to_sentence
(
:locale
=>
:en
)
end
protected
...
...
activesupport/lib/active_support/new_callbacks.rb
浏览文件 @
3bf45890
...
...
@@ -202,7 +202,7 @@ def start(key = nil, options = {})
# end
name
=
"_conditional_callback_
#{
@kind
}
_
#{
next_id
}
"
txt
,
line
=
<<-
RUBY_EVAL
,
__LINE__
txt
,
line
=
<<-
RUBY_EVAL
,
__LINE__
+
1
def
#{
name
}
(halted)
#{
@compiled_options
[
0
]
||
"if true"
}
&& !halted
#{
@filter
}
do
...
...
activesupport/lib/active_support/ordered_hash.rb
浏览文件 @
3bf45890
...
...
@@ -12,11 +12,25 @@ def initialize(*args, &block)
def
self
.
[]
(
*
args
)
ordered_hash
=
new
args
.
each_with_index
{
|
val
,
ind
|
# Only every second value is a key.
next
if
ind
%
2
!=
0
if
(
args
.
length
==
1
&&
args
.
first
.
is_a?
(
Array
))
args
.
first
.
each
do
|
key_value_pair
|
next
unless
(
key_value_pair
.
is_a?
(
Array
))
ordered_hash
[
key_value_pair
[
0
]]
=
key_value_pair
[
1
]
end
return
ordered_hash
end
unless
(
args
.
size
%
2
==
0
)
raise
ArgumentError
.
new
(
"odd number of arguments for Hash"
)
end
args
.
each_with_index
do
|
val
,
ind
|
next
if
(
ind
%
2
!=
0
)
ordered_hash
[
val
]
=
args
[
ind
+
1
]
}
end
ordered_hash
end
...
...
activesupport/lib/active_support/testing/isolation.rb
浏览文件 @
3bf45890
...
...
@@ -21,6 +21,11 @@ def self.forking_env?
end
def
run
(
result
)
unless
defined?
(
@@ran_class_setup
)
self
.
class
.
setup
@@ran_class_setup
=
true
end
yield
(
Test
::
Unit
::
TestCase
::
STARTED
,
name
)
@_result
=
result
...
...
activesupport/test/core_ext/duration_test.rb
浏览文件 @
3bf45890
...
...
@@ -3,6 +3,7 @@
class
DurationTest
<
ActiveSupport
::
TestCase
def
test_inspect
assert_equal
'0 seconds'
,
0
.
seconds
.
inspect
assert_equal
'1 month'
,
1
.
month
.
inspect
assert_equal
'1 month and 1 day'
,
(
1
.
month
+
1
.
day
).
inspect
assert_equal
'6 months and -2 days'
,
(
6
.
months
-
2
.
days
).
inspect
...
...
activesupport/test/isolation_test.rb
浏览文件 @
3bf45890
...
...
@@ -5,6 +5,12 @@
class
ChildIsolationTest
<
ActiveSupport
::
TestCase
include
ActiveSupport
::
Testing
::
Isolation
def
self
.
setup
File
.
open
(
File
.
join
(
File
.
dirname
(
__FILE__
),
"fixtures"
,
"isolation_test"
),
"a"
)
do
|
f
|
f
.
puts
"hello"
end
end
def
setup
@instance
=
"HELLO"
end
...
...
@@ -64,6 +70,8 @@ def teardown
else
class
ParentIsolationTest
<
ActiveSupport
::
TestCase
File
.
open
(
File
.
join
(
File
.
dirname
(
__FILE__
),
"fixtures"
,
"isolation_test"
),
"w"
)
{}
ENV
[
"CHILD"
]
=
"1"
OUTPUT
=
`
#{
Gem
.
ruby
}
-I
#{
File
.
dirname
(
__FILE__
)
}
#{
File
.
expand_path
(
__FILE__
)
}
-v`
ENV
.
delete
(
"CHILD"
)
...
...
@@ -131,12 +139,17 @@ def assert_erroring(name)
test
"backtrace is printed for errors"
do
assert_equal
'Error'
,
@backtraces
[
"test_captures_errors"
][
:type
]
assert_match
%
{isolation_test.rb:21
:in `test_captures_errors'}
,
@backtraces
[
"test_captures_errors"
][
:output
]
assert_match
%
r{isolation_test.rb:
\d
+
:in `test_captures_errors'}
,
@backtraces
[
"test_captures_errors"
][
:output
]
end
test
"backtrace is printed for failures"
do
assert_equal
'Failure'
,
@backtraces
[
"test_captures_failures"
][
:type
]
assert_match
%{isolation_test.rb:25:in `test_captures_failures'}
,
@backtraces
[
"test_captures_failures"
][
:output
]
assert_match
%r{isolation_test.rb:
\d
+:in `test_captures_failures'}
,
@backtraces
[
"test_captures_failures"
][
:output
]
end
test
"self.setup is run only once"
do
text
=
File
.
read
(
File
.
join
(
File
.
dirname
(
__FILE__
),
"fixtures"
,
"isolation_test"
))
assert_equal
"hello
\n
"
,
text
end
end
...
...
activesupport/test/ordered_hash_test.rb
浏览文件 @
3bf45890
...
...
@@ -163,9 +163,32 @@ def test_inspect
assert
@ordered_hash
.
inspect
.
include?
(
@hash
.
inspect
)
end
def
test_alternate_initialization
def
test_alternate_initialization
_with_splat
alternate
=
ActiveSupport
::
OrderedHash
[
1
,
2
,
3
,
4
]
assert_kind_of
ActiveSupport
::
OrderedHash
,
alternate
assert_equal
[
1
,
3
],
alternate
.
keys
end
def
test_alternate_initialization_with_array
alternate
=
ActiveSupport
::
OrderedHash
[
[
[
1
,
2
],
[
3
,
4
],
"bad key value pair"
,
[
'missing value'
]
]]
assert_kind_of
ActiveSupport
::
OrderedHash
,
alternate
assert_equal
[
1
,
3
,
'missing value'
],
alternate
.
keys
assert_equal
[
2
,
4
,
nil
],
alternate
.
values
end
def
test_alternate_initialization_raises_exception_on_odd_length_args
begin
alternate
=
ActiveSupport
::
OrderedHash
[
1
,
2
,
3
,
4
,
5
]
flunk
"Hash::[] should have raised an exception on initialization "
+
"with an odd number of parameters"
rescue
assert_equal
"odd number of arguments for Hash"
,
$!
.
message
end
end
end
railties/lib/initializer.rb
浏览文件 @
3bf45890
...
...
@@ -125,11 +125,8 @@ def self.run(initializer = nil, config = nil)
if
Rails
.
vendor_rails?
begin
;
require
"rubygems"
;
rescue
LoadError
;
return
;
end
stubs
=
%w(rails activesupport activerecord actionpack actionmailer activeresource)
stubs
.
reject!
{
|
s
|
Gem
.
loaded_specs
.
key?
(
s
)
}
stubs
.
each
do
|
stub
|
Gem
.
loaded_specs
[
stub
]
=
Gem
::
Specification
.
new
do
|
s
|
%w(rails activesupport activerecord actionpack actionmailer activeresource)
.
each
do
|
stub
|
Gem
.
loaded_specs
[
stub
]
||=
Gem
::
Specification
.
new
do
|
s
|
s
.
name
=
stub
s
.
version
=
Rails
::
VERSION
::
STRING
s
.
loaded_from
=
""
...
...
railties/lib/rails/gem_dependency.rb
浏览文件 @
3bf45890
...
...
@@ -122,10 +122,14 @@ def requirement
def
built?
return
false
unless
frozen?
specification
.
extensions
.
each
do
|
ext
|
makefile
=
File
.
join
(
unpacked_gem_directory
,
File
.
dirname
(
ext
),
'Makefile'
)
return
false
unless
File
.
exists?
(
makefile
)
if
vendor_gem?
specification
.
extensions
.
each
do
|
ext
|
makefile
=
File
.
join
(
unpacked_gem_directory
,
File
.
dirname
(
ext
),
'Makefile'
)
return
false
unless
File
.
exists?
(
makefile
)
end
end
true
end
...
...
railties/test/gem_dependency_test.rb
浏览文件 @
3bf45890
...
...
@@ -199,6 +199,15 @@ def test_gem_determines_build_status
assert_equal
true
,
Rails
::
GemDependency
.
new
(
"dummy-gem-i"
).
built?
assert_equal
false
,
Rails
::
GemDependency
.
new
(
"dummy-gem-j"
).
built?
end
def
test_gem_determines_build_status_only_on_vendor_gems
framework_gem
=
Rails
::
GemDependency
.
new
(
'dummy-framework-gem'
)
framework_gem
.
stubs
(
:framework_gem?
).
returns
(
true
)
# already loaded
framework_gem
.
stubs
(
:vendor_rails?
).
returns
(
false
)
# but not in vendor/rails
framework_gem
.
stubs
(
:vendor_gem?
).
returns
(
false
)
# and not in vendor/gems
framework_gem
.
add_load_paths
# freeze framework gem early
assert
framework_gem
.
built?
end
def
test_gem_build_passes_options_to_dependencies
start_gem
=
Rails
::
GemDependency
.
new
(
"dummy-gem-g"
)
...
...
railties/test/initializer/check_ruby_version_test.rb
0 → 100644
浏览文件 @
3bf45890
require
"initializer/test_helper"
module
InitializerTests
class
PathsTest
<
ActiveSupport
::
TestCase
include
ActiveSupport
::
Testing
::
Isolation
test
"rails does not initialize with ruby version 1.8.1"
do
assert_rails_does_not_boot
"1.8.1"
end
test
"rails initializes with ruby version 1.8.2"
do
assert_rails_boots
"1.8.2"
end
test
"rails does not initialize with ruby version 1.8.3"
do
assert_rails_does_not_boot
"1.8.3"
end
test
"rails initializes with ruby version 1.8.4"
do
assert_rails_boots
"1.8.4"
end
test
"rails initializes with ruby version 1.8.5"
do
assert_rails_boots
"1.8.5"
end
test
"rails initializes with ruby version 1.8.6"
do
assert_rails_boots
"1.8.6"
end
def
set_ruby_version
(
version
)
$-w
=
nil
Object
.
const_set
(
:RUBY_VERSION
,
version
.
freeze
)
end
def
assert_rails_boots
(
version
)
set_ruby_version
(
version
)
assert_nothing_raised
"It appears that rails does not boot"
do
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
end
end
def
assert_rails_does_not_boot
(
version
)
set_ruby_version
(
version
)
$stderr
=
File
.
open
(
"/dev/null"
,
"w"
)
assert_raises
(
SystemExit
)
do
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
end
end
end
end
railties/test/initializer/install_gem_spec_stubs_test.rb
0 → 100644
浏览文件 @
3bf45890
require
"initializer/test_helper"
module
InitializerTests
class
GemSpecStubsTest
<
ActiveSupport
::
TestCase
include
ActiveSupport
::
Testing
::
Isolation
def
setup
$stderr
=
StringIO
.
new
end
test
"user has an old boot.rb (defined by having no Rails.vendor_rails?)"
do
class
<<
Rails
undef
vendor_rails?
end
assert_stderr
(
/outdated/
)
do
assert_raises
(
SystemExit
)
do
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
end
end
end
test
"requires rubygems"
do
Kernel
.
module_eval
do
alias
old_require
require
def
require
(
name
)
$rubygems_required
=
true
if
name
==
"rubygems"
old_require
(
name
)
end
end
Rails
.
vendor_rails
=
true
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
assert
$rubygems_required
end
test
"does not fail if rubygems does not exist"
do
Kernel
.
module_eval
do
alias
old_require
require
def
require
(
name
)
raise
LoadError
if
name
==
"rubygems"
old_require
(
name
)
end
end
assert_nothing_raised
do
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
end
end
test
"adds fake Rubygems stubs if a framework is not loaded in Rubygems and we've vendored"
do
Rails
.
vendor_rails
=
true
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
%w(rails activesupport activerecord actionpack actionmailer activeresource)
.
each
do
|
stub
|
gem_spec
=
Gem
.
loaded_specs
[
stub
]
assert_equal
Gem
::
Version
.
new
(
Rails
::
VERSION
::
STRING
),
gem_spec
.
version
assert_equal
stub
,
gem_spec
.
name
assert_equal
""
,
gem_spec
.
loaded_from
end
end
test
"doesn't replace gem specs that are already loaded"
do
Rails
.
vendor_rails
=
true
Gem
.
loaded_specs
[
"rails"
]
=
Gem
::
Specification
.
new
do
|
s
|
s
.
name
=
"rails"
s
.
version
=
Rails
::
VERSION
::
STRING
s
.
loaded_from
=
"/foo/bar/baz"
end
Rails
::
Initializer
.
run
{
|
c
|
c
.
frameworks
=
[]
}
assert_equal
"/foo/bar/baz"
,
Gem
.
loaded_specs
[
"rails"
].
loaded_from
%w(activesupport activerecord actionpack actionmailer activeresource)
.
each
do
|
stub
|
gem_spec
=
Gem
.
loaded_specs
[
stub
]
assert_equal
Gem
::
Version
.
new
(
Rails
::
VERSION
::
STRING
),
gem_spec
.
version
assert_equal
stub
,
gem_spec
.
name
assert_equal
""
,
gem_spec
.
loaded_from
end
end
end
end
\ No newline at end of file
railties/test/initializer/path_test.rb
浏览文件 @
3bf45890
require
'abstract_unit'
require
'active_support/ruby/shim'
require
'initializer'
RAILS_ROOT
.
replace
File
.
join
(
File
.
dirname
(
__FILE__
),
"root"
)
module
Rails
def
self
.
vendor_rails?
;
false
;
end
end
# TODO: Can this be reset?
Rails
::
Initializer
.
run
do
|
config
|
config
.
frameworks
=
[
:action_controller
,
:action_view
,
:action_mailer
,
:active_record
]
end
require
"initializer/test_helper"
class
PathsTest
<
ActiveSupport
::
TestCase
include
ActiveSupport
::
Testing
::
Isolation
def
self
.
setup
Rails
::
Initializer
.
run
do
|
config
|
config
.
frameworks
=
[
:action_controller
,
:action_view
,
:action_mailer
,
:active_record
]
end
end
def
setup
@paths
=
Rails
::
Initializer
.
default
.
config
.
paths
end
...
...
railties/test/initializer/test_helper.rb
0 → 100644
浏览文件 @
3bf45890
require
'abstract_unit'
require
'active_support/ruby/shim'
require
'initializer'
RAILS_ROOT
.
replace
File
.
join
(
File
.
dirname
(
__FILE__
),
"root"
)
module
Rails
class
<<
self
attr_accessor
:vendor_rails
def
vendor_rails?
()
@vendor_rails
end
end
end
class
ActiveSupport::TestCase
def
assert_stderr
(
match
)
$stderr
=
StringIO
.
new
yield
$stderr
.
rewind
err
=
$stderr
.
read
assert_match
match
,
err
ensure
$stderr
=
STDERR
end
end
\ No newline at end of file
railties/test/initializer_test.rb
浏览文件 @
3bf45890
...
...
@@ -178,7 +178,7 @@ def assert_framework_path(path)
end
end
require
File
.
dirname
(
__FILE__
)
+
'/
plugin_test_helper'
require
'
plugin_test_helper'
class
InitializerPluginLoadingTests
<
Test
::
Unit
::
TestCase
def
setup
...
...
railties/test/plugin_test_helper.rb
浏览文件 @
3bf45890
...
...
@@ -4,7 +4,7 @@
require
'test/unit'
require
'active_support'
require
'initializer'
require
File
.
join
(
File
.
dirname
(
__FILE__
),
'abstract_unit'
)
require
'abstract_unit'
# We need to set RAILS_ROOT if it isn't already set
RAILS_ROOT
=
'.'
unless
defined?
(
RAILS_ROOT
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录