From: Tom Hughes Date: Tue, 3 Dec 2024 18:36:23 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/5372' X-Git-Tag: live~526 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/572d1adaae6a8f7100c829ce9d3da4dbf07bb7fd?hp=2d36aa74dbbb29566d2a76c51455b9376bfcc8f2 Merge remote-tracking branch 'upstream/pull/5372' --- diff --git a/Gemfile.lock b/Gemfile.lock index 2b23ab342..d909ddad6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,7 +92,7 @@ GEM autoprefixer-rails (10.4.19.0) execjs (~> 2) aws-eventstream (1.3.0) - aws-partitions (1.1013.0) + aws-partitions (1.1016.0) aws-sdk-core (3.214.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -101,7 +101,7 @@ GEM aws-sdk-kms (1.96.0) aws-sdk-core (~> 3, >= 3.210.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.174.0) + aws-sdk-s3 (1.175.0) aws-sdk-core (~> 3, >= 3.210.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) @@ -196,7 +196,7 @@ GEM sprockets (> 3.0) sprockets-rails tilt - date (3.4.0) + date (3.4.1) debug (1.9.2) irb (~> 1.10) reline (>= 0.3.8) @@ -208,12 +208,12 @@ GEM activerecord (>= 3.0, < 9.0) delayed_job (>= 3.0, < 5) docile (1.4.1) - doorkeeper (5.7.1) + doorkeeper (5.8.0) railties (>= 5) doorkeeper-i18n (5.2.7) doorkeeper (>= 5.2) - doorkeeper-openid_connect (1.8.9) - doorkeeper (>= 5.5, < 5.8) + doorkeeper-openid_connect (1.8.10) + doorkeeper (>= 5.5, < 5.9) jwt (>= 2.5) drb (2.2.1) dry-configurable (1.2.0) @@ -327,7 +327,7 @@ GEM image_size (3.4.0) in_threads (1.6.0) iniparse (1.5.0) - io-console (0.7.2) + io-console (0.8.0) irb (1.14.1) rdoc (>= 4.0.0) reline (>= 0.4.2) @@ -339,7 +339,7 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - json (2.8.2) + json (2.9.0) jwt (2.9.3) base64 kgio (2.11.4) @@ -353,7 +353,7 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.1) + logger (1.6.2) logstasher (2.1.5) activesupport (>= 5.2) request_store @@ -381,7 +381,7 @@ GEM multi_xml (0.7.1) bigdecimal (~> 3.1) nap (1.1.0) - net-http (0.5.0) + net-http (0.6.0) uri net-imap (0.5.1) date @@ -393,7 +393,7 @@ GEM net-smtp (0.5.0) net-protocol nio4r (2.7.4) - nokogiri (1.16.7) + nokogiri (1.16.8) mini_portile2 (~> 2.8.2) racc (~> 1.4) oauth (1.1.0) @@ -462,7 +462,8 @@ GEM popper_js (2.11.8) progress (3.6.0) pstore (0.1.3) - psych (5.2.0) + psych (5.2.1) + date stringio public_suffix (6.0.1) puma (5.6.9) @@ -508,9 +509,9 @@ GEM activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) + rails-html-sanitizer (1.6.1) loofah (~> 2.21) - nokogiri (~> 1.14) + nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) rails-i18n (7.0.10) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) @@ -533,8 +534,8 @@ GEM rchardet (1.8.0) rdoc (6.8.1) psych (>= 4.0.0) - regexp_parser (2.9.2) - reline (0.5.11) + regexp_parser (2.9.3) + reline (0.5.12) io-console (~> 0.5) request_store (1.7.0) rack (>= 1.4) @@ -544,17 +545,17 @@ GEM rouge (4.5.1) rtlcss (0.2.1) mini_racer (>= 0.6.3) - rubocop (1.69.0) + rubocop (1.69.1) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) parser (>= 3.3.0.2) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 2.4, < 3.0) - rubocop-ast (>= 1.36.1, < 2.0) + regexp_parser (>= 2.9.3, < 3.0) + rubocop-ast (>= 1.36.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.36.1) + rubocop-ast (1.36.2) parser (>= 3.3.1.0) rubocop-capybara (2.21.0) rubocop (~> 1.41) @@ -588,7 +589,7 @@ GEM sawyer (0.9.2) addressable (>= 2.3.5) faraday (>= 0.17.3, < 3) - securerandom (0.3.2) + securerandom (0.4.0) selenium-webdriver (4.23.0) base64 (~> 0.2) logger (~> 1.4) @@ -648,7 +649,7 @@ GEM addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.9.0) + webrick (1.9.1) websocket (1.2.11) websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) diff --git a/app/helpers/changesets_helper.rb b/app/helpers/changesets_helper.rb index 970522160..ae953c583 100644 --- a/app/helpers/changesets_helper.rb +++ b/app/helpers/changesets_helper.rb @@ -3,7 +3,7 @@ module ChangesetsHelper if changeset.user.status == "deleted" t("users.no_such_user.deleted") elsif changeset.user.data_public? - link_to changeset.user.display_name, changeset.user + link_to changeset.user.display_name, changeset.user, :class => "mw-100 d-inline-block align-bottom text-truncate text-wrap", :dir => "auto" else t("browse.anonymous") end diff --git a/test/helpers/changesets_helper_test.rb b/test/helpers/changesets_helper_test.rb index 067c2b071..9f6c112b4 100644 --- a/test/helpers/changesets_helper_test.rb +++ b/test/helpers/changesets_helper_test.rb @@ -3,7 +3,10 @@ require "test_helper" class ChangesetsHelperTest < ActionView::TestCase def test_changeset_user_link changeset = create(:changeset) - assert_equal %(#{changeset.user.display_name}), changeset_user_link(changeset) + changeset_user_link_dom = Rails::Dom::Testing.html_document_fragment.parse changeset_user_link(changeset) + assert_dom changeset_user_link_dom, "a:root", :text => changeset.user.display_name do + assert_dom "> @href", "/user/#{ERB::Util.u(changeset.user.display_name)}" + end changeset = create(:changeset, :user => create(:user, :data_public => false)) assert_equal "anonymous", changeset_user_link(changeset) @@ -16,12 +19,25 @@ class ChangesetsHelperTest < ActionView::TestCase changeset = create(:changeset, :created_at => Time.utc(2007, 1, 1, 0, 0, 0), :user => create(:user, :data_public => false)) # We need to explicitly reset the closed_at to some point in the future, and avoid the before_save callback changeset.update_column(:closed_at, Time.now.utc + 1.day) # rubocop:disable Rails/SkipsModelValidations - - assert_match %r{^Created by anonymous$}, changeset_details(changeset) + changeset_details_dom = Rails::Dom::Testing.html_document_fragment.parse "
#{changeset_details(changeset)}
" + assert_dom changeset_details_dom, ":root", :text => /^Created .* by anonymous$/ do + assert_dom "> time", :count => 1 do + assert_dom "> @title", "Mon, 01 Jan 2007 00:00:00 +0000" + assert_dom "> @datetime", "2007-01-01T00:00:00Z" + end + assert_dom "> a", :count => 0 + end changeset = create(:changeset, :created_at => Time.utc(2007, 1, 1, 0, 0, 0), :closed_at => Time.utc(2007, 1, 2, 0, 0, 0)) - user_link = %(#{changeset.user.display_name}) - - assert_match %r{^Closed by #{user_link}$}, changeset_details(changeset) + changeset_details_dom = Rails::Dom::Testing.html_document_fragment.parse "
#{changeset_details(changeset)}
" + assert_dom changeset_details_dom, ":root", :text => /^Closed .* by #{changeset.user.display_name}$/ do + assert_dom "> time", :count => 1 do + assert_dom "> @title", "Created: Mon, 01 Jan 2007 00:00:00 +0000\nClosed: Tue, 02 Jan 2007 00:00:00 +0000" + assert_dom "> @datetime", "2007-01-02T00:00:00Z" + end + assert_dom "> a", :count => 1, :text => changeset.user.display_name do + assert_dom "> @href", "/user/#{ERB::Util.u(changeset.user.display_name)}" + end + end end end