From: Anton Khorev Date: Tue, 3 Dec 2024 07:24:56 +0000 (+0300) Subject: Truncate if necessary and set dir=auto for changeset usernames X-Git-Tag: live~22^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/c739e061cc552d03250bb3a419e702196ca3f9bd?ds=inline;hp=-c Truncate if necessary and set dir=auto for changeset usernames --- c739e061cc552d03250bb3a419e702196ca3f9bd 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