Chris@117
|
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@0
|
36 def test_new_should_accept_id_with_hash
|
Chris@0
|
37 assert_difference 'IssueRelation.count' do
|
Chris@0
|
38 @request.session[:user_id] = 3
|
Chris@0
|
39 post :new, :issue_id => 1,
|
Chris@0
|
40 :relation => {:issue_to_id => '#2', :relation_type => 'relates', :delay => ''}
|
Chris@0
|
41 end
|
Chris@0
|
42 end
|
Chris@0
|
43
|
Chris@0
|
44 def test_new_should_not_break_with_non_numerical_id
|
Chris@0
|
45 assert_no_difference 'IssueRelation.count' do
|
Chris@0
|
46 assert_nothing_raised do
|
Chris@0
|
47 @request.session[:user_id] = 3
|
Chris@0
|
48 post :new, :issue_id => 1,
|
Chris@0
|
49 :relation => {:issue_to_id => 'foo', :relation_type => 'relates', :delay => ''}
|
Chris@0
|
50 end
|
Chris@0
|
51 end
|
Chris@0
|
52 end
|
Chris@0
|
53
|
Chris@0
|
54 def test_should_create_relations_with_visible_issues_only
|
Chris@0
|
55 Setting.cross_project_issue_relations = '1'
|
Chris@0
|
56 assert_nil Issue.visible(User.find(3)).find_by_id(4)
|
Chris@0
|
57
|
Chris@0
|
58 assert_no_difference 'IssueRelation.count' do
|
Chris@0
|
59 @request.session[:user_id] = 3
|
Chris@0
|
60 post :new, :issue_id => 1,
|
Chris@0
|
61 :relation => {:issue_to_id => '4', :relation_type => 'relates', :delay => ''}
|
Chris@0
|
62 end
|
Chris@0
|
63 end
|
Chris@0
|
64
|
Chris@0
|
65 def test_destroy
|
Chris@0
|
66 assert_difference 'IssueRelation.count', -1 do
|
Chris@0
|
67 @request.session[:user_id] = 3
|
Chris@0
|
68 post :destroy, :id => '2', :issue_id => '3'
|
Chris@0
|
69 end
|
Chris@0
|
70 end
|
Chris@0
|
71 end
|