1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Modified the action layout tests to use the new FixtureTemplate class

This commit is contained in:
Carl Lerche 2009-03-20 14:43:19 -07:00 committed by Yehuda Katz
parent dc96ba8043
commit 90c079a781
10 changed files with 89 additions and 26 deletions

View file

@ -18,30 +18,28 @@ module ActionView #:nodoc:
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 @@ module HappyPath
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 @@ module HappyPath
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

View file

@ -77,7 +77,10 @@ module HappyPath
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 @@ module HappyPath
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 @@ module HappyPath
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 @@ module HappyPath
assert_status 200
end
# TODO: Implement a FixtureViewPath
end

View file

@ -50,6 +50,42 @@ module ActionController
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

View file

@ -1 +0,0 @@
OHAI <%= yield %> KTHXBAI