]> git.openstreetmap.org Git - rails.git/blob - test/integration/user_terms_seen_test.rb
Don't run the user terms tests unless REQUIRE_TERMS_SEEN is set
[rails.git] / test / integration / user_terms_seen_test.rb
1 require File.dirname(__FILE__) + '/../test_helper'
2
3 class UserTermsSeenTest < ActionController::IntegrationTest
4   fixtures :users
5
6   def auth_header(user, pass)
7     {"HTTP_AUTHORIZATION" => "Basic %s" % Base64.encode64("#{user}:#{pass}")}
8   end
9
10   def test_api_blocked
11     if REQUIRE_TERMS_SEEN
12       user = users(:terms_not_seen_user)
13
14       get "/api/#{API_VERSION}/user/details", nil, auth_header(user.display_name, "test")
15       assert_response :forbidden
16
17       # touch it so that the user has seen the terms
18       user.terms_seen = true
19       user.save
20
21       get "/api/#{API_VERSION}/user/details", nil, auth_header(user.display_name, "test")
22       assert_response :success
23     end
24   end
25
26   def test_terms_presented_at_login
27     if REQUIRE_TERMS_SEEN
28       user = users(:terms_not_seen_user)
29
30       # try to log in
31       get_via_redirect "/login"
32       assert_response :success
33       assert_template 'user/login'
34       post "/login", {'user[email]' => user.email, 'user[password]' => 'test', :referer => "/"}
35       assert_response :redirect
36       # but now we need to look at the terms
37       assert_redirected_to "controller" => "user", "action" => "terms", :referer => "/"
38       follow_redirect!
39       assert_response :success
40
41       # don't agree to the terms, but hit decline
42
43       # should be carried through to a normal login
44     end
45   end
46
47 end
48
49