diff --git a/plugins/container_block/lib/container_block.rb b/plugins/container_block/lib/container_block.rb index cb93b0d..fcffbc9 100644 --- a/plugins/container_block/lib/container_block.rb +++ b/plugins/container_block/lib/container_block.rb @@ -14,7 +14,7 @@ class ContainerBlock < Block end def layout_template - 'default' + nil end def create_box @@ -39,7 +39,6 @@ class ContainerBlock < Block children_settings[child_id][:width] if children_settings[child_id] end - #FIXME controller test def content(args={}) block = self lambda do diff --git a/plugins/container_block/test/functional/container_block_environment_design_controller_test.rb b/plugins/container_block/test/functional/container_block_environment_design_controller_test.rb index 5e3133c..fbcfbe6 100644 --- a/plugins/container_block/test/functional/container_block_environment_design_controller_test.rb +++ b/plugins/container_block/test/functional/container_block_environment_design_controller_test.rb @@ -1,7 +1,12 @@ require File.dirname(__FILE__) + '/../test_helper' # Re-raise errors caught by the controller. -class EnvironmentDesignController; def rescue_action(e) raise e end; end +class EnvironmentDesignController + append_view_path File.join(File.dirname(__FILE__) + '/../../views') + def rescue_action(e) + raise e + end +end class EnvironmentDesignControllerTest < ActionController::TestCase @@ -15,8 +20,8 @@ class EnvironmentDesignControllerTest < ActionController::TestCase @environment.add_admin(user.person) login_as(user.login) - box = Box.create!(:owner => @environment) - @block = ContainerBlock.create!(:box => box) + @block = ContainerBlock.create!(:box => @environment.boxes.first) + @environment = Environment.find(@environment.id) end should 'be able to edit ContainerBlock' do @@ -31,4 +36,22 @@ class EnvironmentDesignControllerTest < ActionController::TestCase assert_equal 'Container', @block.title end + should 'display container children' do + c1 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child1 content') + get :index + assert_tag :div, :attributes => { :id => "block-#{c1.id}" } + end + + should 'display hidden children of container block' do + c1 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child1 content', :display => 'never') + get :index + assert_tag :div, :attributes => { :id => "block-#{c1.id}", :class => 'block raw-html-block invisible-block' } + end + + should 'display button to save widths of container children' do + c1 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child1 content') + get :index + assert_tag :a, :attributes => { :class => "button icon-save container_block_save" } + end + end diff --git a/plugins/container_block/test/functional/container_block_home_controller_test.rb b/plugins/container_block/test/functional/container_block_home_controller_test.rb index dc5a86c..cf29191 100644 --- a/plugins/container_block/test/functional/container_block_home_controller_test.rb +++ b/plugins/container_block/test/functional/container_block_home_controller_test.rb @@ -31,4 +31,31 @@ class HomeControllerTest < ActionController::TestCase assert_tag :div, :attributes => { :class => 'block container-block' } end + should 'display container children' do + c1 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child1 content') + c2 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child2 content') + get :index + assert_tag :div, :attributes => { :id => "block-#{c1.id}" } + assert_tag :div, :attributes => { :id => "block-#{c2.id}" } + end + + should 'display style tags for container children' do + c1 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child1 content') + @block.children_settings = { c1.id => {:width => "123"} } + @block.save! + get :index + assert_match /#block-#{c1.id} \{ width: 123px; \}/, @response.body + end + + should 'do not display hidden children of container' do + c1 = RawHTMLBlock.create!(:box => @block.container_box, :html => 'child1 content', :display => 'never') + get :index + assert_no_tag :div, :attributes => { :id => "block-#{c1.id}" } + end + + should 'do not display button to save widths of container children' do + get :index + assert_no_tag :a, :attributes => { :class => "button icon-save container_block_save" } + end + end diff --git a/plugins/container_block/test/unit/container_block_test.rb b/plugins/container_block/test/unit/container_block_test.rb index 29eab7c..28cd5fa 100644 --- a/plugins/container_block/test/unit/container_block_test.rb +++ b/plugins/container_block/test/unit/container_block_test.rb @@ -65,4 +65,8 @@ class ContainerBlockTest < ActiveSupport::TestCase assert_equal nil, @block.child_width(1) end + should 'return nil at layout_templat' do + assert_equal nil, @block.layout_template + end + end diff --git a/plugins/container_block/test/unit/environment_test.rb b/plugins/container_block/test/unit/environment_test.rb index add815c..93d9e14 100644 --- a/plugins/container_block/test/unit/environment_test.rb +++ b/plugins/container_block/test/unit/environment_test.rb @@ -8,22 +8,25 @@ class EnvironmentTest < ActiveSupport::TestCase @box = Box.create!(:owner => @environment) @block = Block.create!(:box => @box) - @container_box = Box.create!(:owner => @environment) - @container = ContainerBlock.create!(:box => @container_box) + @container = ContainerBlock.create!(:box => @box) end should 'return blocks as usual' do assert_equal [@block, @container], @environment.blocks end + should 'return blocks with container children' do + child = Block.create!(:box => @container.container_box) + assert_equal [@block, @container, child], @environment.blocks + end + should 'return block with id at find method' do assert_equal @block, @environment.blocks.find(@block.id) end should 'return child block with id at find method' do - block = Block.create!(:box => @container_box) - @container.save! - assert_equal @block, @environment.blocks.find(@block.id) + child = Block.create!(:box => @container.container_box) + assert_equal child, @environment.blocks.find(child.id) end end diff --git a/plugins/container_block/test/unit/profile_test.rb b/plugins/container_block/test/unit/profile_test.rb index d3746f7..71767e0 100644 --- a/plugins/container_block/test/unit/profile_test.rb +++ b/plugins/container_block/test/unit/profile_test.rb @@ -8,22 +8,25 @@ class ProfileTest < ActiveSupport::TestCase @box = Box.create!(:owner => @profile) @block = Block.create!(:box => @box) - @container_box = Box.create!(:owner => @profile) - @container = ContainerBlock.create!(:box => @container_box) + @container = ContainerBlock.create!(:box => @box) end should 'return blocks as usual' do assert_equal [@block, @container], @profile.blocks end + should 'return blocks with container children' do + child = Block.create!(:box => @container.container_box) + assert_equal [@block, @container, child], @profile.blocks + end + should 'return block with id at find method' do assert_equal @block, @profile.blocks.find(@block.id) end should 'return child block with id at find method' do - block = Block.create!(:box => @container_box) - @container.save! - assert_equal @block, @profile.blocks.find(@block.id) + child = Block.create!(:box => @container.container_box) + assert_equal child, @profile.blocks.find(child.id) end end diff --git a/plugins/container_block/views/blocks/container.rhtml b/plugins/container_block/views/blocks/container.rhtml index 75ac769..3fa4bf6 100644 --- a/plugins/container_block/views/blocks/container.rhtml +++ b/plugins/container_block/views/blocks/container.rhtml @@ -11,7 +11,7 @@ <% if edit_mode %>
- <%= link_to_remote '', :url => { :controller => @controller.boxes_holder.kind_of?(Environment) ? 'container_block_plugin_admin' : 'container_block_plugin_myprofile', :action => 'saveWidths', :id => block.id }, :with => "containerChildrenWidth(#{block.id})", :html => {:class => "button icon-save" } %> + <%= link_to_remote '', :url => { :controller => @controller.boxes_holder.kind_of?(Environment) ? 'container_block_plugin_admin' : 'container_block_plugin_myprofile', :action => 'saveWidths', :id => block.id }, :with => "containerChildrenWidth(#{block.id})", :html => {:class => "button icon-save container_block_save" } %>