diff test/functional/enumerations_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 cbb26bc654de
children 622f24f53b42 261b3d9a4903
line wrap: on
line diff
--- a/test/functional/enumerations_controller_test.rb	Wed Jun 27 14:54:18 2012 +0100
+++ b/test/functional/enumerations_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
@@ -30,20 +30,33 @@
     assert_template 'index'
   end
 
+  def test_index_should_require_admin
+    @request.session[:user_id] = nil
+    get :index
+    assert_response 302
+  end
+
   def test_new
     get :new, :type => 'IssuePriority'
     assert_response :success
     assert_template 'new'
     assert_kind_of IssuePriority, assigns(:enumeration)
+    assert_tag 'input', :attributes => {:name => 'enumeration[type]', :value => 'IssuePriority'}
+    assert_tag 'input', :attributes => {:name => 'enumeration[name]'}
+  end
+
+  def test_new_with_invalid_type_should_respond_with_404
+    get :new, :type => 'UnknownType'
+    assert_response 404
   end
 
   def test_create
     assert_difference 'IssuePriority.count' do
       post :create, :enumeration => {:type => 'IssuePriority', :name => 'Lowest'}
     end
-    assert_redirected_to '/enumerations?type=IssuePriority'
-    e = IssuePriority.first(:order => 'id DESC')
-    assert_equal 'Lowest', e.name
+    assert_redirected_to '/enumerations'
+    e = IssuePriority.find_by_name('Lowest')
+    assert_not_nil e
   end
 
   def test_create_with_failure
@@ -58,41 +71,56 @@
     get :edit, :id => 6
     assert_response :success
     assert_template 'edit'
+    assert_tag 'input', :attributes => {:name => 'enumeration[name]', :value => 'High'}
+  end
+
+  def test_edit_invalid_should_respond_with_404
+    get :edit, :id => 999
+    assert_response 404
   end
 
   def test_update
     assert_no_difference 'IssuePriority.count' do
-      post :update, :id => 6, :enumeration => {:type => 'IssuePriority', :name => 'New name'}
+      put :update, :id => 6, :enumeration => {:type => 'IssuePriority', :name => 'New name'}
     end
-    assert_redirected_to '/enumerations?type=IssuePriority'
+    assert_redirected_to '/enumerations'
     e = IssuePriority.find(6)
     assert_equal 'New name', e.name
   end
 
   def test_update_with_failure
     assert_no_difference 'IssuePriority.count' do
-      post :update, :id => 6, :enumeration => {:type => 'IssuePriority', :name => ''}
+      put :update, :id => 6, :enumeration => {:type => 'IssuePriority', :name => ''}
     end
     assert_response :success
     assert_template 'edit'
   end
 
   def test_destroy_enumeration_not_in_use
-    post :destroy, :id => 7
+    assert_difference 'IssuePriority.count', -1 do
+      delete :destroy, :id => 7
+    end
     assert_redirected_to :controller => 'enumerations', :action => 'index'
     assert_nil Enumeration.find_by_id(7)
   end
 
   def test_destroy_enumeration_in_use
-    post :destroy, :id => 4
+    assert_no_difference 'IssuePriority.count' do
+      delete :destroy, :id => 4
+    end
     assert_response :success
     assert_template 'destroy'
     assert_not_nil Enumeration.find_by_id(4)
+    assert_select 'select[name=reassign_to_id]' do
+      assert_select 'option[value=6]', :text => 'High'
+    end
   end
 
   def test_destroy_enumeration_in_use_with_reassignment
     issue = Issue.find(:first, :conditions => {:priority_id => 4})
-    post :destroy, :id => 4, :reassign_to_id => 6
+    assert_difference 'IssuePriority.count', -1 do
+      delete :destroy, :id => 4, :reassign_to_id => 6
+    end
     assert_redirected_to :controller => 'enumerations', :action => 'index'
     assert_nil Enumeration.find_by_id(4)
     # check that the issue was reassign