]> git.openstreetmap.org Git - rails.git/blob - test/controllers/users/statuses_controller_test.rb
Add frozen_string_literal comments to ruby files
[rails.git] / test / controllers / users / statuses_controller_test.rb
1 # frozen_string_literal: true
2
3 require "test_helper"
4
5 module Users
6   class StatusesControllerTest < ActionDispatch::IntegrationTest
7     ##
8     # test all routes which lead to this controller
9     def test_routes
10       assert_routing(
11         { :path => "/user/username/status", :method => :put },
12         { :controller => "users/statuses", :action => "update", :user_display_name => "username" }
13       )
14     end
15
16     def test_update
17       user = create(:user)
18
19       # Try without logging in
20       put user_status_path(user, :event => "confirm")
21       assert_response :forbidden
22
23       # Now try as a normal user
24       session_for(user)
25       put user_status_path(user, :event => "confirm")
26       assert_redirected_to :controller => "/errors", :action => :forbidden
27
28       # Finally try as an administrator
29       session_for(create(:administrator_user))
30       put user_status_path(user, :event => "confirm")
31       assert_redirected_to user_path(user)
32       assert_equal "confirmed", User.find(user.id).status
33     end
34
35     def test_destroy
36       user = create(:user, :home_lat => 12.1, :home_lon => 12.1, :description => "test")
37
38       # Try without logging in
39       put user_status_path(user, :event => "soft_destroy")
40       assert_response :forbidden
41
42       # Now try as a normal user
43       session_for(user)
44       put user_status_path(user, :event => "soft_destroy")
45       assert_redirected_to :controller => "/errors", :action => :forbidden
46
47       # Finally try as an administrator
48       session_for(create(:administrator_user))
49       put user_status_path(user, :event => "soft_destroy")
50       assert_redirected_to user_path(user)
51
52       # Check that the user was deleted properly
53       user.reload
54       assert_equal "user_#{user.id}", user.display_name
55       assert_equal "", user.description
56       assert_nil user.home_lat
57       assert_nil user.home_lon
58       assert_not user.avatar.attached?
59       assert_not user.email_valid
60       assert_nil user.new_email
61       assert_nil user.auth_provider
62       assert_nil user.auth_uid
63       assert_equal "deleted", user.status
64     end
65   end
66 end