From 30f7b3284ce0f9dfc00d3c11df436f70d50c592e Mon Sep 17 00:00:00 2001 From: Moonchild Date: Tue, 26 Sep 2023 15:15:45 +0200 Subject: [PATCH] Issue #2316 - Part 2: Add reftests --- ...as-drawImage-height-with-no-width-ref.html | 22 ++++++ ...canvas-drawImage-height-with-no-width.html | 22 ++++++ ...nvas-drawImage-no-width-or-height-ref.html | 20 +++++ .../canvas-drawImage-no-width-or-height.html | 22 ++++++ ...as-drawImage-width-with-no-height-ref.html | 22 ++++++ ...canvas-drawImage-width-with-no-height.html | 22 ++++++ layout/reftests/svg/sizing/reftest.list | 5 ++ layout/reftests/svg/sizing/svg-image-util.js | 74 +++++++++++++++++++ 8 files changed, 209 insertions(+) create mode 100644 layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width-ref.html create mode 100644 layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width.html create mode 100644 layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height-ref.html create mode 100644 layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height.html create mode 100644 layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height-ref.html create mode 100644 layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height.html create mode 100644 layout/reftests/svg/sizing/svg-image-util.js diff --git a/layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width-ref.html b/layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width-ref.html new file mode 100644 index 0000000000..f68abfeecf --- /dev/null +++ b/layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width-ref.html @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width.html b/layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width.html new file mode 100644 index 0000000000..da4f20a2f9 --- /dev/null +++ b/layout/reftests/svg/sizing/canvas-drawImage-height-with-no-width.html @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height-ref.html b/layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height-ref.html new file mode 100644 index 0000000000..045d626743 --- /dev/null +++ b/layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height-ref.html @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height.html b/layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height.html new file mode 100644 index 0000000000..e5bc8c16ca --- /dev/null +++ b/layout/reftests/svg/sizing/canvas-drawImage-no-width-or-height.html @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height-ref.html b/layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height-ref.html new file mode 100644 index 0000000000..24d91d32c4 --- /dev/null +++ b/layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height-ref.html @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height.html b/layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height.html new file mode 100644 index 0000000000..7a4452face --- /dev/null +++ b/layout/reftests/svg/sizing/canvas-drawImage-width-with-no-height.html @@ -0,0 +1,22 @@ + + + + + + + + + diff --git a/layout/reftests/svg/sizing/reftest.list b/layout/reftests/svg/sizing/reftest.list index 960b59d8d9..3e269c5a31 100644 --- a/layout/reftests/svg/sizing/reftest.list +++ b/layout/reftests/svg/sizing/reftest.list @@ -310,3 +310,8 @@ skip == dynamic--inline-resize-window-width.xhtml pass.svg # Fails way too mu fails random-if(Android) == dynamic--object-svg-unloaded.xhtml pass.svg # == dynamic--object--auto-auto--pct-px.html +# Note: Other web rendering engines do no not pass the following tests due +# due to differences in surface calculations. +== canvas-drawImage-no-width-or-height.html canvas-drawImage-no-width-or-height-ref.html +== canvas-drawImage-width-with-no-height.html canvas-drawImage-width-with-no-height-ref.html +== canvas-drawImage-height-with-no-width.html canvas-drawImage-height-with-no-width-ref.html diff --git a/layout/reftests/svg/sizing/svg-image-util.js b/layout/reftests/svg/sizing/svg-image-util.js new file mode 100644 index 0000000000..d58e622ec7 --- /dev/null +++ b/layout/reftests/svg/sizing/svg-image-util.js @@ -0,0 +1,74 @@ +/** + * Reusable SVG data uri prefix for generated SVGs. + */ +const SVG_DATA_URI_PREFIX = 'data:image/svg+xml, { + img.onload = () => { + ctx.drawImage(img, 0, 0); + resolve(); + }; + }); + + let uri = generateSVGDataURI(aSVGWidth, aSVGHeight, aSVGViewBox); + img.src = uri; + + return promise; +}