]> git.openstreetmap.org Git - rails.git/blob - test/controllers/api/user_blocks/active_lists_controller_test.rb
Output active blocks list
[rails.git] / test / controllers / api / user_blocks / active_lists_controller_test.rb
1 require "test_helper"
2
3 module Api
4   module UserBlocks
5     class ActiveListsControllerTest < ActionDispatch::IntegrationTest
6       ##
7       # test all routes which lead to this controller
8       def test_routes
9         assert_routing(
10           { :path => "/api/0.6/user/blocks/active", :method => :get },
11           { :controller => "api/user_blocks/active_lists", :action => "show" }
12         )
13         assert_routing(
14           { :path => "/api/0.6/user/blocks/active.json", :method => :get },
15           { :controller => "api/user_blocks/active_lists", :action => "show", :format => "json" }
16         )
17       end
18
19       def test_show_no_auth_header
20         get api_user_blocks_active_list_path
21         assert_response :unauthorized
22       end
23
24       def test_show_no_permission
25         user = create(:user)
26         user_auth_header = bearer_authorization_header(user, :scopes => %w[])
27
28         get api_user_blocks_active_list_path, :headers => user_auth_header
29         assert_response :forbidden
30       end
31
32       def test_show_empty
33         user = create(:user)
34         user_auth_header = bearer_authorization_header(user, :scopes => %w[read_prefs])
35         create(:user_block, :expired, :user => user)
36
37         get api_user_blocks_active_list_path, :headers => user_auth_header
38         assert_response :success
39         assert_dom "user_block", :count => 0
40       end
41
42       def test_show
43         user = create(:moderator_user)
44         user_auth_header = bearer_authorization_header(user, :scopes => %w[read_prefs])
45         create(:user_block, :expired, :user => user)
46         block0 = create(:user_block, :user => user)
47         block1 = create(:user_block, :user => user)
48         create(:user_block)
49         create(:user_block, :creator => user)
50
51         get api_user_blocks_active_list_path, :headers => user_auth_header
52         assert_response :success
53         assert_dom "user_block", :count => 2 do |dom_blocks|
54           assert_dom dom_blocks[0], "> @id", block1.id.to_s
55           assert_dom dom_blocks[1], "> @id", block0.id.to_s
56         end
57       end
58
59       def test_show_json
60         user = create(:moderator_user)
61         user_auth_header = bearer_authorization_header(user, :scopes => %w[read_prefs])
62         create(:user_block, :expired, :user => user)
63         block0 = create(:user_block, :user => user)
64         block1 = create(:user_block, :user => user)
65         create(:user_block)
66         create(:user_block, :creator => user)
67
68         get api_user_blocks_active_list_path(:format => "json"), :headers => user_auth_header
69         assert_response :success
70         js = ActiveSupport::JSON.decode(@response.body)
71         assert_not_nil js
72         assert_equal 2, js["user_blocks"].count
73         assert_equal block1.id, js["user_blocks"][0]["id"]
74         assert_equal block0.id, js["user_blocks"][1]["id"]
75       end
76     end
77   end
78 end