Commit 10294f9be50b3a3704cc8ee8d6a1aa2b9ef8521b
1 parent
5179b71b
Exists in
master
and in
28 other branches
Functional tests for container block
Showing
5 changed files
with
109 additions
and
4 deletions
Show diff stats
plugins/container_block/controllers/container_block_plugin_controller.rb
@@ -3,14 +3,15 @@ module ContainerBlockPluginController | @@ -3,14 +3,15 @@ module ContainerBlockPluginController | ||
3 | def saveWidths | 3 | def saveWidths |
4 | container = boxes_holder.blocks.find(params[:id]) | 4 | container = boxes_holder.blocks.find(params[:id]) |
5 | pairs = params[:widths].split('|') | 5 | pairs = params[:widths].split('|') |
6 | - settings = {} | 6 | + settings = container.children_settings |
7 | pairs.each do |pair| | 7 | pairs.each do |pair| |
8 | id, width = pair.split(',') | 8 | id, width = pair.split(',') |
9 | - settings[id.to_i] = {:width => width} | 9 | + settings[id.to_i] = {:width => width.to_i} |
10 | end | 10 | end |
11 | container.children_settings = settings | 11 | container.children_settings = settings |
12 | container.save! | 12 | container.save! |
13 | - render :json => {:ok => true} | 13 | + |
14 | + render :text => _('Block successfully saved.') | ||
14 | end | 15 | end |
15 | 16 | ||
16 | end | 17 | end |
plugins/container_block/test/functional/container_block_plugin_admin_controller_test.rb
0 → 100644
@@ -0,0 +1,29 @@ | @@ -0,0 +1,29 @@ | ||
1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
2 | + | ||
3 | +class ContainerBlockPluginAdminControllerTest < ActionController::TestCase | ||
4 | + | ||
5 | + def setup | ||
6 | + Environment.delete_all | ||
7 | + @environment = Environment.new(:name => 'testenv', :is_default => true) | ||
8 | + @environment.enabled_plugins = ['ContainerBlock'] | ||
9 | + @environment.save! | ||
10 | + | ||
11 | + user = create_user('testinguser') | ||
12 | + @environment.add_admin(user.person) | ||
13 | + login_as(user.login) | ||
14 | + | ||
15 | + @block = ContainerBlock.create!(:box => @environment.boxes.first) | ||
16 | + @child1 = Block.create!(:box => @block.container_box) | ||
17 | + @child2 = Block.create!(:box => @block.container_box) | ||
18 | + end | ||
19 | + | ||
20 | + should 'save widths of container block children' do | ||
21 | + xhr :post, :saveWidths, :id => @block.id, :widths => "#{@child1.id},100|#{@child2.id},200" | ||
22 | + assert_response 200 | ||
23 | + assert_equal 'Block successfully saved.', @response.body | ||
24 | + @block.reload | ||
25 | + assert_equal 100, @block.child_width(@child1.id) | ||
26 | + assert_equal 200, @block.child_width(@child2.id) | ||
27 | + end | ||
28 | + | ||
29 | +end |
plugins/container_block/test/functional/container_block_plugin_controller_test.rb
0 → 100644
@@ -0,0 +1,47 @@ | @@ -0,0 +1,47 @@ | ||
1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
2 | + | ||
3 | +class ContainerBlockPluginControllerTest < ActionController::TestCase | ||
4 | + | ||
5 | + include ContainerBlockPluginController | ||
6 | + | ||
7 | + def setup | ||
8 | + Environment.delete_all | ||
9 | + @environment = Environment.new(:name => 'testenv', :is_default => true) | ||
10 | + @environment.enabled_plugins = ['ContainerBlock'] | ||
11 | + @environment.save! | ||
12 | + | ||
13 | + user = create_user('testinguser') | ||
14 | + @environment.add_admin(user.person) | ||
15 | + login_as(user.login) | ||
16 | + | ||
17 | + @block = ContainerBlock.create!(:box => @environment.boxes.first) | ||
18 | + @child1 = Block.create!(:box => @block.container_box) | ||
19 | + @child2 = Block.create!(:box => @block.container_box) | ||
20 | + @environment = Environment.find(@environment.id) | ||
21 | + stubs(:boxes_holder).returns(@environment) | ||
22 | + @params = {} | ||
23 | + end | ||
24 | + | ||
25 | + attr_reader :params | ||
26 | + | ||
27 | + should 'save widths of container block children' do | ||
28 | + @params = {:id => @block.id, :widths => "#{@child1.id},100|#{@child2.id},200"} | ||
29 | + expects(:render).with(:text => 'Block successfully saved.') | ||
30 | + saveWidths | ||
31 | + @block.reload | ||
32 | + assert_equal 100, @block.child_width(@child1.id) | ||
33 | + assert_equal 200, @block.child_width(@child2.id) | ||
34 | + end | ||
35 | + | ||
36 | + should 'do not change child width that is not passed in widths param' do | ||
37 | + @block.children_settings = {@child2.id => {:width => 200}} | ||
38 | + @block.save! | ||
39 | + @params = {:id => @block.id, :widths => "#{@child1.id},100"} | ||
40 | + expects(:render).with(:text => 'Block successfully saved.') | ||
41 | + saveWidths | ||
42 | + @block.reload | ||
43 | + assert_equal 100, @block.child_width(@child1.id) | ||
44 | + assert_equal 200, @block.child_width(@child2.id) | ||
45 | + end | ||
46 | + | ||
47 | +end |
plugins/container_block/test/functional/container_block_plugin_myprofile_controller_test.rb
0 → 100644
@@ -0,0 +1,27 @@ | @@ -0,0 +1,27 @@ | ||
1 | +require File.dirname(__FILE__) + '/../test_helper' | ||
2 | + | ||
3 | +class ContainerBlockPluginMyprofileControllerTest < ActionController::TestCase | ||
4 | + | ||
5 | + def setup | ||
6 | + user = create_user('testinguser') | ||
7 | + login_as(user.login) | ||
8 | + | ||
9 | + @profile = fast_create(Community) | ||
10 | + @profile.add_admin(user.person) | ||
11 | + @box = Box.new(:owner => @profile) | ||
12 | + | ||
13 | + @block = ContainerBlock.create!(:box => @box) | ||
14 | + @child1 = Block.create!(:box => @block.container_box) | ||
15 | + @child2 = Block.create!(:box => @block.container_box) | ||
16 | + end | ||
17 | + | ||
18 | + should 'save widths of container block children' do | ||
19 | + xhr :post, :saveWidths, :profile => @profile.identifier, :id => @block.id, :widths => "#{@child1.id},100|#{@child2.id},200" | ||
20 | + assert_response 200 | ||
21 | + assert_equal 'Block successfully saved.', @response.body | ||
22 | + @block.reload | ||
23 | + assert_equal 100, @block.child_width(@child1.id) | ||
24 | + assert_equal 200, @block.child_width(@child2.id) | ||
25 | + end | ||
26 | + | ||
27 | +end |
plugins/container_block/views/blocks/container.rhtml
@@ -16,7 +16,8 @@ | @@ -16,7 +16,8 @@ | ||
16 | :with => "containerChildrenWidth(#{block.id})", | 16 | :with => "containerChildrenWidth(#{block.id})", |
17 | :html => {:class => "button icon-save container_block_save", :id => "container_block_save_#{block.id}" }, | 17 | :html => {:class => "button icon-save container_block_save", :id => "container_block_save_#{block.id}" }, |
18 | :loading => "open_loading(DEFAULT_LOADING_MESSAGE);", | 18 | :loading => "open_loading(DEFAULT_LOADING_MESSAGE);", |
19 | - :loaded => "close_loading();" %> | 19 | + :loaded => "close_loading();", |
20 | + :complete => "display_notice(request.responseText);"%> | ||
20 | </div> | 21 | </div> |
21 | 22 | ||
22 | <script> | 23 | <script> |