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