1 require 'active_record_unit'
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
9 def render_with_has_many_association
10 @topic = Topic
.find(1)
11 render
:partial => @topic.replies
14 def render_with_named_scope
15 render
:partial => Reply
.base
18 def render_with_has_many_through_association
19 @developer = Developer
.find(:first)
20 render
:partial => @developer.topics
23 def render_with_has_one_association
24 @company = Company
.find(1)
25 render
:partial => @company.mascot
28 def render_with_belongs_to_association
29 @reply = Reply
.find(1)
30 render
:partial => @reply.topic
33 def render_with_record
34 @developer = Developer
.find(:first)
35 render
:partial => @developer
38 def render_with_record_collection
39 @developers = Developer
.find(:all)
40 render
:partial => @developers
43 def render_with_record_collection_and_spacer_template
44 @developer = Developer
.find(1)
45 render
:partial => @developer.projects
, :spacer_template => 'test/partial_only'
49 class RenderPartialWithRecordIdentificationTest
< ActiveRecordTestCase
50 fixtures
:developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
53 @controller = RenderPartialWithRecordIdentificationController
.new
54 @request = ActionController
::TestRequest.new
55 @response = ActionController
::TestResponse.new
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
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
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
77 def test_render_with_record
78 get
:render_with_record
79 assert_template
'developers/_developer'
80 assert_equal
'David', @response.body
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
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
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
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
108 def render_with_has_many_association
109 @topic = Topic
.find(1)
110 render
:partial => @topic.replies
113 def render_with_has_many_through_association
114 @developer = Developer
.find(:first)
115 render
:partial => @developer.topics
118 def render_with_belongs_to_association
119 @reply = Reply
.find(1)
120 render
:partial => @reply.topic
123 def render_with_record
124 @developer = Developer
.find(:first)
125 render
:partial => @developer
128 def render_with_record_collection
129 @developers = Developer
.find(:all)
130 render
:partial => @developers
134 class Game
< Struct
.new(:name, :id)
141 class NestedController
< ActionController
::Base
142 def render_with_record_in_nested_controller
143 render
:partial => Game
.new("Pong")
146 def render_with_record_collection_in_nested_controller
147 render
:partial => [ Game
.new("Pong"), Game
.new("Tank") ]
152 class NestedDeeperController
< ActionController
::Base
153 def render_with_record_in_deeper_nested_controller
154 render
:partial => Game
.new("Chess")
157 def render_with_record_collection_in_deeper_nested_controller
158 render
:partial => [ Game
.new("Chess"), Game
.new("Sudoku"), Game
.new("Solitaire") ]
164 class RenderPartialWithRecordIdentificationAndNestedControllersTest
< ActiveRecordTestCase
166 @controller = Fun
::NestedController.new
167 @request = ActionController
::TestRequest.new
168 @response = ActionController
::TestResponse.new
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
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
185 class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest
< ActiveRecordTestCase
187 @controller = Fun
::Serious::NestedDeeperController.new
188 @request = ActionController
::TestRequest.new
189 @response = ActionController
::TestResponse.new
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
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