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:
parent
dc96ba8043
commit
90c079a781
10 changed files with 89 additions and 26 deletions
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Hello World!
|
|
@ -1 +0,0 @@
|
|||
OHAI <%= yield %> KTHXBAI
|
|
@ -1 +0,0 @@
|
|||
Hello World!
|
|
@ -1 +0,0 @@
|
|||
OHAI <%= yield %> KTHXBAI
|
|
@ -1 +0,0 @@
|
|||
With Controller Layout! <%= yield %> KTHXBAI
|
|
@ -1 +0,0 @@
|
|||
Hello World!
|
|
@ -1 +0,0 @@
|
|||
With Controller Layout! <%= yield %> KTHXBAI
|
Loading…
Reference in a new issue