]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5588'
authorTom Hughes <tom@compton.nu>
Sun, 2 Feb 2025 10:32:48 +0000 (10:32 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 2 Feb 2025 10:32:48 +0000 (10:32 +0000)
app/helpers/social_share_button_helper.rb
test/helpers/social_share_button_helper_test.rb

index da49347c3054a56f32a063e54cb44faf84bc2e79..13a9f9e9ea0c6be158bc8677bd6e7533ee96543a 100644 (file)
@@ -35,8 +35,8 @@ module SocialShareButtonHelper
 
   def generate_share_url(site, title, url)
     site = site.to_sym
-    title = URI.encode_www_form_component(title)
-    url = URI.encode_www_form_component(url)
+    title = URI.encode_uri_component(title)
+    url = URI.encode_uri_component(url)
 
     case site
     when :email
index 136298381ae8f094f94ecb3d44b7a3a016690257..0634632b850c5209ee759623813c5dd4ab718801 100644 (file)
@@ -9,9 +9,14 @@ class SocialShareButtonHelperTest < ActionView::TestCase
 
     SOCIAL_SHARE_CONFIG.each_value do |icon|
       assert_dom buttons_dom, "div:has(a img[src='/images/#{icon}'])", :count => 1 do
-        assert_dom "a[href*='Test+Title']"
+        assert_dom "a[href*='Test%20Title']"
         assert_dom "a[href*='https%3A%2F%2Fexample.com']"
       end
     end
   end
+
+  def test_generate_share_url_email
+    url = generate_share_url(:email, "Diary Entry Title", "https://osm.example.com/some/diary/entry")
+    assert_equal "mailto:?subject=Diary%20Entry%20Title&body=https%3A%2F%2Fosm.example.com%2Fsome%2Fdiary%2Fentry", url
+  end
 end