]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5459'
authorTom Hughes <tom@compton.nu>
Tue, 7 Jan 2025 19:08:13 +0000 (19:08 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 7 Jan 2025 19:08:13 +0000 (19:08 +0000)
1  2 
config/routes.rb
test/controllers/users_controller_test.rb

diff --combined config/routes.rb
index 6d6acc7db34654bfe024a1f1acb556476b8208f2,e623a0738eb24f0978cf014157a6d3c879c13d49..d89068c14002c7398b0a80128c1e96d1628a4006
@@@ -182,8 -182,6 +182,6 @@@ OpenStreetMap::Application.routes.draw 
    get "/key" => "site#key"
    get "/id" => "site#id"
    get "/query" => "browse#query"
-   get "/user/new" => "users#new"
-   post "/user/new" => "users#create"
    get "/user/terms" => "users#terms"
    post "/user/save" => "users#save"
    post "/user/:display_name/confirm/resend" => "confirmations#confirm_resend", :as => :user_confirm_resend
    post "/diary_comments/:comment/unhide" => "diary_comments#unhide", :comment => /\d+/, :as => :unhide_diary_comment
  
    # user pages
-   resources :users, :path => "user", :param => :display_name, :only => [:show, :destroy] do
+   resources :users, :path => "user", :param => :display_name, :only => [:new, :create, :show, :destroy] do
      resource :role, :controller => "user_roles", :path => "roles/:role", :only => [:create, :destroy]
      scope :module => :users do
        resource :issued_blocks, :path => "blocks_by", :only => :show
    get "/user/:display_name/account", :to => redirect(:path => "/account/edit")
    post "/user/:display_name/set_status" => "users#set_status", :as => :set_status_user
  
 -  resource :account, :only => [:edit, :update, :destroy]
 -
 -  namespace :account do
 -    resource :deletion, :only => [:show]
 +  resource :account, :only => [:edit, :update, :destroy] do
 +    resource :deletion, :module => :accounts, :only => :show
    end
 +
    resource :dashboard, :only => [:show]
    resource :preferences, :only => [:show, :edit, :update]
    resource :profile, :only => [:edit, :update]
      post :mark
      patch :unmute
  
 -    match :reply, :via => [:get, :post]
 +    resource :reply, :module => :messages, :path_names => { :new => "new" }, :only => :new
    end
    namespace :messages, :path => "/messages" do
      resource :inbox, :only => :show
    get "/user/:display_name/outbox", :to => redirect(:path => "/messages/outbox")
    get "/message/new/:display_name", :to => redirect(:path => "/messages/new/%{display_name}")
    get "/message/read/:message_id", :to => redirect(:path => "/messages/%{message_id}")
 +  get "/messages/:message_id/reply", :to => redirect(:path => "/messages/%{message_id}/reply/new")
  
    # muting users
    scope "/user/:display_name" do
index 7b554711f6e7dc28f52e4d695817332aba618d65,10875b068b9d586c8c81ae38b438364d3ad33447..e021513da6fdce0552c09900c6f10b7cb2d21bb8
@@@ -10,7 -10,7 +10,7 @@@ class UsersControllerTest < ActionDispa
      )
  
      assert_routing(
-       { :path => "/user/new", :method => :post },
+       { :path => "/user", :method => :post },
        { :controller => "users", :action => "create" }
      )
  
    end
  
    # The user creation page loads
-   def test_new_view
-     get user_new_path
-     assert_redirected_to user_new_path(:cookie_test => "true")
+   def test_new
+     get new_user_path
+     assert_redirected_to new_user_path(:cookie_test => "true")
  
-     get user_new_path, :params => { :cookie_test => "true" }
+     get new_user_path, :params => { :cookie_test => "true" }
      assert_response :success
  
 +    assert_no_match(/img-src \* data:;/, @response.headers["Content-Security-Policy-Report-Only"])
 +
      assert_select "html", :count => 1 do
        assert_select "head", :count => 1 do
          assert_select "title", :text => /Sign Up/, :count => 1
        end
        assert_select "body", :count => 1 do
          assert_select "div#content", :count => 1 do
-           assert_select "form[action='/user/new'][method='post']", :count => 1 do
+           assert_select "form[action='/user'][method='post']", :count => 1 do
              assert_select "input[id='user_email']", :count => 1
              assert_select "input[id='user_display_name']", :count => 1
              assert_select "input[id='user_pass_crypt'][type='password']", :count => 1
      end
    end
  
