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
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(body, template_path, load_paths = [])
|
def initialize(body, *args)
|
||||||
@body = body
|
@body = body
|
||||||
end
|
super(*args)
|
||||||
|
|
||||||
def relative_path
|
|
||||||
"fail"
|
|
||||||
end
|
|
||||||
|
|
||||||
def filename
|
|
||||||
"fail"
|
|
||||||
end
|
|
||||||
|
|
||||||
def method_name_without_locals
|
|
||||||
"abc"
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def source
|
def source
|
||||||
@body
|
@body
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def find_full_path(path, load_paths)
|
||||||
|
return '/', path
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
OMG = {
|
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
|
module HappyPath
|
||||||
|
@ -55,9 +53,21 @@ module HappyPath
|
||||||
render :action => "hello_world"
|
render :action => "hello_world"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def render_action_goodbye_world
|
||||||
|
render :action => "goodbye_world"
|
||||||
end
|
end
|
||||||
|
|
||||||
class TestRenderAction < SimpleRouteCase
|
end
|
||||||
|
|
||||||
|
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>"
|
describe "Rendering an action using :action => <String>"
|
||||||
|
|
||||||
|
@ -66,4 +76,19 @@ module HappyPath
|
||||||
assert_status 200
|
assert_status 200
|
||||||
|
|
||||||
end
|
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
|
end
|
|
@ -77,7 +77,10 @@ module HappyPath
|
||||||
|
|
||||||
class RenderActionWithLayoutController < ActionController::Base2
|
class RenderActionWithLayoutController < ActionController::Base2
|
||||||
# Set the view path to an application view structure with layouts
|
# 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
|
def hello_world
|
||||||
render :action => "hello_world"
|
render :action => "hello_world"
|
||||||
|
@ -85,7 +88,10 @@ module HappyPath
|
||||||
end
|
end
|
||||||
|
|
||||||
class RenderActionWithControllerLayoutController < ActionController::Base2
|
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
|
def hello_world
|
||||||
render :action => "hello_world"
|
render :action => "hello_world"
|
||||||
|
@ -93,7 +99,11 @@ module HappyPath
|
||||||
end
|
end
|
||||||
|
|
||||||
class RenderActionWithControllerLayoutFirstController < ActionController::Base2
|
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
|
def hello_world
|
||||||
render :action => "hello_world"
|
render :action => "hello_world"
|
||||||
|
@ -127,5 +137,4 @@ module HappyPath
|
||||||
assert_status 200
|
assert_status 200
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Implement a FixtureViewPath
|
|
||||||
end
|
end
|
|
@ -50,6 +50,42 @@ module ActionController
|
||||||
end
|
end
|
||||||
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
|
# Temporary base class
|
||||||
class Rack::TestCase < ActiveSupport::TestCase
|
class Rack::TestCase < ActiveSupport::TestCase
|
||||||
include Rack::Test::Methods
|
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