diff test/functional/trackers_controller_test.rb @ 1115:433d4f72a19b redmine-2.2

Update to Redmine SVN revision 11137 on 2.2-stable branch
author Chris Cannam
date Mon, 07 Jan 2013 12:01:42 +0000
parents 5f33065ddc4b
children 622f24f53b42
line wrap: on
line diff
--- a/test/functional/trackers_controller_test.rb	Wed Jun 27 14:54:18 2012 +0100
+++ b/test/functional/trackers_controller_test.rb	Mon Jan 07 12:01:42 2013 +0000
@@ -1,5 +1,5 @@
 # Redmine - project management software
-# Copyright (C) 2006-2011  Jean-Philippe Lang
+# Copyright (C) 2006-2012  Jean-Philippe Lang
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -64,8 +64,19 @@
     tracker = Tracker.first(:order => 'id DESC')
     assert_equal 'New tracker', tracker.name
     assert_equal [1], tracker.project_ids.sort
+    assert_equal Tracker::CORE_FIELDS, tracker.core_fields
     assert_equal [1, 6], tracker.custom_field_ids.sort
-    assert_equal 0, tracker.workflows.count
+    assert_equal 0, tracker.workflow_rules.count
+  end
+
+  def create_with_disabled_core_fields
+    assert_difference 'Tracker.count' do
+      post :create, :tracker => { :name => 'New tracker', :core_fields => ['assigned_to_id', 'fixed_version_id', ''] }
+    end
+    assert_redirected_to :action => 'index'
+    tracker = Tracker.first(:order => 'id DESC')
+    assert_equal 'New tracker', tracker.name
+    assert_equal %w(assigned_to_id fixed_version_id), tracker.core_fields
   end
 
   def test_create_new_with_workflow_copy
@@ -75,15 +86,16 @@
     assert_redirected_to :action => 'index'
     tracker = Tracker.find_by_name('New tracker')
     assert_equal 0, tracker.projects.count
-    assert_equal Tracker.find(1).workflows.count, tracker.workflows.count
+    assert_equal Tracker.find(1).workflow_rules.count, tracker.workflow_rules.count
   end
 
-  def test_create_new_failure
+  def test_create_with_failure
     assert_no_difference 'Tracker.count' do
       post :create, :tracker => { :name => '', :project_ids => ['1', '', ''], :custom_field_ids => ['1', '6', ''] }
     end
     assert_response :success
     assert_template 'new'
+    assert_error_tag :content => /name can't be blank/i
   end
 
   def test_edit
@@ -106,6 +118,24 @@
                                         :type => 'hidden'}
   end
 
+  def test_edit_should_check_core_fields
+    tracker = Tracker.find(1)
+    tracker.core_fields = %w(assigned_to_id fixed_version_id)
+    tracker.save!
+
+    get :edit, :id => 1
+    assert_response :success
+    assert_template 'edit'
+
+    assert_select 'input[name=?][value=assigned_to_id][checked=checked]', 'tracker[core_fields][]'
+    assert_select 'input[name=?][value=fixed_version_id][checked=checked]', 'tracker[core_fields][]'
+
+    assert_select 'input[name=?][value=category_id]', 'tracker[core_fields][]'
+    assert_select 'input[name=?][value=category_id][checked=checked]', 'tracker[core_fields][]', 0
+
+    assert_select 'input[name=?][value=][type=hidden]', 'tracker[core_fields][]'
+  end
+
   def test_update
     put :update, :id => 1, :tracker => { :name => 'Renamed',
                                         :project_ids => ['1', '2', ''] }
@@ -120,6 +150,19 @@
     assert Tracker.find(1).project_ids.empty?
   end
 
+  def test_update_without_core_fields
+    put :update, :id => 1, :tracker => { :name => 'Renamed', :core_fields => [''] }
+    assert_redirected_to :action => 'index'
+    assert Tracker.find(1).core_fields.empty?
+  end
+
+  def test_update_with_failure
+    put :update, :id => 1, :tracker => { :name => '' }
+    assert_response :success
+    assert_template 'edit'
+    assert_error_tag :content => /name can't be blank/i
+  end
+
   def test_move_lower
    tracker = Tracker.find_by_position(1)
    put :update, :id => 1, :tracker => { :move_to => 'lower' }
@@ -142,4 +185,34 @@
     assert_redirected_to :action => 'index'
     assert_not_nil flash[:error]
   end
+
+  def test_get_fields
+    get :fields
+    assert_response :success
+    assert_template 'fields'
+
+    assert_select 'form' do
+      assert_select 'input[type=checkbox][name=?][value=assigned_to_id]', 'trackers[1][core_fields][]'
+      assert_select 'input[type=checkbox][name=?][value=2]', 'trackers[1][custom_field_ids][]'
+
+      assert_select 'input[type=hidden][name=?][value=]', 'trackers[1][core_fields][]'
+      assert_select 'input[type=hidden][name=?][value=]', 'trackers[1][custom_field_ids][]'
+    end
+  end
+
+  def test_post_fields
+    post :fields, :trackers => {
+      '1' => {'core_fields' => ['assigned_to_id', 'due_date', ''], 'custom_field_ids' => ['1', '2']},
+      '2' => {'core_fields' => [''], 'custom_field_ids' => ['']}
+    }
+    assert_redirected_to '/trackers/fields'
+
+    tracker = Tracker.find(1)
+    assert_equal %w(assigned_to_id due_date), tracker.core_fields
+    assert_equal [1, 2], tracker.custom_field_ids.sort
+
+    tracker = Tracker.find(2)
+    assert_equal [], tracker.core_fields
+    assert_equal [], tracker.custom_field_ids.sort
+  end
 end