]> git.openstreetmap.org Git - rails.git/blob - test/integration/user_blocks_test.rb
Add frozen_string_literal comments to ruby files
[rails.git] / test / integration / user_blocks_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 class UserBlocksTest < ActionDispatch::IntegrationTest
6   def test_api_blocked
7     blocked_user = create(:user)
8
9     get "/api/#{Settings.api_version}/user/details"
10     assert_response :unauthorized
11
12     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
13     assert_response :success
14
15     # now block the user
16     UserBlock.create(
17       :user_id => blocked_user.id,
18       :creator_id => create(:moderator_user).id,
19       :reason => "testing",
20       :ends_at => Time.now.utc + 5.minutes,
21       :deactivates_at => Time.now.utc + 5.minutes
22     )
23     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
24     assert_response :forbidden
25   end
26
27   def test_api_revoke
28     blocked_user = create(:user)
29     moderator = create(:moderator_user)
30
31     block = UserBlock.create(
32       :user_id => blocked_user.id,
33       :creator_id => moderator.id,
34       :reason => "testing",
35       :ends_at => Time.now.utc + 5.minutes,
36       :deactivates_at => Time.now.utc + 5.minutes
37     )
38     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
39     assert_response :forbidden
40
41     # revoke the ban
42     get "/login"
43     assert_response :redirect
44     follow_redirect!
45     assert_response :success
46     post "/login", :params => { "username" => moderator.email, "password" => "test", :referer => "/user_blocks/#{block.id}/edit" }
47     assert_response :redirect
48     follow_redirect!
49     assert_response :success
50     assert_template "user_blocks/edit"
51     put "/user_blocks/#{block.id}", :params => { :user_block_period => "0",
52                                                  :user_block => { :needs_view => false, :reason => "Unblocked" } }
53     assert_response :redirect
54     follow_redirect!
55     assert_response :success
56     assert_template "user_blocks/show"
57     reset!
58
59     # access the API again. this time it should work
60     get "/api/#{Settings.api_version}/user/details", :headers => bearer_authorization_header(blocked_user)
61     assert_response :success
62   end
63 end