Browse files

Modified the action layout tests to use the new FixtureTemplate class

  • Loading branch information...
1 parent dc96ba8 commit 90c079a7814a9a996c8cbe353015c080fafce2bc Carl Lerche committed with wycats Mar 20, 2009
View
55 actionpack/test/new_base/fixture_view_path_test.rb
@@ -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
View
17 actionpack/test/new_base/render_action_test.rb
@@ -77,23 +77,33 @@ 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"
end
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"
end
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
View
36 actionpack/test/new_base/test_helper.rb
@@ -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
View
1 ...e/views/with_application_layout/happy_path/render_action_with_layout/hello_world.html.erb
@@ -1 +0,0 @@
-Hello World!
View
1 actionpack/test/new_base/views/with_application_layout/layouts/application.html.erb
@@ -1 +0,0 @@
-OHAI <%= yield %> KTHXBAI
View
1 ...h_both_layouts/happy_path/render_action_with_controller_layout_first/hello_world.html.erb
@@ -1 +0,0 @@
-Hello World!
View
1 actionpack/test/new_base/views/with_both_layouts/layouts/application.html.erb
@@ -1 +0,0 @@
-OHAI <%= yield %> KTHXBAI
View
1 .../with_both_layouts/layouts/happy_path/render_action_with_controller_layout_first.html.erb
@@ -1 +0,0 @@
-With Controller Layout! <%= yield %> KTHXBAI
View
1 ...th_controller_layout/happy_path/render_action_with_controller_layout/hello_world.html.erb
@@ -1 +0,0 @@
-Hello World!
View
1 ...s/with_controller_layout/layouts/happy_path/render_action_with_controller_layout.html.erb
@@ -1 +0,0 @@
-With Controller Layout! <%= yield %> KTHXBAI

0 comments on commit 90c079a

Please sign in to comment.