提交 90c079a7 编写于 作者: C Carl Lerche 提交者: Yehuda Katz

Modified the action layout tests to use the new FixtureTemplate class

上级 dc96ba80
......@@ -18,30 +18,28 @@ def find_template(path)
end
end
def initialize(body, template_path, load_paths = [])
def initialize(body, *args)
@body = body
end
def relative_path
"fail"
end
def filename
"fail"
end
def method_name_without_locals
"abc"
super(*args)
end
def source
@body
end
private
def find_full_path(path, load_paths)
return '/', path
end
end
end
OMG = {
"happy_path/render_action/hello_world.html.erb" => "Hello world!"
"happy_path/render_action/hello_world.html.erb" => "Hello world!",
"happy_path/render_action/goodbye_world.html.erb" => "Goodbye world!",
"happy_path/sexy_time/borat.html.erb" => "I LIKE!!!"
}
module HappyPath
......@@ -55,9 +53,21 @@ def render_action_hello_world
render :action => "hello_world"
end
def render_action_goodbye_world
render :action => "goodbye_world"
end
end
class TestRenderAction < SimpleRouteCase
class SexyTimeController < ActionController::Base2
self.view_paths = [ActionView::FixtureTemplate::FixturePath.new(OMG)]
def borat
render "borat"
end
end
class TestRenderHelloAction < SimpleRouteCase
describe "Rendering an action using :action => <String>"
......@@ -66,4 +76,19 @@ class TestRenderAction < SimpleRouteCase
assert_status 200
end
class TestRenderGoodbyeAction < SimpleRouteCase
describe "Goodbye"
get "/happy_path/render_action/render_action_goodbye_world"
assert_body "Goodbye world!"
assert_status 200
end
class TestRenderBorat < SimpleRouteCase
describe "Borat yo"
get "/happy_path/sexy_time/borat"
assert_body "I LIKE!!!"
assert_status 200
end
end
\ No newline at end of file
......@@ -77,7 +77,10 @@ class TestRenderActionWithSymbol < SimpleRouteCase
class RenderActionWithLayoutController < ActionController::Base2
# Set the view path to an application view structure with layouts
self.view_paths = [File.join(File.dirname(__FILE__), 'views', 'with_application_layout')]
self.view_paths = self.view_paths = [ActionView::FixtureTemplate::FixturePath.new({
"happy_path/render_action_with_layout/hello_world.html.erb" => "Hello World!",
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI"
})]
def hello_world
render :action => "hello_world"
......@@ -85,7 +88,10 @@ def hello_world
end
class RenderActionWithControllerLayoutController < ActionController::Base2
self.view_paths = [File.join(File.dirname(__FILE__), 'views', 'with_controller_layout')]
self.view_paths = self.view_paths = [ActionView::FixtureTemplate::FixturePath.new({
"happy_path/render_action_with_controller_layout/hello_world.html.erb" => "Hello World!",
"layouts/happy_path/render_action_with_controller_layout.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
})]
def hello_world
render :action => "hello_world"
......@@ -93,7 +99,11 @@ def hello_world
end
class RenderActionWithControllerLayoutFirstController < ActionController::Base2
self.view_paths = [File.join(File.dirname(__FILE__), 'views', 'with_both_layouts')]
self.view_paths = self.view_paths = [ActionView::FixtureTemplate::FixturePath.new({
"happy_path/render_action_with_controller_layout_first/hello_world.html.erb" => "Hello World!",
"layouts/application.html.erb" => "OHAI <%= yield %> KTHXBAI",
"layouts/happy_path/render_action_with_controller_layout_first.html.erb" => "With Controller Layout! <%= yield %> KTHXBAI"
})]
def hello_world
render :action => "hello_world"
......@@ -127,5 +137,4 @@ class TestRenderActionWithControllerLayoutFirst < SimpleRouteCase
assert_status 200
end
# TODO: Implement a FixtureViewPath
end
\ No newline at end of file
......@@ -50,6 +50,42 @@ def self.subclasses
end
end
module ActionView #:nodoc:
class FixtureTemplate < Template
class FixturePath < Template::Path
def initialize(hash)
@hash = {}
hash.each do |k, v|
@hash[k.sub(/\.\w+$/, '')] = FixtureTemplate.new(v, k.split("/").last, self)
end
super("")
end
def find_template(path)
@hash[path]
end
end
def initialize(body, *args)
@body = body
super(*args)
end
def source
@body
end
private
def find_full_path(path, load_paths)
return '/', path
end
end
end
# Temporary base class
class Rack::TestCase < ActiveSupport::TestCase
include Rack::Test::Methods
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册