@@ -247,6 +247,68 @@ def content_security_policy_nonce
247
247
%(image_tag("rss.gif", srcset: [["pic_640.jpg", "640w"], ["pic_1024.jpg", "1024w"]])) => %(<img srcset="/images/pic_640.jpg 640w, /images/pic_1024.jpg 1024w" src="/images/rss.gif" />)
248
248
}
249
249
250
+ PicturePathToTag = {
251
+ %(image_path("xml")) => %(/images/xml) ,
252
+ %(image_path("xml.webp")) => %(/images/xml.webp) ,
253
+ %(image_path("dir/xml.webp")) => %(/images/dir/xml.webp) ,
254
+ %(image_path("/dir/xml.webp")) => %(/dir/xml.webp)
255
+ }
256
+
257
+ PathToPictureToTag = {
258
+ %(path_to_image("xml")) => %(/images/xml) ,
259
+ %(path_to_image("xml.webp")) => %(/images/xml.webp) ,
260
+ %(path_to_image("dir/xml.webp")) => %(/images/dir/xml.webp) ,
261
+ %(path_to_image("/dir/xml.webp")) => %(/dir/xml.webp)
262
+ }
263
+
264
+ PictureUrlToTag = {
265
+ %(image_url("xml")) => %(http://www.example.com/images/xml) ,
266
+ %(image_url("xml.webp")) => %(http://www.example.com/images/xml.webp) ,
267
+ %(image_url("dir/xml.webp")) => %(http://www.example.com/images/dir/xml.webp) ,
268
+ %(image_url("/dir/xml.webp")) => %(http://www.example.com/dir/xml.webp)
269
+ }
270
+
271
+ UrlToPictureToTag = {
272
+ %(url_to_image("xml")) => %(http://www.example.com/images/xml) ,
273
+ %(url_to_image("xml.webp")) => %(http://www.example.com/images/xml.webp) ,
274
+ %(url_to_image("dir/xml.webp")) => %(http://www.example.com/images/dir/xml.webp) ,
275
+ %(url_to_image("/dir/xml.webp")) => %(http://www.example.com/dir/xml.webp)
276
+ }
277
+
278
+ PictureLinkToTag = {
279
+ %(picture_tag("picture.webp")) => %(<picture><img src="/images/picture.webp" /></picture>) ,
280
+ %(picture_tag("gold.png", :image => { :size => "20" })) => %(<picture><img height="20" src="/images/gold.png" width="20" /></picture>) ,
281
+ %(picture_tag("gold.png", :image => { :size => 20 })) => %(<picture><img height="20" src="/images/gold.png" width="20" /></picture>) ,
282
+ %(picture_tag("silver.png", :image => { :size => "90.9" })) => %(<picture><img height="90.9" src="/images/silver.png" width="90.9" /></picture>) ,
283
+ %(picture_tag("silver.png", :image => { :size => 90.9 })) => %(<picture><img height="90.9" src="/images/silver.png" width="90.9" /></picture>) ,
284
+ %(picture_tag("gold.png", :image => { :size => "45x70" })) => %(<picture><img height="70" src="/images/gold.png" width="45" /></picture>) ,
285
+ %(picture_tag("gold.png", :image => { "size" => "45x70" })) => %(<picture><img height="70" src="/images/gold.png" width="45" /></picture>) ,
286
+ %(picture_tag("silver.png", :image => { :size => "67.12x74.09" })) => %(<picture><img height="74.09" src="/images/silver.png" width="67.12" /></picture>) ,
287
+ %(picture_tag("silver.png", :image => { "size" => "67.12x74.09" })) => %(<picture><img height="74.09" src="/images/silver.png" width="67.12" /></picture>) ,
288
+ %(picture_tag("bronze.png", :image => { :size => "10x15.7" })) => %(<picture><img height="15.7" src="/images/bronze.png" width="10" /></picture>) ,
289
+ %(picture_tag("bronze.png", :image => { "size" => "10x15.7" })) => %(<picture><img height="15.7" src="/images/bronze.png" width="10" /></picture>) ,
290
+ %(picture_tag("platinum.png", :image => { :size => "4.9x20" })) => %(<picture><img height="20" src="/images/platinum.png" width="4.9" /></picture>) ,
291
+ %(picture_tag("platinum.png", :image => { "size" => "4.9x20" })) => %(<picture><img height="20" src="/images/platinum.png" width="4.9" /></picture>) ,
292
+ %(picture_tag("error.png", :image => { "size" => "45 x 70" })) => %(<picture><img src="/images/error.png" /></picture>) ,
293
+ %(picture_tag("error.png", :image => { "size" => "1,024x768" })) => %(<picture><img src="/images/error.png" /></picture>) ,
294
+ %(picture_tag("error.png", :image => { "size" => "768x1,024" })) => %(<picture><img src="/images/error.png" /></picture>) ,
295
+ %(picture_tag("error.png", :image => { "size" => "x" })) => %(<picture><img src="/images/error.png" /></picture>) ,
296
+ %(picture_tag("google.com.png")) => %(<picture><img src="/images/google.com.png" /></picture>) ,
297
+ %(picture_tag("slash..png")) => %(<picture><img src="/images/slash..png" /></picture>) ,
298
+ %(picture_tag(".pdf.png")) => %(<picture><img src="/images/.pdf.png" /></picture>) ,
299
+ %(picture_tag("http://www.rubyonrails.com/images/rails.png")) => %(<picture><img src="http://www.rubyonrails.com/images/rails.png" /></picture>) ,
300
+ %(picture_tag("//www.rubyonrails.com/images/rails.png")) => %(<picture><img src="//www.rubyonrails.com/images/rails.png" /></picture>) ,
301
+ %(picture_tag("mouse.png", :image => { :alt => nil })) => %(<picture><img src="/images/mouse.png" /></picture>) ,
302
+ %(picture_tag("data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==", :image => { :alt => nil })) => %(<picture><img src="data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /></picture>) ,
303
+ %(picture_tag("")) => %(<picture><img src="" /></picture>) ,
304
+ %(picture_tag("picture.webp", "picture.png")) => %(<picture><source srcset="/images/picture.webp" /><source srcset="/images/picture.png" /><img src="/images/picture.png" /></picture>) ,
305
+ %(picture_tag("picture.webp", "picture.png", :class => "my-class")) => %(<picture class="my-class"><source srcset="/images/picture.webp" /><source srcset="/images/picture.png" /><img src="/images/picture.png" /></picture>) ,
306
+ %(picture_tag("picture.webp", "picture.png", :image => { alt: "Image" })) => %(<picture><source srcset="/images/picture.webp" /><source srcset="/images/picture.png" /><img alt="Image" src="/images/picture.png" /></picture>) ,
307
+ %(picture_tag(["picture.webp", "picture.png"], :image => { alt: "Image" })) => %(<picture><source srcset="/images/picture.webp" /><source srcset="/images/picture.png" /><img alt="Image" src="/images/picture.png" /></picture>) ,
308
+ %(picture_tag(:class => "my-class") { tag(:source, :srcset => image_path("picture.webp")) + image_tag("picture.png", :alt => "Image") }) => %(<picture class="my-class"><source srcset="/images/picture.webp" /><img alt="Image" src="/images/picture.png" /></picture>) ,
309
+ %(picture_tag { tag(:source, :srcset => image_path("picture-small.webp"), :media => "(min-width: 600px)") + tag(:source, :srcset => image_path("picture-big.webp")) + image_tag("picture.png", :alt => "Image") }) => %(<picture><source srcset="/images/picture-small.webp" media="(min-width: 600px)" /><source srcset="/images/picture-big.webp" /><img alt="Image" src="/images/picture.png" /></picture>) ,
310
+ }
311
+
250
312
FaviconLinkToTag = {
251
313
%(favicon_link_tag) => %(<link href="/images/favicon.ico" rel="icon" type="image/x-icon" />) ,
252
314
%(favicon_link_tag 'favicon.ico') => %(<link href="/images/favicon.ico" rel="icon" type="image/x-icon" />) ,
@@ -711,6 +773,26 @@ def test_preload_link_tag
711
773
PreloadLinkToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
712
774
end
713
775
776
+ def test_picture_path
777
+ PicturePathToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
778
+ end
779
+
780
+ def test_path_to_picture_alias_for_picture_path
781
+ PathToPictureToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
782
+ end
783
+
784
+ def test_picture_url
785
+ PictureUrlToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
786
+ end
787
+
788
+ def test_url_to_picture_alias_for_picture_url
789
+ UrlToPictureToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
790
+ end
791
+
792
+ def test_picture_tag
793
+ PictureLinkToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
794
+ end
795
+
714
796
def test_video_path
715
797
VideoPathToTag . each { |method , tag | assert_dom_equal ( tag , eval ( method ) ) }
716
798
end
0 commit comments