annotate test/functional/issue_statuses_controller_test.rb @ 669:202986dd17e4 live bibliography_plugin_alpha

Merge from branch "cannam_integration"
author Chris Cannam
date Fri, 09 Sep 2011 16:56:21 +0100
parents af80e5618e9b
children cbb26bc654de
rev   line source
Chris@117 1 require File.expand_path('../../test_helper', __FILE__)
Chris@0 2 require 'issue_statuses_controller'
Chris@0 3
Chris@0 4 # Re-raise errors caught by the controller.
Chris@0 5 class IssueStatusesController; def rescue_action(e) raise e end; end
Chris@0 6
Chris@0 7
Chris@0 8 class IssueStatusesControllerTest < ActionController::TestCase
Chris@0 9 fixtures :issue_statuses, :issues
Chris@0 10
Chris@0 11 def setup
Chris@0 12 @controller = IssueStatusesController.new
Chris@0 13 @request = ActionController::TestRequest.new
Chris@0 14 @response = ActionController::TestResponse.new
Chris@0 15 User.current = nil
Chris@0 16 @request.session[:user_id] = 1 # admin
Chris@0 17 end
Chris@0 18
Chris@0 19 def test_index
Chris@0 20 get :index
Chris@0 21 assert_response :success
Chris@0 22 assert_template 'index'
Chris@0 23 end
Chris@0 24
Chris@0 25 def test_new
Chris@0 26 get :new
Chris@0 27 assert_response :success
Chris@0 28 assert_template 'new'
Chris@0 29 end
Chris@0 30
Chris@0 31 def test_create
Chris@0 32 assert_difference 'IssueStatus.count' do
Chris@0 33 post :create, :issue_status => {:name => 'New status'}
Chris@0 34 end
Chris@0 35 assert_redirected_to :action => 'index'
Chris@0 36 status = IssueStatus.find(:first, :order => 'id DESC')
Chris@0 37 assert_equal 'New status', status.name
Chris@0 38 end
Chris@0 39
Chris@0 40 def test_edit
Chris@0 41 get :edit, :id => '3'
Chris@0 42 assert_response :success
Chris@0 43 assert_template 'edit'
Chris@0 44 end
Chris@0 45
Chris@0 46 def test_update
Chris@0 47 post :update, :id => '3', :issue_status => {:name => 'Renamed status'}
Chris@0 48 assert_redirected_to :action => 'index'
Chris@0 49 status = IssueStatus.find(3)
Chris@0 50 assert_equal 'Renamed status', status.name
Chris@0 51 end
Chris@0 52
Chris@0 53 def test_destroy
Chris@0 54 Issue.delete_all("status_id = 1")
Chris@0 55
Chris@0 56 assert_difference 'IssueStatus.count', -1 do
Chris@0 57 post :destroy, :id => '1'
Chris@0 58 end
Chris@0 59 assert_redirected_to :action => 'index'
Chris@0 60 assert_nil IssueStatus.find_by_id(1)
Chris@0 61 end
Chris@0 62
Chris@0 63 def test_destroy_should_block_if_status_in_use
Chris@0 64 assert_not_nil Issue.find_by_status_id(1)
Chris@0 65
Chris@0 66 assert_no_difference 'IssueStatus.count' do
Chris@0 67 post :destroy, :id => '1'
Chris@0 68 end
Chris@0 69 assert_redirected_to :action => 'index'
Chris@0 70 assert_not_nil IssueStatus.find_by_id(1)
Chris@0 71 end
Chris@0 72
Chris@0 73 context "on POST to :update_issue_done_ratio" do
Chris@0 74 context "with Setting.issue_done_ratio using the issue_field" do
Chris@0 75 setup do
Chris@0 76 Setting.issue_done_ratio = 'issue_field'
Chris@0 77 post :update_issue_done_ratio
Chris@0 78 end
Chris@0 79
Chris@0 80 should_set_the_flash_to /not updated/
Chris@0 81 should_redirect_to('the index') { '/issue_statuses' }
Chris@0 82 end
Chris@0 83
Chris@0 84 context "with Setting.issue_done_ratio using the issue_status" do
Chris@0 85 setup do
Chris@0 86 Setting.issue_done_ratio = 'issue_status'
Chris@0 87 post :update_issue_done_ratio
Chris@0 88 end
Chris@0 89
Chris@0 90 should_set_the_flash_to /Issue done ratios updated/
Chris@0 91 should_redirect_to('the index') { '/issue_statuses' }
Chris@0 92 end
Chris@0 93 end
Chris@0 94
Chris@0 95 end