-   def test_new_view_logged_in
+   def test_new_logged_in
      session_for(create(:user))
  
-     get user_new_path
+     get new_user_path
      assert_redirected_to root_path
  
-     get user_new_path, :params => { :referer => "/test" }
+     get new_user_path, :params => { :referer => "/test" }
      assert_redirected_to "/test"
    end
  
-   def test_new_success
+   def test_create_success
      user = build(:user, :pending)
  
      assert_difference "User.count", 1 do
        assert_difference "ActionMailer::Base.deliveries.size", 1 do
          perform_enqueued_jobs do
-           post user_new_path, :params => { :user => user.attributes }
+           post users_path, :params => { :user => user.attributes }
          end
        end
      end
      ActionMailer::Base.deliveries.clear
    end
  
-   def test_new_duplicate_email
+   def test_create_duplicate_email
      user = build(:user, :pending)
      create(:user, :email => user.email)
  
      assert_no_difference "User.count" do
        assert_no_difference "ActionMailer::Base.deliveries.size" do
          perform_enqueued_jobs do
-           post user_new_path, :params => { :user => user.attributes }
+           post users_path, :params => { :user => user.attributes }
          end
        end
      end
      assert_select "form > div > input.is-invalid#user_email"
    end
  
-   def test_new_duplicate_email_uppercase
+   def test_create_duplicate_email_uppercase
      user = build(:user, :pending)
      create(:user, :email => user.email.upcase)
  
      assert_no_difference "User.count" do
        assert_no_difference "ActionMailer::Base.deliveries.size" do
          perform_enqueued_jobs do
-           post user_new_path, :params => { :user => user.attributes }
+           post users_path, :params => { :user => user.attributes }
          end
        end
      end
      assert_select "form > div > input.is-invalid#user_email"
    end
  
-   def test_new_duplicate_name
+   def test_create_duplicate_name
      user = build(:user, :pending)
      create(:user, :display_name => user.display_name)
  
      assert_no_difference "User.count" do
        assert_no_difference "ActionMailer::Base.deliveries.size" do
          perform_enqueued_jobs do
-           post user_new_path, :params => { :user => user.attributes }
+           post users_path, :params => { :user => user.attributes }
          end
        end
      end
      assert_select "form > div > input.is-invalid#user_display_name"
    end
  
-   def test_new_duplicate_name_uppercase
+   def test_create_duplicate_name_uppercase
      user = build(:user, :pending)
      create(:user, :display_name => user.display_name.upcase)
  
      assert_no_difference "User.count" do
        assert_no_difference "ActionMailer::Base.deliveries.size" do
          perform_enqueued_jobs do
-           post user_new_path, :params => { :user => user.attributes }
+           post users_path, :params => { :user => user.attributes }
          end
        end
      end
      assert_select "form > div > input.is-invalid#user_display_name"
    end
  
-   def test_new_blocked_domain
+   def test_create_blocked_domain
      user = build(:user, :pending, :email => "user@example.net")
  
      # Now block that domain
      assert_no_difference "User.count" do
        assert_no_difference "ActionMailer::Base.deliveries.size" do
          perform_enqueued_jobs do
-           post user_new_path, :params => { :user => user.attributes }
+           post users_path, :params => { :user => user.attributes }
          end
        end
      end
      assert_template "blocked"
    end
  
-   def test_save_referer_params
+   def test_create_referer_params
      user = build(:user, :pending)
  
      assert_difference "User.count", 1 do
        assert_difference "ActionMailer::Base.deliveries.size", 1 do
-         post user_new_path, :params => { :user => user.attributes, :referer => "/edit?editor=id#map=1/2/3" }
+         post users_path, :params => { :user => user.attributes, :referer => "/edit?editor=id#map=1/2/3" }
          assert_enqueued_with :job => ActionMailer::MailDeliveryJob,
                               :args => proc { |args| args[3][:args][2] == welcome_path(:editor => "id", :zoom => 1, :lat => 2, :lon => 3) }
          perform_enqueued_jobs
  
      get user_path(user)
      assert_response :success
 +    assert_match(/img-src \* data:;/, @response.headers["Content-Security-Policy-Report-Only"])
      assert_select "div.content-heading" do
        assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
        assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/traces']", 1