Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

root/trunk/actionpack/test/controller/content_type_test.rb

Revision 8564, 4.0 kB (checked in by bitsweat, 1 year ago)

require abstract_unit directly since test is in load path

Line 
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     # enable a logger so that (e.g.) the benchmarking stuff runs, so we can get
55     # a more accurate simulation of what happens in "real life".
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
Note: See TracBrowser for help on using the browser.