# params[:block] : id of the block to add
def add_block
block = params[:block].to_s.underscore
- (render :nothing => true; return) unless block && (BLOCKS.keys.include? block)
- @user = User.current
- layout = @user.pref[:my_page_layout] || {}
- # remove if already present in a group
- %w(top left right).each {|f| (layout[f] ||= []).delete block }
- # add it on top
- layout['top'].unshift block
- @user.pref[:my_page_layout] = layout
- @user.pref.save
+ if block.present? && BLOCKS.key?(block)
+ @user = User.current
+ layout = @user.pref[:my_page_layout] || {}
+ # remove if already present in a group
+ %w(top left right).each {|f| (layout[f] ||= []).delete block }
+ # add it on top
+ layout['top'].unshift block
+ @user.pref[:my_page_layout] = layout
+ @user.pref.save
+ end
redirect_to :action => 'page_layout'
end
assert User.find(2).pref[:my_page_layout]['top'].include?('issuesreportedbyme')
end
+ def test_add_invalid_block_should_redirect
+ post :add_block, :block => 'invalid'
+ assert_redirected_to '/my/page_layout'
+ end
+
def test_remove_block
post :remove_block, :block => 'issuesassignedtome'
assert_redirected_to '/my/page_layout'