diff options
author | Yehuda Katz <wycats@gmail.com> | 2009-03-18 15:58:47 -0700 |
---|---|---|
committer | Yehuda Katz <wycats@gmail.com> | 2009-03-18 15:58:47 -0700 |
commit | e0447023db7152d3ecdf693bd9aa36c7daa02653 (patch) | |
tree | 6819a42c250674f0d5f48849c1c597a9b54db5f3 /actionpack/test/new_base/render_test.rb | |
parent | fb626ee39065512928c90c396db8b5476c5a7aeb (diff) | |
download | rails-e0447023db7152d3ecdf693bd9aa36c7daa02653.tar.gz rails-e0447023db7152d3ecdf693bd9aa36c7daa02653.tar.bz2 rails-e0447023db7152d3ecdf693bd9aa36c7daa02653.zip |
Implemented basic template rendering in AC::Base2:
* Created several macros for writing simpler specs
* Finished making Rack::Test work right
* Implemented render_to_string
* Status Codes
* render :text => nil
Diffstat (limited to 'actionpack/test/new_base/render_test.rb')
-rw-r--r-- | actionpack/test/new_base/render_test.rb | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/actionpack/test/new_base/render_test.rb b/actionpack/test/new_base/render_test.rb new file mode 100644 index 0000000000..2f43bc1fc6 --- /dev/null +++ b/actionpack/test/new_base/render_test.rb @@ -0,0 +1,124 @@ +require File.join(File.expand_path(File.dirname(__FILE__)), "test_helper") + +module HappyPath + + class RenderTextController < ActionController::Base2 + def render_hello_world_from_variable + @person = "david" + render :text => "hello #{@person}" + end + + def render_custom_code + render :text => "hello world", :status => 404 + end + + def render_with_custom_code_as_string + render :text => "hello world", :status => "404 Not Found" + end + + def render_text_with_nil + render :text => nil + end + + def render_text_with_nil_and_status + render :text => nil, :status => 403 + end + + def render_text_with_false + render :text => false + end + end + + class TestSimpleTextRender < SimpleRouteCase + describe "Rendering text from a action with default options" + + get "/happy_path/render_text/render_hello_world_from_variable" + assert_body "hello david" + assert_status 200 + end + + class TestTextRenderWithStatus < SimpleRouteCase + describe "Rendering text, while also providing a custom status code" + + get "/happy_path/render_text/render_custom_code" + assert_body "hello world" + assert_status 404 + end + + class TestTextRenderWithNil < SimpleRouteCase + describe "Rendering text with nil returns a single space character" + + get "/happy_path/render_text/render_text_with_nil" + assert_body " " + assert_status 200 + end + + class TestTextRenderWithNilAndStatus < SimpleRouteCase + describe "Rendering text with nil and custom status code returns a single space character with the status" + + get "/happy_path/render_text/render_text_with_nil_and_status" + assert_body " " + assert_status 403 + end + + class TestTextRenderWithFalse < SimpleRouteCase + describe "Rendering text with false returns the string 'false'" + + get "/happy_path/render_text/render_text_with_false" + assert_body "false" + assert_status 200 + end + + class RenderTemplateController < ActionController::Base2 + + def render_hello_world + render :template => "test/basic" + end + + def render_hello_world_with_forward_slash + render :template => "/test/basic" + end + + def render_template_in_top_directory + render :template => 'shared' + end + + def render_template_in_top_directory_with_slash + render :template => '/shared' + end + end + + class TestTemplateRender < SimpleRouteCase + describe "rendering a normal template with full path" + + get "/happy_path/render_template/render_hello_world" + assert_body "Hello from basic.html.erb" + assert_status 200 + end + + class TestTemplateRenderWithForwardSlash < SimpleRouteCase + describe "rendering a normal template with full path starting with a leading slash" + + get "/happy_path/render_template/render_hello_world_with_forward_slash" + assert_body "Hello from basic.html.erb" + assert_status 200 + end + + class TestTemplateRenderInTopDirectory < SimpleRouteCase + describe "rendering a template not in a subdirectory" + + get "/happy_path/render_template/render_template_in_top_directory" + assert_body "Elastica" + assert_status 200 + end + + class TestTemplateRenderInTopDirectoryWithSlash < SimpleRouteCase + describe "rendering a template not in a subdirectory with a leading slash" + + get "/happy_path/render_template/render_template_in_top_directory_with_slash" + assert_body "Elastica" + assert_status 200 + end + + # TODO: Other language craziness +end
\ No newline at end of file |