Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions news/188.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Add default width and height attributes if none provided when using the srcset method @erral
4 changes: 4 additions & 0 deletions src/plone/namedfile/scaling.py
Original file line number Diff line number Diff line change
Expand Up @@ -801,6 +801,10 @@ def srcset(

scale = self.scale(fieldname=fieldname, scale=scale_in_src)
attributes["src"] = scale.url
if "width" not in attributes:
attributes["width"] = scale.width
if "height" not in attributes:
attributes["height"] = scale.height

return _image_tag_from_values(*attributes.items())

Expand Down
10 changes: 5 additions & 5 deletions src/plone/namedfile/tests/test_scaling.py
Original file line number Diff line number Diff line change
Expand Up @@ -830,7 +830,7 @@ def testImgSrcSet(self):
}
tag = self.scaling.srcset("image", sizes="50vw")
base = self.item.absolute_url()
expected = f"""<img title="foo" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-1600-....png".../>"""
expected = f"""<img title="foo" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-1600-....png" width="..." height="...".../>"""
self.assertTrue(_ellipsis_match(expected, tag.strip()))

def testImgSrcSetCustomSrc(self):
Expand All @@ -850,7 +850,7 @@ def testImgSrcSetCustomSrc(self):
}
tag = self.scaling.srcset("image", sizes="50vw", scale_in_src="mini")
base = self.item.absolute_url()
expected = f"""<img title="foo" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-200-....png".../>"""
expected = f"""<img title="foo" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-200-....png" width="200" height="...".../>"""
self.assertTrue(_ellipsis_match(expected, tag.strip()))

def testImgSrcSetInexistentScale(self):
Expand All @@ -874,7 +874,7 @@ def testImgSrcSetInexistentScale(self):
"image", sizes="50vw", scale_in_src="inexistent-scale-name"
)
base = self.item.absolute_url()
expected = f"""<img title="foo" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-200-....png".../>"""
expected = f"""<img title="foo" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-200-....png" width="..." height="...".../>"""
self.assertTrue(_ellipsis_match(expected, tag.strip()))

def testImgSrcSetCustomTitle(self):
Expand All @@ -894,7 +894,7 @@ def testImgSrcSetCustomTitle(self):
}
tag = self.scaling.srcset("image", sizes="50vw", title="My Custom Title")
base = self.item.absolute_url()
expected = f"""<img title="My Custom Title" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-1600-....png".../>"""
expected = f"""<img title="My Custom Title" alt="foo" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-1600-....png" width="..." height="...".../>"""
self.assertTrue(_ellipsis_match(expected, tag.strip()))

def testImgSrcSetAdditionalAttributes(self):
Expand Down Expand Up @@ -922,7 +922,7 @@ def testImgSrcSetAdditionalAttributes(self):
)
base = self.item.absolute_url()

expected = f"""<img title="My Custom Title" alt="This image shows nothing" class="my-personal-class" loading="lazy" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-1600-....png".../>"""
expected = f"""<img title="My Custom Title" alt="This image shows nothing" class="my-personal-class" loading="lazy" sizes="50vw" srcset="{base}/@@images/image-200-....png 200w, {base}/@@images/image-128-....png 128w, {base}/@@images/image-64-....png 64w, {base}/@@images/image-32-....png 32w, {base}/@@images/image-16-....png 16w" src="{base}/@@images/image-1600-....png" width="..." height="...".../>"""
self.assertTrue(_ellipsis_match(expected, tag.strip()))


Expand Down