Mercurial > hg > soundsoftware-site
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 |