aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--actionpack/test/new_base/fixture_view_path_test.rb69
1 files changed, 69 insertions, 0 deletions
diff --git a/actionpack/test/new_base/fixture_view_path_test.rb b/actionpack/test/new_base/fixture_view_path_test.rb
new file mode 100644
index 0000000000..482607474f
--- /dev/null
+++ b/actionpack/test/new_base/fixture_view_path_test.rb
@@ -0,0 +1,69 @@
+require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper")
+
+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, template_path, load_paths = [])
+ @body = body
+ end
+
+ def relative_path
+ "fail"
+ end
+
+ def filename
+ "fail"
+ end
+
+ def method_name_without_locals
+ "abc"
+ end
+
+ def source
+ @body
+ end
+ end
+end
+
+OMG = {
+ "happy_path/render_action/hello_world.html.erb" => "Hello world!"
+}
+
+module HappyPath
+
+ # This has no layout and it works
+ class RenderActionController < ActionController::Base2
+
+ self.view_paths = [ActionView::FixtureTemplate::FixturePath.new(OMG)]
+
+ def render_action_hello_world
+ render :action => "hello_world"
+ end
+
+ end
+
+ class TestRenderAction < SimpleRouteCase
+
+ describe "Rendering an action using :action => <String>"
+
+ get "/happy_path/render_action/render_action_hello_world"
+ assert_body "Hello world!"
+ assert_status 200
+
+ end
+end \ No newline at end of file