Froze rails gems
[depot.git] / vendor / rails / actionpack / test / activerecord / render_partial_with_record_identification_test.rb
1 require 'active_record_unit'
2
3 class RenderPartialWithRecordIdentificationController < ActionController::Base
4 def render_with_has_many_and_belongs_to_association
5 @developer = Developer.find(1)
6 render :partial => @developer.projects
7 end
8
9 def render_with_has_many_association
10 @topic = Topic.find(1)
11 render :partial => @topic.replies
12 end
13
14 def render_with_named_scope
15 render :partial => Reply.base
16 end
17
18 def render_with_has_many_through_association
19 @developer = Developer.find(:first)
20 render :partial => @developer.topics
21 end
22
23 def render_with_has_one_association
24 @company = Company.find(1)
25 render :partial => @company.mascot
26 end
27
28 def render_with_belongs_to_association
29 @reply = Reply.find(1)
30 render :partial => @reply.topic
31 end
32
33 def render_with_record
34 @developer = Developer.find(:first)
35 render :partial => @developer
36 end
37
38 def render_with_record_collection
39 @developers = Developer.find(:all)
40 render :partial => @developers
41 end
42
43 def render_with_record_collection_and_spacer_template
44 @developer = Developer.find(1)
45 render :partial => @developer.projects, :spacer_template => 'test/partial_only'
46 end
47 end
48
49 class RenderPartialWithRecordIdentificationTest < ActiveRecordTestCase
50 fixtures :developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
51
52 def setup
53 @controller = RenderPartialWithRecordIdentificationController.new
54 @request = ActionController::TestRequest.new
55 @response = ActionController::TestResponse.new
56 super
57 end
58
59 def test_rendering_partial_with_has_many_and_belongs_to_association
60 get :render_with_has_many_and_belongs_to_association
61 assert_template 'projects/_project'
62 assert_equal 'Active RecordActive Controller', @response.body
63 end
64
65 def test_rendering_partial_with_has_many_association
66 get :render_with_has_many_association
67 assert_template 'replies/_reply'
68 assert_equal 'Birdman is better!', @response.body
69 end
70
71 def test_rendering_partial_with_named_scope
72 get :render_with_named_scope
73 assert_template 'replies/_reply'
74 assert_equal 'Birdman is better!Nuh uh!', @response.body
75 end
76
77 def test_render_with_record
78 get :render_with_record
79 assert_template 'developers/_developer'
80 assert_equal 'David', @response.body
81 end
82
83 def test_render_with_record_collection
84 get :render_with_record_collection
85 assert_template 'developers/_developer'
86 assert_equal 'DavidJamisfixture_3fixture_4fixture_5fixture_6fixture_7fixture_8fixture_9fixture_10Jamis', @response.body
87 end
88
89 def test_render_with_record_collection_and_spacer_template
90 get :render_with_record_collection_and_spacer_template
91 assert_equal 'Active Recordonly partialActive Controller', @response.body
92 end
93
94 def test_rendering_partial_with_has_one_association
95 mascot = Company.find(1).mascot
96 get :render_with_has_one_association
97 assert_template 'mascots/_mascot'
98 assert_equal mascot.name, @response.body
99 end
100 end
101
102 class RenderPartialWithRecordIdentificationController < ActionController::Base
103 def render_with_has_many_and_belongs_to_association
104 @developer = Developer.find(1)
105 render :partial => @developer.projects
106 end
107
108 def render_with_has_many_association
109 @topic = Topic.find(1)
110 render :partial => @topic.replies
111 end
112
113 def render_with_has_many_through_association
114 @developer = Developer.find(:first)
115 render :partial => @developer.topics
116 end
117
118 def render_with_belongs_to_association
119 @reply = Reply.find(1)
120 render :partial => @reply.topic
121 end
122
123 def render_with_record
124 @developer = Developer.find(:first)
125 render :partial => @developer
126 end
127
128 def render_with_record_collection
129 @developers = Developer.find(:all)
130 render :partial => @developers
131 end
132 end
133
134 class Game < Struct.new(:name, :id)
135 def to_param
136 id.to_s
137 end
138 end
139
140 module Fun
141 class NestedController < ActionController::Base
142 def render_with_record_in_nested_controller
143 render :partial => Game.new("Pong")
144 end
145
146 def render_with_record_collection_in_nested_controller
147 render :partial => [ Game.new("Pong"), Game.new("Tank") ]
148 end
149 end
150
151 module Serious
152 class NestedDeeperController < ActionController::Base
153 def render_with_record_in_deeper_nested_controller
154 render :partial => Game.new("Chess")
155 end
156
157 def render_with_record_collection_in_deeper_nested_controller
158 render :partial => [ Game.new("Chess"), Game.new("Sudoku"), Game.new("Solitaire") ]
159 end
160 end
161 end
162 end
163
164 class RenderPartialWithRecordIdentificationAndNestedControllersTest < ActiveRecordTestCase
165 def setup
166 @controller = Fun::NestedController.new
167 @request = ActionController::TestRequest.new
168 @response = ActionController::TestResponse.new
169 super
170 end
171
172 def test_render_with_record_in_nested_controller
173 get :render_with_record_in_nested_controller
174 assert_template 'fun/games/_game'
175 assert_equal 'Pong', @response.body
176 end
177
178 def test_render_with_record_collection_in_nested_controller
179 get :render_with_record_collection_in_nested_controller
180 assert_template 'fun/games/_game'
181 assert_equal 'PongTank', @response.body
182 end
183 end
184
185 class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest < ActiveRecordTestCase
186 def setup
187 @controller = Fun::Serious::NestedDeeperController.new
188 @request = ActionController::TestRequest.new
189 @response = ActionController::TestResponse.new
190 super
191 end
192
193 def test_render_with_record_in_deeper_nested_controller
194 get :render_with_record_in_deeper_nested_controller
195 assert_template 'fun/serious/games/_game'
196 assert_equal 'Chess', @response.body
197 end
198
199 def test_render_with_record_collection_in_deeper_nested_controller
200 get :render_with_record_collection_in_deeper_nested_controller
201 assert_template 'fun/serious/games/_game'
202 assert_equal 'ChessSudokuSolitaire', @response.body
203 end
204 end