diff test/functional/projects_controller_test.rb @ 38:33d69fee1d99 cannam

* Merge SVN update from default branch
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Fri, 19 Nov 2010 13:41:40 +0000
parents 94944d00e43c
children af80e5618e9b
line wrap: on
line diff
--- a/test/functional/projects_controller_test.rb	Fri Oct 01 15:33:14 2010 +0100
+++ b/test/functional/projects_controller_test.rb	Fri Nov 19 13:41:40 2010 +0000
@@ -284,6 +284,18 @@
     assert_template 'show'
     assert_not_nil assigns(:project)
     assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
+    
+    assert_tag 'li', :content => /Development status/
+  end
+
+  def test_show_should_not_display_hidden_custom_fields
+    ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
+    get :show, :id => 'ecookbook'
+    assert_response :success
+    assert_template 'show'
+    assert_not_nil assigns(:project)
+    
+    assert_no_tag 'li', :content => /Development status/
   end
   
   def test_show_should_not_fail_when_custom_values_are_nil
@@ -296,6 +308,16 @@
     assert_equal Project.find_by_identifier('ecookbook'), assigns(:project)
   end
   
+  def show_archived_project_should_be_denied
+    project = Project.find_by_identifier('ecookbook')
+    project.archive!
+    
+    get :show, :id => 'ecookbook'
+    assert_response 403
+    assert_nil assigns(:project)
+    assert_tag :tag => 'p', :content => /archived/
+  end
+  
   def test_private_subprojects_hidden
     get :show, :id => 'ecookbook'
     assert_response :success
@@ -322,7 +344,7 @@
     @request.session[:user_id] = 2 # manager
     post :update, :id => 1, :project => {:name => 'Test changed name',
                                        :issue_custom_field_ids => ['']}
-    assert_redirected_to 'projects/ecookbook/settings'
+    assert_redirected_to '/projects/ecookbook/settings'
     project = Project.find(1)
     assert_equal 'Test changed name', project.name
   end
@@ -338,14 +360,14 @@
   def test_post_destroy
     @request.session[:user_id] = 1 # admin
     post :destroy, :id => 1, :confirm => 1
-    assert_redirected_to 'admin/projects'
+    assert_redirected_to '/admin/projects'
     assert_nil Project.find_by_id(1)
   end
   
   def test_archive
     @request.session[:user_id] = 1 # admin
     post :archive, :id => 1
-    assert_redirected_to 'admin/projects'
+    assert_redirected_to '/admin/projects'
     assert !Project.find(1).active?
   end
   
@@ -353,7 +375,7 @@
     @request.session[:user_id] = 1 # admin
     Project.find(1).archive
     post :unarchive, :id => 1
-    assert_redirected_to 'admin/projects'
+    assert_redirected_to '/admin/projects'
     assert Project.find(1).active?
   end
   
@@ -389,9 +411,20 @@
     assert_redirected_to :controller => 'admin', :action => 'projects'
   end
 
+  context "POST :copy" do
+    should "TODO: test the rest of the method"
+
+    should "redirect to the project settings when successful" do
+      @request.session[:user_id] = 1 # admin
+      post :copy, :id => 1, :project => {:name => 'Copy', :identifier => 'unique-copy'}
+      assert_response :redirect
+      assert_redirected_to :controller => 'projects', :action => 'settings'
+    end
+  end
+
   def test_jump_should_redirect_to_active_tab
     get :show, :id => 1, :jump => 'issues'
-    assert_redirected_to 'projects/ecookbook/issues'
+    assert_redirected_to '/projects/ecookbook/issues'
   end
   
   def test_jump_should_not_redirect_to_inactive_tab