提交 2ebea1c0 编写于 作者: M Mikel Lindsaar 提交者: Jeremy Kemper

deOMGifying Railties, Active Support, and Action Pack

上级 b3a02825
......@@ -4,7 +4,7 @@ module Testing
include RackDelegation
# OMG MEGA HAX
# TODO: Clean this up
def process_with_new_base_test(request, response)
@_request = request
@_response = response
......
......@@ -141,8 +141,7 @@ def initialize(path, options = {})
end
end
# OMG HAX
# TODO: remove hax
# TODO: remove hack
class FileSystemResolverWithFallback < Resolver
def initialize(path, options = {})
super(options)
......
......@@ -13,7 +13,7 @@ class Base < AbstractController::Base
"layouts/hello_override.erb" => "With Override <%= yield %>",
"layouts/abstract_controller_tests/layouts/with_string_implied_child.erb" =>
"With Implied <%= yield %>",
"layouts/omg.erb" => "OMGHI2U <%= yield %>",
"layouts/overwrite.erb" => "Overwrite <%= yield %>",
"layouts/with_false_layout.erb" => "False Layout <%= yield %>"
)]
end
......@@ -42,7 +42,7 @@ def overwrite_false
end
def overwrite_string
render :_template => ActionView::Template::Text.new("Hello string!"), :layout => "omg"
render :_template => ActionView::Template::Text.new("Hello string!"), :layout => "overwrite"
end
def overwrite_skip
......@@ -68,7 +68,7 @@ class WithChildOfImplied < WithStringImpliedChild
end
class WithProc < Base
layout proc { |c| "omg" }
layout proc { |c| "overwrite" }
def index
render :_template => ActionView::Template::Text.new("Hello proc!")
......@@ -83,7 +83,7 @@ def index
end
private
def hello
"omg"
"overwrite"
end
end
......@@ -122,7 +122,7 @@ def objekt
end
class WithSymbolAndNoMethod < Base
layout :omg_no_method
layout :no_method
def index
render :_template => ActionView::Template::Text.new("Hello boom!")
......@@ -175,7 +175,7 @@ class TestBase < ActiveSupport::TestCase
test "when layout is overwriten by string in render, render new layout" do
controller = WithString.new
controller.process(:overwrite_string)
assert_equal "OMGHI2U Hello string!", controller.response_body
assert_equal "Overwrite Hello string!", controller.response_body
end
test "when layout is overwriten by false in render, render no layout" do
......@@ -209,13 +209,13 @@ class TestBase < ActiveSupport::TestCase
test "when layout is specified as a proc, call it and use the layout returned" do
controller = WithProc.new
controller.process(:index)
assert_equal "OMGHI2U Hello proc!", controller.response_body
assert_equal "Overwrite Hello proc!", controller.response_body
end
test "when layout is specified as a symbol, call the requested method and use the layout returned" do
controller = WithSymbol.new
controller.process(:index)
assert_equal "OMGHI2U Hello symbol!", controller.response_body
assert_equal "Overwrite Hello symbol!", controller.response_body
end
test "when layout is specified as a symbol and the method returns nil, don't use a layout" do
......@@ -266,7 +266,7 @@ class TestBase < ActiveSupport::TestCase
test "raises an exception when specifying layout true" do
assert_raises ArgumentError do
Object.class_eval do
class ::BadOmgFailLolLayout < AbstractControllerTests::Layouts::Base
class ::BadFailLayout < AbstractControllerTests::Layouts::Base
layout true
end
end
......
......@@ -435,7 +435,7 @@ def filter_two
end
def non_yielding_filter
@filters << "zomg it didn't yield"
@filters << "it didn't yield"
@filter_return_value
end
......@@ -465,14 +465,14 @@ def test_after_filters_are_not_run_if_around_filter_returns_false
controller = NonYieldingAroundFilterController.new
controller.instance_variable_set "@filter_return_value", false
test_process(controller, "index")
assert_equal ["filter_one", "zomg it didn't yield"], controller.assigns['filters']
assert_equal ["filter_one", "it didn't yield"], controller.assigns['filters']
end
def test_after_filters_are_not_run_if_around_filter_does_not_yield
controller = NonYieldingAroundFilterController.new
controller.instance_variable_set "@filter_return_value", true
test_process(controller, "index")
assert_equal ["filter_one", "zomg it didn't yield"], controller.assigns['filters']
assert_equal ["filter_one", "it didn't yield"], controller.assigns['filters']
end
def test_added_filter_to_inheritance_graph
......
......@@ -119,9 +119,9 @@ class BasicController < ::ApplicationController
# Set the view path to an application view structure with layouts
self.view_paths = self.view_paths = [ActionView::FixtureResolver.new(
"render_action_with_application_layout/basic/hello_world.html.erb" => "Hello World!",
"render_action_with_application_layout/basic/hello.html.builder" => "xml.p 'Omg'",
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI",
"layouts/greetings.html.erb" => "Greetings <%= yield %> Bai",
"render_action_with_application_layout/basic/hello.html.builder" => "xml.p 'Hello'",
"layouts/application.html.erb" => "Hi <%= yield %> OK, Bye",
"layouts/greetings.html.erb" => "Greetings <%= yield %> Bye",
"layouts/builder.html.builder" => "xml.html do\n xml << yield\nend"
)]
......@@ -156,14 +156,14 @@ class LayoutTest < Rack::TestCase
test "rendering implicit application.html.erb as layout" do
get "/render_action_with_application_layout/basic/hello_world"
assert_body "OHAI Hello World! KTHXBAI"
assert_body "Hi Hello World! OK, Bye"
assert_status 200
end
test "rendering with layout => true" do
get "/render_action_with_application_layout/basic/hello_world_with_layout"
assert_body "OHAI Hello World! KTHXBAI"
assert_body "Hi Hello World! OK, Bye"
assert_status 200
end
......@@ -184,7 +184,7 @@ class LayoutTest < Rack::TestCase
test "rendering with layout => 'greetings'" do
get "/render_action_with_application_layout/basic/hello_world_with_custom_layout"
assert_body "Greetings Hello World! Bai"
assert_body "Greetings Hello World! Bye"
assert_status 200
end
end
......@@ -194,7 +194,7 @@ class TestLayout < Rack::TestCase
test "builder works with layouts" do
get :with_builder_and_layout
assert_response "<html>\n<p>Omg</p>\n</html>\n"
assert_response "<html>\n<p>Hello</p>\n</html>\n"
end
end
......@@ -204,7 +204,7 @@ module RenderActionWithControllerLayout
class BasicController < ActionController::Base
self.view_paths = self.view_paths = [ActionView::FixtureResolver.new(
"render_action_with_controller_layout/basic/hello_world.html.erb" => "Hello World!",
"layouts/render_action_with_controller_layout/basic.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
"layouts/render_action_with_controller_layout/basic.html.erb" => "With Controller Layout! <%= yield %> Bye"
)]
def hello_world
......@@ -234,14 +234,14 @@ class ControllerLayoutTest < Rack::TestCase
test "render hello_world and implicitly use <controller_path>.html.erb as a layout." do
get "/render_action_with_controller_layout/basic/hello_world"
assert_body "With Controller Layout! Hello World! KTHXBAI"
assert_body "With Controller Layout! Hello World! Bye"
assert_status 200
end
test "rendering with layout => true" do
get "/render_action_with_controller_layout/basic/hello_world_with_layout"
assert_body "With Controller Layout! Hello World! KTHXBAI"
assert_body "With Controller Layout! Hello World! Bye"
assert_status 200
end
......@@ -265,8 +265,8 @@ module RenderActionWithBothLayouts
class BasicController < ActionController::Base
self.view_paths = [ActionView::FixtureResolver.new({
"render_action_with_both_layouts/basic/hello_world.html.erb" => "Hello World!",
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI",
"layouts/render_action_with_both_layouts/basic.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
"layouts/application.html.erb" => "Oh Hi <%= yield %> Bye",
"layouts/render_action_with_both_layouts/basic.html.erb" => "With Controller Layout! <%= yield %> Bye"
})]
def hello_world
......@@ -292,14 +292,14 @@ class ControllerLayoutTest < Rack::TestCase
test "rendering implicitly use <controller_path>.html.erb over application.html.erb as a layout" do
get "/render_action_with_both_layouts/basic/hello_world"
assert_body "With Controller Layout! Hello World! KTHXBAI"
assert_body "With Controller Layout! Hello World! Bye"
assert_status 200
end
test "rendering with layout => true" do
get "/render_action_with_both_layouts/basic/hello_world_with_layout"
assert_body "With Controller Layout! Hello World! KTHXBAI"
assert_body "With Controller Layout! Hello World! Bye"
assert_status 200
end
......
......@@ -3,10 +3,10 @@
module ControllerLayouts
class ImplicitController < ::ApplicationController
self.view_paths = [ActionView::FixtureResolver.new(
"layouts/application.html.erb" => "OMG <%= yield %> KTHXBAI",
"layouts/application.html.erb" => "Main <%= yield %> Layout",
"layouts/override.html.erb" => "Override! <%= yield %>",
"basic.html.erb" => "Hello world!",
"controller_layouts/implicit/layout_false.html.erb" => "hai(layout_false.html.erb)"
"controller_layouts/implicit/layout_false.html.erb" => "hi(layout_false.html.erb)"
)]
def index
......@@ -27,7 +27,7 @@ def builder_override
class ImplicitNameController < ::ApplicationController
self.view_paths = [ActionView::FixtureResolver.new(
"layouts/controller_layouts/implicit_name.html.erb" => "OMGIMPLICIT <%= yield %> KTHXBAI",
"layouts/controller_layouts/implicit_name.html.erb" => "Implicit <%= yield %> Layout",
"basic.html.erb" => "Hello world!"
)]
......@@ -40,14 +40,14 @@ class RenderLayoutTest < Rack::TestCase
test "rendering a normal template, but using the implicit layout" do
get "/controller_layouts/implicit/index"
assert_body "OMG Hello world! KTHXBAI"
assert_body "Main Hello world! Layout"
assert_status 200
end
test "rendering a normal template, but using an implicit NAMED layout" do
get "/controller_layouts/implicit_name/index"
assert_body "OMGIMPLICIT Hello world! KTHXBAI"
assert_body "Implicit Hello world! Layout"
assert_status 200
end
......@@ -63,15 +63,15 @@ class LayoutOptionsTest < Rack::TestCase
test "rendering with :layout => false leaves out the implicit layout" do
get :layout_false
assert_response "hai(layout_false.html.erb)"
assert_response "hi(layout_false.html.erb)"
end
end
class MismatchFormatController < ::ApplicationController
self.view_paths = [ActionView::FixtureResolver.new(
"layouts/application.html.erb" => "<html><%= yield %></html>",
"controller_layouts/mismatch_format/index.js.rjs" => "page[:test].omg",
"controller_layouts/mismatch_format/implicit.rjs" => "page[:test].omg"
"controller_layouts/mismatch_format/index.js.rjs" => "page[:test].ext",
"controller_layouts/mismatch_format/implicit.rjs" => "page[:test].ext"
)]
def explicit
......@@ -84,12 +84,12 @@ class MismatchFormatTest < Rack::TestCase
test "if JS is selected, an HTML template is not also selected" do
get :index, "format" => "js"
assert_response "$(\"test\").omg();"
assert_response "$(\"test\").ext();"
end
test "if JS is implicitly selected, an HTML template is not also selected" do
get :implicit
assert_response "$(\"test\").omg();"
assert_response "$(\"test\").ext();"
end
test "if an HTML template is explicitly provides for a JS template, an error is raised" do
......
......@@ -5,7 +5,7 @@ module RenderPartial
class BasicController < ActionController::Base
self.view_paths = [ActionView::FixtureResolver.new(
"render_partial/basic/_basic.html.erb" => "OMG!",
"render_partial/basic/_basic.html.erb" => "BasicPartial!",
"render_partial/basic/basic.html.erb" => "<%= @test_unchanged = 'goodbye' %><%= render :partial => 'basic' %><%= @test_unchanged %>"
)]
......@@ -20,7 +20,7 @@ class TestPartial < Rack::TestCase
test "rendering a partial in ActionView doesn't pull the ivars again from the controller" do
get :changing
assert_response("goodbyeOMG!goodbye")
assert_response("goodbyeBasicPartial!goodbye")
end
end
......
......@@ -13,7 +13,7 @@ def redirector
end
def data_sender
send_data "cool data", :filename => "omg.txt"
send_data "cool data", :filename => "file.txt"
end
def xfile_sender
......@@ -121,7 +121,7 @@ def test_send_data
wait
assert_equal 3, logs.size
assert_match /Sent data omg\.txt/, logs[1]
assert_match /Sent data file\.txt/, logs[1]
end
def test_send_file
......
......@@ -23,7 +23,7 @@ class MimeTypeTest < ActiveSupport::TestCase
end
# Accept header send with user HTTP_USER_AGENT: Sunrise/0.42j (Windows XP)
test "parse crappy broken acceptlines" do
test "parse broken acceptlines" do
accept = "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/*,,*/*;q=0.5"
expect = [Mime::HTML, Mime::XML, "image/*", Mime::TEXT, Mime::ALL]
assert_equal expect, Mime::Type.parse(accept).collect { |c| c.to_s }
......@@ -31,7 +31,7 @@ class MimeTypeTest < ActiveSupport::TestCase
# Accept header send with user HTTP_USER_AGENT: Mozilla/4.0
# (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1)
test "parse crappy broken acceptlines2" do
test "parse other broken acceptlines" do
accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, , pronto/1.00.00, sslvpn/1.00.00.00, */*"
expect = ['image/gif', 'image/x-xbitmap', 'image/jpeg','image/pjpeg', 'application/x-shockwave-flash', 'application/vnd.ms-excel', 'application/vnd.ms-powerpoint', 'application/msword', 'pronto/1.00.00', 'sslvpn/1.00.00.00', Mime::ALL ]
assert_equal expect, Mime::Type.parse(accept).collect { |c| c.to_s }
......
......@@ -48,7 +48,7 @@ def test_sanitize_script
assert_sanitized "a b c<script language=\"Javascript\">blah blah blah</script>d e f", "a b cd e f"
end
# fucked
# TODO: Clean up
def test_sanitize_js_handlers
raw = %{onthis="do that" <a href="#" onclick="hello" name="foo" onbogus="remove me">hello</a>}
assert_sanitized raw, %{onthis="do that" <a name="foo" href="#">hello</a>}
......@@ -193,7 +193,7 @@ def test_should_not_fall_for_ridiculous_hack
assert_sanitized img_hack, "<img>"
end
# fucked
# TODO: Clean up
def test_should_sanitize_attributes
assert_sanitized %(<SPAN title="'><script>alert()</script>">blah</SPAN>), %(<span title="'&gt;&lt;script&gt;alert()&lt;/script&gt;">blah</span>)
end
......
......@@ -33,7 +33,7 @@ def test_render_file_template
end
def test_render_text_template
@view.render(:text => "OMG")
@view.render(:text => "TEXT")
wait
assert_equal 1, @logger.logged(:info).size
......@@ -41,7 +41,7 @@ def test_render_text_template
end
def test_render_inline_template
@view.render(:inline => "<%= 'OMG' %>")
@view.render(:inline => "<%= 'TEXT' %>")
wait
assert_equal 1, @logger.logged(:info).size
......
......@@ -264,12 +264,12 @@ class HyphenatedCallbacks
define_callbacks :save
attr_reader :stuff
set_callback :save, :before, :omg, :per_key => {:if => :yes}
set_callback :save, :before, :action, :per_key => {:if => :yes}
def yes() true end
def omg
@stuff = "OMG"
def action
@stuff = "ACTION"
end
def save
......@@ -522,7 +522,7 @@ class HyphenatedKeyTest < Test::Unit::TestCase
def test_save
obj = HyphenatedCallbacks.new
obj.save
assert_equal obj.stuff, "OMG"
assert_equal obj.stuff, "ACTION"
end
end
end
class Custom
end
\ No newline at end of file
class OmgOmg
end
\ No newline at end of file
......@@ -59,15 +59,15 @@ def teardown
end
test "resets requires one" do
assert !defined?(OmgOmg)
assert_equal 0, $LOADED_FEATURES.grep(/fixtures\/omgomg/).size
require File.expand_path(File.join(File.dirname(__FILE__), "fixtures", "omgomg"))
assert !defined?(Custom)
assert_equal 0, $LOADED_FEATURES.grep(/fixtures\/custom/).size
require File.expand_path(File.join(File.dirname(__FILE__), "fixtures", "custom"))
end
test "resets requires two" do
assert !defined?(OmgOmg)
assert_equal 0, $LOADED_FEATURES.grep(/fixtures\/omgomg/).size
require File.expand_path(File.join(File.dirname(__FILE__), "fixtures", "omgomg"))
assert !defined?(Custom)
assert_equal 0, $LOADED_FEATURES.grep(/fixtures\/custom/).size
require File.expand_path(File.join(File.dirname(__FILE__), "fixtures", "custom"))
end
end
else
......
......@@ -77,7 +77,7 @@ def test_instrument_returns_block_result
def test_instrument_with_bang_returns_result_even_on_failure
begin
instrument!(:awesome, :payload => "notifications") do
raise "OMG"
raise "FAIL"
end
flunk
rescue
......@@ -126,10 +126,10 @@ def test_nested_events_can_be_instrumented
def test_instrument_does_not_publish_when_exception_is_raised
begin
instrument(:awesome, :payload => "notifications") do
raise "OMG"
raise "FAIL"
end
rescue RuntimeError => e
assert_equal "OMG", e.message
assert_equal "FAIL", e.message
end
drain
......
......@@ -88,7 +88,7 @@ Please note that you need to +git :init+ before you can install a plugin as a su
Or use plain old SVN :
<ruby>
plugin 'wtfsvn', :svn => 'svn://crap.com/wtf/trunk'
plugin 'usingsvn', :svn => 'svn://example.com/usingsvn/trunk'
</ruby>
h4. vendor/lib/file/initializer(filename, data = nil, &block)
......
......@@ -10,7 +10,7 @@ class << self
attr_accessor :foo, :bar
end
initializer :omg do
initializer :start do
@foo ||= 0
@foo += 1
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册