]> source.dussan.org Git - redmine.git/commitdiff
Add tests for current alt attribute behavior in images (#40650).
authorGo MAEDA <maeda@farend.jp>
Fri, 24 May 2024 02:16:23 +0000 (02:16 +0000)
committerGo MAEDA <maeda@farend.jp>
Fri, 24 May 2024 02:16:23 +0000 (02:16 +0000)
Patch by Katsuya HIDAKA (@hidakatsuya).

git-svn-id: https://svn.redmine.org/redmine/trunk@22844 e93f8b46-1217-0410-a6f0-8f06a7374b81

test/helpers/application_helper_test.rb
test/unit/lib/redmine/wiki_formatting/common_mark/application_helper_test.rb

index cdbad8bc8412b4a62827ddec3fea3b4524f3ff1d..443ad4698d6147e1f6cd5345006a645a74053372 100644 (file)
@@ -198,6 +198,39 @@ class ApplicationHelperTest < Redmine::HelperTest
     end
   end
 
+  def test_attached_image_alt_attribute_with_textile
+    attachments = Attachment.all
+    with_settings text_formatting: 'textile' do
+      # When alt text is set
+      assert_match %r[<img src=".+?" title="This is a logo" alt="This is a logo" loading=".+?" title="alt text" alt="alt text" />],
+        textilizable('!logo.gif(alt text)!', attachments: attachments)
+
+      # When alt text and style are set
+      assert_match %r[<img src=".+?" title="This is a logo" alt="This is a logo" loading=".+?" style="width:100px;" title="alt text" alt="alt text" />],
+        textilizable('!{width:100px}logo.gif(alt text)!', attachments: attachments)
+
+      # When alt text is not set
+      assert_match %r[<img src=".+?" title="This is a logo" alt="This is a logo" loading=".+?" />],
+        textilizable('!logo.gif!', attachments: attachments)
+
+      # When alt text is not set and the attachment has no description
+      assert_match %r[<img src=".+?" alt="" loading=".+?" />],
+        textilizable('!testfile.PNG!', attachments: attachments)
+
+      # When no matching attachments are found
+      assert_match %r[<img src=".+?" alt="" />],
+        textilizable('!no-match.jpg!', attachments: attachments)
+      assert_match %r[<img src=".+?" alt="alt text" />],
+        textilizable('!no-match.jpg(alt text)!', attachments: attachments)
+
+      # When no attachment is registered
+      assert_match %r[<img src=".+?" alt="" />],
+        textilizable('!logo.gif!', attachments: [])
+      assert_match %r[<img src=".+?" alt="alt text" />],
+        textilizable('!logo.gif(alt text)!', attachments: [])
+    end
+  end
+
   def test_attached_images_on_issue
     issue = Issue.generate!
     attachment_1 = Attachment.generate!(:file => mock_file_with_options(:original_filename => "attached_on_issue.png"), :container => issue)
index b5c79335be88e7a36bbcfa08bd6ea7a5120cbe1f..c198f64cd60a632d25f2a0ea5d5963c3dc70f5f3 100644 (file)
@@ -62,5 +62,33 @@ class Redmine::WikiFormatting::CommonMark::ApplicationHelperTest < Redmine::Help
       end
     end
 
+    def test_attached_image_alt_attribute_with_madkrown
+      attachments = Attachment.all
+      with_settings text_formatting: 'common_mark' do
+        # When alt text is set
+        assert_match %r[<img src=".+?" alt="alt text" loading=".+?">],
+          textilizable('![alt text](logo.gif)', attachments: attachments)
+
+        # When alt text is not set
+        assert_match %r[<img src=".+?" title="This is a logo" alt="This is a logo" loading=".+?">],
+          textilizable('![](logo.gif)', attachments: attachments)
+
+        # When alt text is not set and the attachment has no description
+        assert_match %r[<img src=".+?" alt="" loading=".+?">],
+          textilizable('![](testfile.PNG)', attachments: attachments)
+
+        # When no matching attachments are found
+        assert_match %r[<img src=".+?" alt="">],
+          textilizable('![](no-match.jpg)', attachments: attachments)
+        assert_match %r[<img src=".+?" alt="alt text">],
+          textilizable('![alt text](no-match.jpg)', attachments: attachments)
+
+        # When no attachment is registered
+        assert_match %r[<img src=".+?" alt="">],
+          textilizable('![](logo.gif)', attachments: [])
+        assert_match %r[<img src=".+?" alt="alt text">],
+          textilizable('![alt text](logo.gif)', attachments: [])
+      end
+    end
   end
 end