annotate test/functional/issue_statuses_controller_test.rb @ 8:0c83d98252d9 yuya

* Add custom repo prefix and proper auth realm, remove auth cache (seems like an unwise feature), pass DB handle around, various other bits of tidying
author Chris Cannam
date Thu, 12 Aug 2010 15:31:37 +0100
parents 513646585e45
children af80e5618e9b
rev   line source
Chris@0 1 require File.dirname(__FILE__) + '/../test_helper'
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