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