comparison test/integration/api_test/disabled_rest_api_test.rb @ 37:94944d00e43c

* Update to SVN trunk rev 4411
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Fri, 19 Nov 2010 13:24:41 +0000
parents
children af80e5618e9b
comparison
equal deleted inserted replaced
22:40f7cfd4df19 37:94944d00e43c
1 require "#{File.dirname(__FILE__)}/../../test_helper"
2
3 class ApiTest::DisabledRestApiTest < ActionController::IntegrationTest
4 fixtures :all
5
6 def setup
7 Setting.rest_api_enabled = '0'
8 Setting.login_required = '1'
9 end
10
11 def teardown
12 Setting.rest_api_enabled = '1'
13 Setting.login_required = '0'
14 end
15
16 # Using the NewsController because it's a simple API.
17 context "get /news with the API disabled" do
18
19 context "in :xml format" do
20 context "with a valid api token" do
21 setup do
22 @user = User.generate_with_protected!
23 @token = Token.generate!(:user => @user, :action => 'api')
24 get "/news.xml?key=#{@token.value}"
25 end
26
27 should_respond_with :unauthorized
28 should_respond_with_content_type :xml
29 should "not login as the user" do
30 assert_equal User.anonymous, User.current
31 end
32 end
33
34 context "with a valid HTTP authentication" do
35 setup do
36 @user = User.generate_with_protected!(:password => 'my_password', :password_confirmation => 'my_password')
37 @authorization = ActionController::HttpAuthentication::Basic.encode_credentials(@user.login, 'my_password')
38 get "/news.xml", nil, :authorization => @authorization
39 end
40
41 should_respond_with :unauthorized
42 should_respond_with_content_type :xml
43 should "not login as the user" do
44 assert_equal User.anonymous, User.current
45 end
46 end
47
48 context "with a valid HTTP authentication using the API token" do
49 setup do
50 @user = User.generate_with_protected!
51 @token = Token.generate!(:user => @user, :action => 'api')
52 @authorization = ActionController::HttpAuthentication::Basic.encode_credentials(@token.value, 'X')
53 get "/news.xml", nil, :authorization => @authorization
54 end
55
56 should_respond_with :unauthorized
57 should_respond_with_content_type :xml
58 should "not login as the user" do
59 assert_equal User.anonymous, User.current
60 end
61 end
62 end
63
64 context "in :json format" do
65 context "with a valid api token" do
66 setup do
67 @user = User.generate_with_protected!
68 @token = Token.generate!(:user => @user, :action => 'api')
69 get "/news.json?key=#{@token.value}"
70 end
71
72 should_respond_with :unauthorized
73 should_respond_with_content_type :json
74 should "not login as the user" do
75 assert_equal User.anonymous, User.current
76 end
77 end
78
79 context "with a valid HTTP authentication" do
80 setup do
81 @user = User.generate_with_protected!(:password => 'my_password', :password_confirmation => 'my_password')
82 @authorization = ActionController::HttpAuthentication::Basic.encode_credentials(@user.login, 'my_password')
83 get "/news.json", nil, :authorization => @authorization
84 end
85
86 should_respond_with :unauthorized
87 should_respond_with_content_type :json
88 should "not login as the user" do
89 assert_equal User.anonymous, User.current
90 end
91 end
92
93 context "with a valid HTTP authentication using the API token" do
94 setup do
95 @user = User.generate_with_protected!
96 @token = Token.generate!(:user => @user, :action => 'api')
97 @authorization = ActionController::HttpAuthentication::Basic.encode_credentials(@token.value, 'DoesNotMatter')
98 get "/news.json", nil, :authorization => @authorization
99 end
100
101 should_respond_with :unauthorized
102 should_respond_with_content_type :json
103 should "not login as the user" do
104 assert_equal User.anonymous, User.current
105 end
106 end
107
108 end
109 end
110 end