| 1 |
require 'abstract_unit' |
|---|
| 2 |
|
|---|
| 3 |
class ContentTypeController < ActionController::Base |
|---|
| 4 |
def render_content_type_from_body |
|---|
| 5 |
response.content_type = Mime::RSS |
|---|
| 6 |
render :text => "hello world!" |
|---|
| 7 |
end |
|---|
| 8 |
|
|---|
| 9 |
def render_defaults |
|---|
| 10 |
render :text => "hello world!" |
|---|
| 11 |
end |
|---|
| 12 |
|
|---|
| 13 |
def render_content_type_from_render |
|---|
| 14 |
render :text => "hello world!", :content_type => Mime::RSS |
|---|
| 15 |
end |
|---|
| 16 |
|
|---|
| 17 |
def render_charset_from_body |
|---|
| 18 |
response.charset = "utf-16" |
|---|
| 19 |
render :text => "hello world!" |
|---|
| 20 |
end |
|---|
| 21 |
|
|---|
| 22 |
def render_default_for_rhtml |
|---|
| 23 |
end |
|---|
| 24 |
|
|---|
| 25 |
def render_default_for_rxml |
|---|
| 26 |
end |
|---|
| 27 |
|
|---|
| 28 |
def render_default_for_rjs |
|---|
| 29 |
end |
|---|
| 30 |
|
|---|
| 31 |
def render_change_for_rxml |
|---|
| 32 |
response.content_type = Mime::HTML |
|---|
| 33 |
render :action => "render_default_for_rxml" |
|---|
| 34 |
end |
|---|
| 35 |
|
|---|
| 36 |
def render_default_content_types_for_respond_to |
|---|
| 37 |
respond_to do |format| |
|---|
| 38 |
format.html { render :text => "hello world!" } |
|---|
| 39 |
format.xml { render :action => "render_default_content_types_for_respond_to.rhtml" } |
|---|
| 40 |
format.js { render :text => "hello world!" } |
|---|
| 41 |
format.rss { render :text => "hello world!", :content_type => Mime::XML } |
|---|
| 42 |
end |
|---|
| 43 |
end |
|---|
| 44 |
|
|---|
| 45 |
def rescue_action(e) raise end |
|---|
| 46 |
end |
|---|
| 47 |
|
|---|
| 48 |
ContentTypeController.view_paths = [ File.dirname(__FILE__) + "/../fixtures/" ] |
|---|
| 49 |
|
|---|
| 50 |
class ContentTypeTest < Test::Unit::TestCase |
|---|
| 51 |
def setup |
|---|
| 52 |
@controller = ContentTypeController.new |
|---|
| 53 |
|
|---|
| 54 |
|
|---|
| 55 |
|
|---|
| 56 |
@controller.logger = Logger.new(nil) |
|---|
| 57 |
|
|---|
| 58 |
@request = ActionController::TestRequest.new |
|---|
| 59 |
@response = ActionController::TestResponse.new |
|---|
| 60 |
end |
|---|
| 61 |
|
|---|
| 62 |
def test_render_defaults |
|---|
| 63 |
get :render_defaults |
|---|
| 64 |
assert_equal "utf-8", @response.charset |
|---|
| 65 |
assert_equal Mime::HTML, @response.content_type |
|---|
| 66 |
end |
|---|
| 67 |
|
|---|
| 68 |
def test_render_changed_charset_default |
|---|
| 69 |
ContentTypeController.default_charset = "utf-16" |
|---|
| 70 |
get :render_defaults |
|---|
| 71 |
assert_equal "utf-16", @response.charset |
|---|
| 72 |
assert_equal Mime::HTML, @response.content_type |
|---|
| 73 |
ContentTypeController.default_charset = "utf-8" |
|---|
| 74 |
end |
|---|
| 75 |
|
|---|
| 76 |
def test_content_type_from_body |
|---|
| 77 |
get :render_content_type_from_body |
|---|
| 78 |
assert_equal "application/rss+xml", @response.content_type |
|---|
| 79 |
assert_equal "utf-8", @response.charset |
|---|
| 80 |
end |
|---|
| 81 |
|
|---|
| 82 |
def test_content_type_from_render |
|---|
| 83 |
get :render_content_type_from_render |
|---|
| 84 |
assert_equal "application/rss+xml", @response.content_type |
|---|
| 85 |
assert_equal "utf-8", @response.charset |
|---|
| 86 |
end |
|---|
| 87 |
|
|---|
| 88 |
def test_charset_from_body |
|---|
| 89 |
get :render_charset_from_body |
|---|
| 90 |
assert_equal "utf-16", @response.charset |
|---|
| 91 |
assert_equal Mime::HTML, @response.content_type |
|---|
| 92 |
end |
|---|
| 93 |
|
|---|
| 94 |
def test_default_for_rhtml |
|---|
| 95 |
get :render_default_for_rhtml |
|---|
| 96 |
assert_equal Mime::HTML, @response.content_type |
|---|
| 97 |
assert_equal "utf-8", @response.charset |
|---|
| 98 |
end |
|---|
| 99 |
|
|---|
| 100 |
def test_default_for_rxml |
|---|
| 101 |
get :render_default_for_rxml |
|---|
| 102 |
assert_equal Mime::XML, @response.content_type |
|---|
| 103 |
assert_equal "utf-8", @response.charset |
|---|
| 104 |
end |
|---|
| 105 |
|
|---|
| 106 |
def test_default_for_rjs |
|---|
| 107 |
xhr :post, :render_default_for_rjs |
|---|
| 108 |
assert_equal Mime::JS, @response.content_type |
|---|
| 109 |
assert_equal "utf-8", @response.charset |
|---|
| 110 |
end |
|---|
| 111 |
|
|---|
| 112 |
def test_change_for_rxml |
|---|
| 113 |
get :render_change_for_rxml |
|---|
| 114 |
assert_equal Mime::HTML, @response.content_type |
|---|
| 115 |
assert_equal "utf-8", @response.charset |
|---|
| 116 |
end |
|---|
| 117 |
|
|---|
| 118 |
def test_render_default_content_types_for_respond_to |
|---|
| 119 |
@request.env["HTTP_ACCEPT"] = Mime::HTML.to_s |
|---|
| 120 |
get :render_default_content_types_for_respond_to |
|---|
| 121 |
assert_equal Mime::HTML, @response.content_type |
|---|
| 122 |
|
|---|
| 123 |
@request.env["HTTP_ACCEPT"] = Mime::JS.to_s |
|---|
| 124 |
get :render_default_content_types_for_respond_to |
|---|
| 125 |
assert_equal Mime::JS, @response.content_type |
|---|
| 126 |
end |
|---|
| 127 |
|
|---|
| 128 |
def test_render_default_content_types_for_respond_to_with_template |
|---|
| 129 |
@request.env["HTTP_ACCEPT"] = Mime::XML.to_s |
|---|
| 130 |
get :render_default_content_types_for_respond_to |
|---|
| 131 |
assert_equal Mime::XML, @response.content_type |
|---|
| 132 |
end |
|---|
| 133 |
|
|---|
| 134 |
def test_render_default_content_types_for_respond_to_with_overwrite |
|---|
| 135 |
@request.env["HTTP_ACCEPT"] = Mime::RSS.to_s |
|---|
| 136 |
get :render_default_content_types_for_respond_to |
|---|
| 137 |
assert_equal Mime::XML, @response.content_type |
|---|
| 138 |
end |
|---|
| 139 |
end |
|---|