annotate test/functional/issue_relations_controller_test.rb @ 1452:d6b9fd02bb89 feature_36_js_refactoring

Deprecated develoment branch.
author luisf <luis.figueira@eecs.qmul.ac.uk>
date Fri, 11 Oct 2013 17:01:24 +0100
parents 0c939c159af4
children cbb26bc654de
rev   line source
Chris@119 1 require File.expand_path('../../test_helper', __FILE__)
Chris@0 2 require 'issue_relations_controller'
Chris@0 3
Chris@0 4 # Re-raise errors caught by the controller.
Chris@0 5 class IssueRelationsController; def rescue_action(e) raise e end; end
Chris@0 6
Chris@0 7
Chris@0 8 class IssueRelationsControllerTest < ActionController::TestCase
Chris@0 9 fixtures :projects,
Chris@0 10 :users,
Chris@0 11 :roles,
Chris@0 12 :members,
Chris@0 13 :member_roles,
Chris@0 14 :issues,
Chris@0 15 :issue_statuses,
Chris@0 16 :issue_relations,
Chris@0 17 :enabled_modules,
Chris@0 18 :enumerations,
Chris@0 19 :trackers
Chris@0 20
Chris@0 21 def setup
Chris@0 22 @controller = IssueRelationsController.new
Chris@0 23 @request = ActionController::TestRequest.new
Chris@0 24 @response = ActionController::TestResponse.new
Chris@0 25 User.current = nil
Chris@0 26 end
Chris@0 27
Chris@0 28 def test_new
Chris@0 29 assert_difference 'IssueRelation.count' do
Chris@0 30 @request.session[:user_id] = 3
Chris@0 31 post :new, :issue_id => 1,
Chris@0 32 :relation => {:issue_to_id => '2', :relation_type => 'relates', :delay => ''}
Chris@0 33 end
Chris@0 34 end
Chris@0 35
Chris@210 36 def test_new_xhr
Chris@210 37 assert_difference 'IssueRelation.count' do
Chris@210 38 @request.session[:user_id] = 3
Chris@210 39 xhr :post, :new,
Chris@210 40 :issue_id => 3,
Chris@210 41 :relation => {:issue_to_id => '1', :relation_type => 'relates', :delay => ''}
Chris@210 42 assert_select_rjs 'relations' do
Chris@210 43 assert_select 'table', 1
Chris@210 44 assert_select 'tr', 2 # relations
Chris@210 45 end
Chris@210 46 end
Chris@210 47 end
Chris@210 48
Chris@0 49 def test_new_should_accept_id_with_hash
Chris@0 50 assert_difference 'IssueRelation.count' do
Chris@0 51 @request.session[:user_id] = 3
Chris@0 52 post :new, :issue_id => 1,
Chris@0 53 :relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''}
Chris@0 54 end
Chris@0 55 end
Chris@0 56
Chris@0 57 def test_new_should_not_break_with_non_numerical_id
Chris@0 58 assert_no_difference 'IssueRelation.count' do
Chris@0 59 assert_nothing_raised do
Chris@0 60 @request.session[:user_id] = 3
Chris@0 61 post :new, :issue_id => 1,
Chris@0 62 :relation => {:issue_to_id => 'foo', :relation_type => 'relates', :delay => ''}
Chris@0 63 end
Chris@0 64 end
Chris@0 65 end
Chris@0 66
Chris@0 67 def test_should_create_relations_with_visible_issues_only
Chris@0 68 Setting.cross_project_issue_relations = '1'
Chris@0 69 assert_nil Issue.visible(User.find(3)).find_by_id(4)
Chris@0 70
Chris@0 71 assert_no_difference 'IssueRelation.count' do
Chris@0 72 @request.session[:user_id] = 3
Chris@0 73 post :new, :issue_id => 1,
Chris@0 74 :relation => {:issue_to_id => '4', :relation_type => 'relates', :delay => ''}
Chris@0 75 end
Chris@0 76 end
Chris@507 77
Chris@507 78 should "prevent relation creation when there's a circular dependency"
Chris@0 79
Chris@0 80 def test_destroy
Chris@0 81 assert_difference 'IssueRelation.count', -1 do
Chris@0 82 @request.session[:user_id] = 3
Chris@0 83 post :destroy, :id => '2', :issue_id => '3'
Chris@0 84 end
Chris@0 85 end
Chris@210 86
Chris@210 87 def test_destroy_xhr
Chris@210 88 IssueRelation.create!(:relation_type => IssueRelation::TYPE_RELATES) do |r|
Chris@210 89 r.issue_from_id = 3
Chris@210 90 r.issue_to_id = 1
Chris@210 91 end
Chris@210 92
Chris@210 93 assert_difference 'IssueRelation.count', -1 do
Chris@210 94 @request.session[:user_id] = 3
Chris@210 95 xhr :post, :destroy, :id => '2', :issue_id => '3'
Chris@210 96 assert_select_rjs 'relations' do
Chris@210 97 assert_select 'table', 1
Chris@210 98 assert_select 'tr', 1 # relation left
Chris@210 99 end
Chris@210 100 end
Chris@210 101 end
Chris@0 102 end