annotate .svn/pristine/9c/9c9aeef26ca0ef44d1a985d89461dafc7a3e74a3.svn-base @ 1082:997f6d7738f7 bug_531

In repo controller entry action, show the page for the file even if it's binary (so user still has access to history etc links). This makes it possible to use the entry action as the default when a file is clicked on
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 22 Nov 2012 18:04:17 +0000
parents cbb26bc654de
children
rev   line source
Chris@909 1 # Redmine - project management software
Chris@909 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
Chris@909 3 #
Chris@909 4 # This program is free software; you can redistribute it and/or
Chris@909 5 # modify it under the terms of the GNU General Public License
Chris@909 6 # as published by the Free Software Foundation; either version 2
Chris@909 7 # of the License, or (at your option) any later version.
Chris@909 8 #
Chris@909 9 # This program is distributed in the hope that it will be useful,
Chris@909 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@909 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@909 12 # GNU General Public License for more details.
Chris@909 13 #
Chris@909 14 # You should have received a copy of the GNU General Public License
Chris@909 15 # along with this program; if not, write to the Free Software
Chris@909 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Chris@909 17
Chris@909 18 require File.expand_path('../../../test_helper', __FILE__)
Chris@909 19
Chris@909 20 class ApiTest::IssueCategoriesTest < ActionController::IntegrationTest
Chris@909 21 fixtures :projects, :users, :issue_categories, :issues,
Chris@909 22 :roles,
Chris@909 23 :member_roles,
Chris@909 24 :members,
Chris@909 25 :enabled_modules
Chris@909 26
Chris@909 27 def setup
Chris@909 28 Setting.rest_api_enabled = '1'
Chris@909 29 end
Chris@909 30
Chris@909 31 context "GET /projects/:project_id/issue_categories.xml" do
Chris@909 32 should "return issue categories" do
Chris@909 33 get '/projects/1/issue_categories.xml', {}, :authorization => credentials('jsmith')
Chris@909 34 assert_response :success
Chris@909 35 assert_equal 'application/xml', @response.content_type
Chris@909 36 assert_tag :tag => 'issue_categories',
Chris@909 37 :child => {:tag => 'issue_category', :child => {:tag => 'id', :content => '2'}}
Chris@909 38 end
Chris@909 39 end
Chris@909 40
Chris@909 41 context "GET /issue_categories/2.xml" do
Chris@909 42 should "return requested issue category" do
Chris@909 43 get '/issue_categories/2.xml', {}, :authorization => credentials('jsmith')
Chris@909 44 assert_response :success
Chris@909 45 assert_equal 'application/xml', @response.content_type
Chris@909 46 assert_tag :tag => 'issue_category',
Chris@909 47 :child => {:tag => 'id', :content => '2'}
Chris@909 48 end
Chris@909 49 end
Chris@909 50
Chris@909 51 context "POST /projects/:project_id/issue_categories.xml" do
Chris@909 52 should "return create issue category" do
Chris@909 53 assert_difference 'IssueCategory.count' do
Chris@909 54 post '/projects/1/issue_categories.xml', {:issue_category => {:name => 'API'}}, :authorization => credentials('jsmith')
Chris@909 55 end
Chris@909 56 assert_response :created
Chris@909 57 assert_equal 'application/xml', @response.content_type
Chris@909 58
Chris@909 59 category = IssueCategory.first(:order => 'id DESC')
Chris@909 60 assert_equal 'API', category.name
Chris@909 61 assert_equal 1, category.project_id
Chris@909 62 end
Chris@909 63
Chris@909 64 context "with invalid parameters" do
Chris@909 65 should "return errors" do
Chris@909 66 assert_no_difference 'IssueCategory.count' do
Chris@909 67 post '/projects/1/issue_categories.xml', {:issue_category => {:name => ''}}, :authorization => credentials('jsmith')
Chris@909 68 end
Chris@909 69 assert_response :unprocessable_entity
Chris@909 70 assert_equal 'application/xml', @response.content_type
Chris@909 71
Chris@909 72 assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
Chris@909 73 end
Chris@909 74 end
Chris@909 75 end
Chris@909 76
Chris@909 77 context "PUT /issue_categories/2.xml" do
Chris@909 78 context "with valid parameters" do
Chris@909 79 should "update issue category" do
Chris@909 80 assert_no_difference 'IssueCategory.count' do
Chris@909 81 put '/issue_categories/2.xml', {:issue_category => {:name => 'API Update'}}, :authorization => credentials('jsmith')
Chris@909 82 end
Chris@909 83 assert_response :ok
Chris@909 84 assert_equal 'API Update', IssueCategory.find(2).name
Chris@909 85 end
Chris@909 86 end
Chris@909 87
Chris@909 88 context "with invalid parameters" do
Chris@909 89 should "return errors" do
Chris@909 90 assert_no_difference 'IssueCategory.count' do
Chris@909 91 put '/issue_categories/2.xml', {:issue_category => {:name => ''}}, :authorization => credentials('jsmith')
Chris@909 92 end
Chris@909 93 assert_response :unprocessable_entity
Chris@909 94 assert_equal 'application/xml', @response.content_type
Chris@909 95
Chris@909 96 assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
Chris@909 97 end
Chris@909 98 end
Chris@909 99 end
Chris@909 100
Chris@909 101 context "DELETE /issue_categories/1.xml" do
Chris@909 102 should "destroy issue categories" do
Chris@909 103 assert_difference 'IssueCategory.count', -1 do
Chris@909 104 delete '/issue_categories/1.xml', {}, :authorization => credentials('jsmith')
Chris@909 105 end
Chris@909 106 assert_response :ok
Chris@909 107 assert_nil IssueCategory.find_by_id(1)
Chris@909 108 end
Chris@909 109
Chris@909 110 should "reassign issues with :reassign_to_id param" do
Chris@909 111 issue_count = Issue.count(:conditions => {:category_id => 1})
Chris@909 112 assert issue_count > 0
Chris@909 113
Chris@909 114 assert_difference 'IssueCategory.count', -1 do
Chris@909 115 assert_difference 'Issue.count(:conditions => {:category_id => 2})', 3 do
Chris@909 116 delete '/issue_categories/1.xml', {:reassign_to_id => 2}, :authorization => credentials('jsmith')
Chris@909 117 end
Chris@909 118 end
Chris@909 119 assert_response :ok
Chris@909 120 assert_nil IssueCategory.find_by_id(1)
Chris@909 121 end
Chris@909 122 end
Chris@909 123
Chris@909 124 def credentials(user, password=nil)
Chris@909 125 ActionController::HttpAuthentication::Basic.encode_credentials(user, password || user)
Chris@909 126 end
Chris@909 127 end