comparison test/integration/api_test/issue_relations_test.rb @ 1115:433d4f72a19b redmine-2.2

Update to Redmine SVN revision 11137 on 2.2-stable branch
author Chris Cannam
date Mon, 07 Jan 2013 12:01:42 +0000
parents cbb26bc654de
children 622f24f53b42 261b3d9a4903
comparison
equal deleted inserted replaced
929:5f33065ddc4b 1115:433d4f72a19b
1 # Redmine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006-2011 Jean-Philippe Lang 2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
33 end 33 end
34 34
35 context "/issues/:issue_id/relations" do 35 context "/issues/:issue_id/relations" do
36 context "GET" do 36 context "GET" do
37 should "return issue relations" do 37 should "return issue relations" do
38 get '/issues/9/relations.xml', {}, :authorization => credentials('jsmith') 38 get '/issues/9/relations.xml', {}, credentials('jsmith')
39 39
40 assert_response :success 40 assert_response :success
41 assert_equal 'application/xml', @response.content_type 41 assert_equal 'application/xml', @response.content_type
42 42
43 assert_tag :tag => 'relations', 43 assert_tag :tag => 'relations',
53 end 53 end
54 54
55 context "POST" do 55 context "POST" do
56 should "create a relation" do 56 should "create a relation" do
57 assert_difference('IssueRelation.count') do 57 assert_difference('IssueRelation.count') do
58 post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'relates'}}, :authorization => credentials('jsmith') 58 post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'relates'}}, credentials('jsmith')
59 end 59 end
60 60
61 relation = IssueRelation.first(:order => 'id DESC') 61 relation = IssueRelation.first(:order => 'id DESC')
62 assert_equal 2, relation.issue_from_id 62 assert_equal 2, relation.issue_from_id
63 assert_equal 7, relation.issue_to_id 63 assert_equal 7, relation.issue_to_id
69 end 69 end
70 70
71 context "with failure" do 71 context "with failure" do
72 should "return the errors" do 72 should "return the errors" do
73 assert_no_difference('IssueRelation.count') do 73 assert_no_difference('IssueRelation.count') do
74 post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'foo'}}, :authorization => credentials('jsmith') 74 post '/issues/2/relations.xml', {:relation => {:issue_to_id => 7, :relation_type => 'foo'}}, credentials('jsmith')
75 end 75 end
76 76
77 assert_response :unprocessable_entity 77 assert_response :unprocessable_entity
78 assert_tag :errors, :child => {:tag => 'error', :content => 'relation_type is not included in the list'} 78 assert_tag :errors, :child => {:tag => 'error', :content => /relation_type is not included in the list/}
79 end 79 end
80 end 80 end
81 end 81 end
82 end 82 end
83 83
84 context "/relations/:id" do 84 context "/relations/:id" do
85 context "GET" do 85 context "GET" do
86 should "return the relation" do 86 should "return the relation" do
87 get '/relations/2.xml', {}, :authorization => credentials('jsmith') 87 get '/relations/2.xml', {}, credentials('jsmith')
88 88
89 assert_response :success 89 assert_response :success
90 assert_equal 'application/xml', @response.content_type 90 assert_equal 'application/xml', @response.content_type
91 assert_tag 'relation', :child => {:tag => 'id', :content => '2'} 91 assert_tag 'relation', :child => {:tag => 'id', :content => '2'}
92 end 92 end
93 end 93 end
94 94
95 context "DELETE" do 95 context "DELETE" do
96 should "delete the relation" do 96 should "delete the relation" do
97 assert_difference('IssueRelation.count', -1) do 97 assert_difference('IssueRelation.count', -1) do
98 delete '/relations/2.xml', {}, :authorization => credentials('jsmith') 98 delete '/relations/2.xml', {}, credentials('jsmith')
99 end 99 end
100 100
101 assert_response :ok 101 assert_response :ok
102 assert_equal '', @response.body
102 assert_nil IssueRelation.find_by_id(2) 103 assert_nil IssueRelation.find_by_id(2)
103 end 104 end
104 end 105 end
105 end 106 end
106
107 def credentials(user, password=nil)
108 ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
109 end
110 end 107 end