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 tests RenderPartialWithRecordIdentificationController
51 fixtures
:developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
53 def test_rendering_partial_with_has_many_and_belongs_to_association
54 get
:render_with_has_many_and_belongs_to_association
55 assert_template
'projects/_project'
56 assert_equal
assigns(:developer).projects
.map(&:name).join
, @response.body
59 def test_rendering_partial_with_has_many_association
60 get
:render_with_has_many_association
61 assert_template
'replies/_reply'
62 assert_equal
'Birdman is better!', @response.body
65 def test_rendering_partial_with_named_scope
66 get
:render_with_named_scope
67 assert_template
'replies/_reply'
68 assert_equal
'Birdman is better!Nuh uh!', @response.body
71 def test_render_with_record
72 get
:render_with_record
73 assert_template
'developers/_developer'
74 assert_equal
'David', @response.body
77 def test_render_with_record_collection
78 get
:render_with_record_collection
79 assert_template
'developers/_developer'
80 assert_equal
'DavidJamisfixture_3fixture_4fixture_5fixture_6fixture_7fixture_8fixture_9fixture_10Jamis', @response.body
83 def test_render_with_record_collection_and_spacer_template
84 get
:render_with_record_collection_and_spacer_template
85 assert_equal
assigns(:developer).projects
.map(&:name).join('only partial'), @response.body
88 def test_rendering_partial_with_has_one_association
89 mascot
= Company
.find(1).mascot
90 get
:render_with_has_one_association
91 assert_template
'mascots/_mascot'
92 assert_equal mascot
.name
, @response.body
96 class RenderPartialWithRecordIdentificationController
< ActionController
::Base
97 def render_with_has_many_and_belongs_to_association
98 @developer = Developer
.find(1)
99 render
:partial => @developer.projects
102 def render_with_has_many_association
103 @topic = Topic
.find(1)
104 render
:partial => @topic.replies
107 def render_with_has_many_through_association
108 @developer = Developer
.find(:first)
109 render
:partial => @developer.topics
112 def render_with_belongs_to_association
113 @reply = Reply
.find(1)
114 render
:partial => @reply.topic
117 def render_with_record
118 @developer = Developer
.find(:first)
119 render
:partial => @developer
122 def render_with_record_collection
123 @developers = Developer
.find(:all)
124 render
:partial => @developers
128 class Game
< Struct
.new(:name, :id)
135 class NestedController
< ActionController
::Base
136 def render_with_record_in_nested_controller
137 render
:partial => Game
.new("Pong")
140 def render_with_record_collection_in_nested_controller
141 render
:partial => [ Game
.new("Pong"), Game
.new("Tank") ]
146 class NestedDeeperController
< ActionController
::Base
147 def render_with_record_in_deeper_nested_controller
148 render
:partial => Game
.new("Chess")
151 def render_with_record_collection_in_deeper_nested_controller
152 render
:partial => [ Game
.new("Chess"), Game
.new("Sudoku"), Game
.new("Solitaire") ]
158 class RenderPartialWithRecordIdentificationAndNestedControllersTest
< ActiveRecordTestCase
159 tests Fun
::NestedController
161 def test_render_with_record_in_nested_controller
162 get
:render_with_record_in_nested_controller
163 assert_template
'fun/games/_game'
164 assert_equal
'Pong', @response.body
167 def test_render_with_record_collection_in_nested_controller
168 get
:render_with_record_collection_in_nested_controller
169 assert_template
'fun/games/_game'
170 assert_equal
'PongTank', @response.body
174 class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest
< ActiveRecordTestCase
175 tests Fun
::Serious::NestedDeeperController
177 def test_render_with_record_in_deeper_nested_controller
178 get
:render_with_record_in_deeper_nested_controller
179 assert_template
'fun/serious/games/_game'
180 assert_equal
'Chess', @response.body
183 def test_render_with_record_collection_in_deeper_nested_controller
184 get
:render_with_record_collection_in_deeper_nested_controller
185 assert_template
'fun/serious/games/_game'
186 assert_equal
'ChessSudokuSolitaire', @response.body