2008-05-18 06:22:34 +02:00
|
|
|
require 'active_record_unit'
|
2007-12-21 08:48:59 +01:00
|
|
|
|
2008-05-18 06:22:34 +02:00
|
|
|
class RenderPartialWithRecordIdentificationController < ActionController::Base
|
|
|
|
def render_with_has_many_and_belongs_to_association
|
|
|
|
@developer = Developer.find(1)
|
|
|
|
render :partial => @developer.projects
|
|
|
|
end
|
2007-12-21 08:48:59 +01:00
|
|
|
|
2008-05-18 06:22:34 +02:00
|
|
|
def render_with_has_many_association
|
|
|
|
@topic = Topic.find(1)
|
|
|
|
render :partial => @topic.replies
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_named_scope
|
|
|
|
render :partial => Reply.base
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_has_many_through_association
|
|
|
|
@developer = Developer.find(:first)
|
|
|
|
render :partial => @developer.topics
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_has_one_association
|
|
|
|
@company = Company.find(1)
|
|
|
|
render :partial => @company.mascot
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_belongs_to_association
|
|
|
|
@reply = Reply.find(1)
|
|
|
|
render :partial => @reply.topic
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_record
|
|
|
|
@developer = Developer.find(:first)
|
|
|
|
render :partial => @developer
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_record_collection
|
|
|
|
@developers = Developer.find(:all)
|
|
|
|
render :partial => @developers
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
|
|
|
|
def render_with_record_collection_and_spacer_template
|
|
|
|
@developer = Developer.find(1)
|
|
|
|
render :partial => @developer.projects, :spacer_template => 'test/partial_only'
|
|
|
|
end
|
2008-05-18 06:22:34 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
class RenderPartialWithRecordIdentificationTest < ActiveRecordTestCase
|
2009-02-04 21:26:08 +01:00
|
|
|
tests RenderPartialWithRecordIdentificationController
|
2008-05-18 06:22:34 +02:00
|
|
|
fixtures :developers, :projects, :developers_projects, :topics, :replies, :companies, :mascots
|
2008-10-27 07:47:01 +01:00
|
|
|
|
2007-12-21 08:48:59 +01:00
|
|
|
def test_rendering_partial_with_has_many_and_belongs_to_association
|
|
|
|
get :render_with_has_many_and_belongs_to_association
|
|
|
|
assert_template 'projects/_project'
|
2009-02-28 02:23:00 +01:00
|
|
|
assert_equal assigns(:developer).projects.map(&:name).join, @response.body
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
|
2007-12-21 08:48:59 +01:00
|
|
|
def test_rendering_partial_with_has_many_association
|
|
|
|
get :render_with_has_many_association
|
|
|
|
assert_template 'replies/_reply'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'Birdman is better!', @response.body
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
|
2008-05-18 06:22:34 +02:00
|
|
|
def test_rendering_partial_with_named_scope
|
|
|
|
get :render_with_named_scope
|
|
|
|
assert_template 'replies/_reply'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'Birdman is better!Nuh uh!', @response.body
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
|
2007-12-21 08:48:59 +01:00
|
|
|
def test_render_with_record
|
|
|
|
get :render_with_record
|
|
|
|
assert_template 'developers/_developer'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'David', @response.body
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
|
2007-12-21 08:48:59 +01:00
|
|
|
def test_render_with_record_collection
|
|
|
|
get :render_with_record_collection
|
|
|
|
assert_template 'developers/_developer'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'DavidJamisfixture_3fixture_4fixture_5fixture_6fixture_7fixture_8fixture_9fixture_10Jamis', @response.body
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_render_with_record_collection_and_spacer_template
|
|
|
|
get :render_with_record_collection_and_spacer_template
|
2009-02-28 02:23:00 +01:00
|
|
|
assert_equal assigns(:developer).projects.map(&:name).join('only partial'), @response.body
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-05-18 06:22:34 +02:00
|
|
|
|
|
|
|
def test_rendering_partial_with_has_one_association
|
|
|
|
mascot = Company.find(1).mascot
|
|
|
|
get :render_with_has_one_association
|
|
|
|
assert_template 'mascots/_mascot'
|
|
|
|
assert_equal mascot.name, @response.body
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class RenderPartialWithRecordIdentificationController < ActionController::Base
|
|
|
|
def render_with_has_many_and_belongs_to_association
|
|
|
|
@developer = Developer.find(1)
|
|
|
|
render :partial => @developer.projects
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_has_many_association
|
|
|
|
@topic = Topic.find(1)
|
|
|
|
render :partial => @topic.replies
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_has_many_through_association
|
|
|
|
@developer = Developer.find(:first)
|
|
|
|
render :partial => @developer.topics
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_belongs_to_association
|
|
|
|
@reply = Reply.find(1)
|
|
|
|
render :partial => @reply.topic
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_record
|
|
|
|
@developer = Developer.find(:first)
|
|
|
|
render :partial => @developer
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_record_collection
|
|
|
|
@developers = Developer.find(:all)
|
|
|
|
render :partial => @developers
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class Game < Struct.new(:name, :id)
|
|
|
|
def to_param
|
|
|
|
id.to_s
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
module Fun
|
|
|
|
class NestedController < ActionController::Base
|
|
|
|
def render_with_record_in_nested_controller
|
|
|
|
render :partial => Game.new("Pong")
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_record_collection_in_nested_controller
|
|
|
|
render :partial => [ Game.new("Pong"), Game.new("Tank") ]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
module Serious
|
|
|
|
class NestedDeeperController < ActionController::Base
|
|
|
|
def render_with_record_in_deeper_nested_controller
|
|
|
|
render :partial => Game.new("Chess")
|
|
|
|
end
|
|
|
|
|
|
|
|
def render_with_record_collection_in_deeper_nested_controller
|
|
|
|
render :partial => [ Game.new("Chess"), Game.new("Sudoku"), Game.new("Solitaire") ]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2007-12-21 08:48:59 +01:00
|
|
|
end
|
2008-05-18 06:22:34 +02:00
|
|
|
|
|
|
|
class RenderPartialWithRecordIdentificationAndNestedControllersTest < ActiveRecordTestCase
|
2009-02-04 21:26:08 +01:00
|
|
|
tests Fun::NestedController
|
2008-05-18 06:22:34 +02:00
|
|
|
|
|
|
|
def test_render_with_record_in_nested_controller
|
|
|
|
get :render_with_record_in_nested_controller
|
|
|
|
assert_template 'fun/games/_game'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'Pong', @response.body
|
2008-05-18 06:22:34 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_render_with_record_collection_in_nested_controller
|
|
|
|
get :render_with_record_collection_in_nested_controller
|
|
|
|
assert_template 'fun/games/_game'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'PongTank', @response.body
|
2008-05-18 06:22:34 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class RenderPartialWithRecordIdentificationAndNestedDeeperControllersTest < ActiveRecordTestCase
|
2009-02-04 21:26:08 +01:00
|
|
|
tests Fun::Serious::NestedDeeperController
|
2008-05-18 06:22:34 +02:00
|
|
|
|
|
|
|
def test_render_with_record_in_deeper_nested_controller
|
|
|
|
get :render_with_record_in_deeper_nested_controller
|
|
|
|
assert_template 'fun/serious/games/_game'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'Chess', @response.body
|
2008-05-18 06:22:34 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def test_render_with_record_collection_in_deeper_nested_controller
|
|
|
|
get :render_with_record_collection_in_deeper_nested_controller
|
|
|
|
assert_template 'fun/serious/games/_game'
|
2008-10-27 07:47:01 +01:00
|
|
|
assert_equal 'ChessSudokuSolitaire', @response.body
|
2008-05-18 06:22:34 +02:00
|
|
|
end
|
2008-10-27 07:47:01 +01:00
|
|
|
end
|