summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-10-17 17:29:27 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-10-17 17:29:27 +0000
commitd62b90db7327be488007d382f84c469f9fbe4ffe (patch)
tree153cfe41553b040154ecc89605b797864a76f3c1 /test
parentfcb22595d0e87a2d04fb0210c775efdab6cfffa6 (diff)
downloadredmine-d62b90db7327be488007d382f84c469f9fbe4ffe.tar.gz
redmine-d62b90db7327be488007d382f84c469f9fbe4ffe.zip
Makes enumerations available through the REST API.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10664 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/functional/enumerations_controller_test.rb10
-rw-r--r--test/integration/api_test/enumerations_test.rb44
-rw-r--r--test/integration/routing/enumerations_test.rb4
3 files changed, 56 insertions, 2 deletions
diff --git a/test/functional/enumerations_controller_test.rb b/test/functional/enumerations_controller_test.rb
index b13fc86f7..dba0720d6 100644
--- a/test/functional/enumerations_controller_test.rb
+++ b/test/functional/enumerations_controller_test.rb
@@ -30,6 +30,12 @@ class EnumerationsControllerTest < ActionController::TestCase
assert_template 'index'
end
+ def test_index_should_require_admin
+ @request.session[:user_id] = nil
+ get :index
+ assert_response 302
+ end
+
def test_new
get :new, :type => 'IssuePriority'
assert_response :success
@@ -48,7 +54,7 @@ class EnumerationsControllerTest < ActionController::TestCase
assert_difference 'IssuePriority.count' do
post :create, :enumeration => {:type => 'IssuePriority', :name => 'Lowest'}
end
- assert_redirected_to '/enumerations?type=IssuePriority'
+ assert_redirected_to '/enumerations'
e = IssuePriority.find_by_name('Lowest')
assert_not_nil e
end
@@ -77,7 +83,7 @@ class EnumerationsControllerTest < ActionController::TestCase
assert_no_difference 'IssuePriority.count' do
put :update, :id => 6, :enumeration => {:type => 'IssuePriority', :name => 'New name'}
end
- assert_redirected_to '/enumerations?type=IssuePriority'
+ assert_redirected_to '/enumerations'
e = IssuePriority.find(6)
assert_equal 'New name', e.name
end
diff --git a/test/integration/api_test/enumerations_test.rb b/test/integration/api_test/enumerations_test.rb
new file mode 100644
index 000000000..fa315596d
--- /dev/null
+++ b/test/integration/api_test/enumerations_test.rb
@@ -0,0 +1,44 @@
+# Redmine - project management software
+# Copyright (C) 2006-2012 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+require File.expand_path('../../../test_helper', __FILE__)
+
+class ApiTest::EnumerationsTest < ActionController::IntegrationTest
+ fixtures :enumerations
+
+ def setup
+ Setting.rest_api_enabled = '1'
+ end
+
+ context "/enumerations/issue_priorities" do
+ context "GET" do
+
+ should "return priorities" do
+ get '/enumerations/issue_priorities.xml'
+
+ assert_response :success
+ assert_equal 'application/xml', response.content_type
+ assert_select 'issue_priorities[type=array]' do
+ assert_select 'issue_priority' do
+ assert_select 'id', :text => '6'
+ assert_select 'name', :text => 'High'
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/test/integration/routing/enumerations_test.rb b/test/integration/routing/enumerations_test.rb
index f9597205c..8f17f23ce 100644
--- a/test/integration/routing/enumerations_test.rb
+++ b/test/integration/routing/enumerations_test.rb
@@ -43,5 +43,9 @@ class RoutingEnumerationsTest < ActionController::IntegrationTest
{ :method => 'delete', :path => "/enumerations/2" },
{ :controller => 'enumerations', :action => 'destroy', :id => '2' }
)
+ assert_routing(
+ { :method => 'get', :path => "/enumerations/issue_priorities.xml" },
+ { :controller => 'enumerations', :action => 'index', :type => 'issue_priorities', :format => 'xml' }
+ )
end
end