1 # frozen_string_literal: true
6 class StatusesControllerTest < ActionDispatch::IntegrationTest
8 # test all routes which lead to this controller
11 { :path => "/user/username/status", :method => :put },
12 { :controller => "users/statuses", :action => "update", :user_display_name => "username" }
19 # Try without logging in
20 put user_status_path(user, :event => "confirm")
21 assert_response :forbidden
23 # Now try as a normal user
25 put user_status_path(user, :event => "confirm")
26 assert_redirected_to :controller => "/errors", :action => :forbidden
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
36 user = create(:user, :home_lat => 12.1, :home_lon => 12.1, :description => "test")
38 # Try without logging in
39 put user_status_path(user, :event => "soft_destroy")
40 assert_response :forbidden
42 # Now try as a normal user
44 put user_status_path(user, :event => "soft_destroy")
45 assert_redirected_to :controller => "/errors", :action => :forbidden
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)
52 # Check that the user was deleted properly
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