]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5372'
authorTom Hughes <tom@compton.nu>
Tue, 3 Dec 2024 18:36:23 +0000 (18:36 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 3 Dec 2024 18:36:23 +0000 (18:36 +0000)
Gemfile.lock
app/helpers/changesets_helper.rb
test/helpers/changesets_helper_test.rb

index 2b23ab3423372c242ff89992e09f19758603940d..d909ddad6af5fd325fe5d0684b1dbb57ed7445b0 100644 (file)
@@ -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)
index 9705221607cddd6a9180b1533d59d61579fcec7f..ae953c5833c59c59e2b135d342f0d2c7aa2f21e5 100644 (file)
@@ -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
index 067c2b071e41711004ba62551a65debf73e12fc0..9f6c112b4bef8c9871a7600a95349116e4832035 100644 (file)
@@ -3,7 +3,10 @@ require "test_helper"
 class ChangesetsHelperTest < ActionView::TestCase
   def test_changeset_user_link
     changeset = create(:changeset)
-    assert_equal %(<a href="/user/#{ERB::Util.u(changeset.user.display_name)}">#{changeset.user.display_name}</a>), 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 <time title="Mon, 01 Jan 2007 00:00:00 \+0000" datetime="2007-01-01T00:00:00Z">.*</time> by anonymous$}, changeset_details(changeset)
+    changeset_details_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{changeset_details(changeset)}</div>"
+    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 = %(<a href="/user/#{ERB::Util.u(changeset.user.display_name)}">#{changeset.user.display_name}</a>)
-
-    assert_match %r{^Closed <time title="Created: Mon, 01 Jan 2007 00:00:00 \+0000&#10;Closed: Tue, 02 Jan 2007 00:00:00 \+0000" datetime="2007-01-02T00:00:00Z">.*</time> by #{user_link}$}, changeset_details(changeset)
+    changeset_details_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{changeset_details(changeset)}</div>"
+    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