]> git.openstreetmap.org Git - rails.git/blob - test/system/user_blocks_test.rb
Merge remote-tracking branch 'upstream/pull/4996'
[rails.git] / test / system / user_blocks_test.rb
1 require "application_system_test_case"
2
3 class ReportNoteTest < ApplicationSystemTestCase
4   test "revoke all link is absent for anonymous users when viewed user has active blocks" do
5     blocked_user = create(:user)
6     create(:user_block, :user => blocked_user)
7
8     visit user_path(blocked_user)
9     assert_no_link "Revoke all blocks"
10   end
11
12   test "revoke all link is absent for regular users when viewed user has active blocks" do
13     blocked_user = create(:user)
14     create(:user_block, :user => blocked_user)
15     sign_in_as(create(:user))
16
17     visit user_path(blocked_user)
18     assert_no_link "Revoke all blocks"
19   end
20
21   test "revoke all link is absent for moderators when viewed user has no active blocks" do
22     blocked_user = create(:user)
23     create(:user_block, :expired, :user => blocked_user)
24     sign_in_as(create(:moderator_user))
25
26     visit user_path(blocked_user)
27     assert_no_link "Revoke all blocks"
28   end
29
30   test "revoke all page has no controls when viewed user has no active blocks" do
31     blocked_user = create(:user)
32     sign_in_as(create(:moderator_user))
33
34     visit revoke_all_user_blocks_path(blocked_user)
35     assert_title "Revoking all blocks on #{blocked_user.display_name}"
36     assert_text "Revoking all blocks on #{blocked_user.display_name}"
37     assert_no_button "Revoke!"
38   end
39
40   test "revoke all link is present and working for moderators when viewed user has one active block" do
41     blocked_user = create(:user)
42     create(:user_block, :user => blocked_user)
43     sign_in_as(create(:moderator_user))
44
45     visit user_path(blocked_user)
46     assert_link "Revoke all blocks"
47
48     click_on "Revoke all blocks"
49     assert_title "Revoking all blocks on #{blocked_user.display_name}"
50     assert_text "Revoking all blocks on #{blocked_user.display_name}"
51     assert_unchecked_field "Are you sure you wish to revoke 1 active block?"
52     assert_button "Revoke!"
53   end
54
55   test "revoke all link is present and working for moderators when viewed user has multiple active blocks" do
56     blocked_user = create(:user)
57     create(:user_block, :user => blocked_user)
58     create(:user_block, :user => blocked_user)
59     create(:user_block, :expired, :user => blocked_user)
60     sign_in_as(create(:moderator_user))
61
62     visit user_path(blocked_user)
63     assert_link "Revoke all blocks"
64
65     click_on "Revoke all blocks"
66     assert_title "Revoking all blocks on #{blocked_user.display_name}"
67     assert_text "Revoking all blocks on #{blocked_user.display_name}"
68     assert_unchecked_field "Are you sure you wish to revoke 2 active blocks?"
69     assert_button "Revoke!"
70   end
71 end