]> git.openstreetmap.org Git - rails.git/blob - test/controllers/api/user_blocks_controller_test.rb
7c35ffb0e4e4951eb7262ce6d199a0c961d9d2c2
[rails.git] / test / controllers / api / user_blocks_controller_test.rb
1 require "test_helper"
2
3 module Api
4   class UserBlocksControllerTest < ActionDispatch::IntegrationTest
5     def test_routes
6       assert_routing(
7         { :path => "/api/0.6/user_blocks/1", :method => :get },
8         { :controller => "api/user_blocks", :action => "show", :id => "1" }
9       )
10       assert_routing(
11         { :path => "/api/0.6/user_blocks/1.json", :method => :get },
12         { :controller => "api/user_blocks", :action => "show", :id => "1", :format => "json" }
13       )
14     end
15
16     def test_show
17       blocked_user = create(:user)
18       creator_user = create(:moderator_user)
19       block = create(:user_block, :user => blocked_user, :creator => creator_user, :reason => "because running tests")
20
21       get api_user_block_path(block)
22       assert_response :success
23       assert_select "osm>user_block", 1 do
24         assert_select ">@id", block.id.to_s
25         assert_select ">user", 1
26         assert_select ">user>@uid", blocked_user.id.to_s
27         assert_select ">creator", 1
28         assert_select ">creator>@uid", creator_user.id.to_s
29         assert_select ">revoker", 0
30         assert_select ">reason", 1
31         assert_select ">reason", "because running tests"
32       end
33
34       get api_user_block_path(block, :format => "json")
35       assert_response :success
36       js = ActiveSupport::JSON.decode(@response.body)
37       assert_not_nil js
38       assert_equal block.id, js["user_block"]["id"]
39     end
40
41     def test_show_not_found
42       get api_user_block_path(123)
43       assert_response :not_found
44       assert_equal "text/plain", @response.media_type
45     end
46   end
47 end