Files
ladybird/Tests/LibWeb/Screenshot/input/svg-gradient-spreadMethod.html
Aliaksandr Kalenik d2528dd5ce LibWeb: Compare Screenshot tests directly against expected PNGs
Instead of rendering a reference HTML page that wraps an <img> tag
pointing to a PNG, Screenshot tests now load the expected PNG directly
from disk and compare it against the rendered screenshot. This
eliminates the indirection of loading and rendering a second page just
to display a static image.

This also means --rebaseline now works for Screenshot tests, generating
the expected PNG automatically instead of requiring manual screenshot
capture and placement.

Changes:
- Add TestMode::Screenshot with its own collector and runner
- Move PNGs from Screenshot/images/ to Screenshot/expected/ with
  normalized names matching input filenames
- Remove all 92 reference HTML wrapper files and the images/
  directory
- Remove <link rel="match"> from all 94 Screenshot input HTML
  files
- Update add_libweb_test.py Screenshot boilerplate accordingly
- Add Screenshot mode to results viewer image comparison tabs
2026-02-24 09:55:14 +01:00

62 lines
2.9 KiB
HTML

<!DOCTYPE html>
<meta name="fuzzy" content="maxDifference=0-1;totalPixels=0-43">
<style>
* {
margin: 0;
}
body {
background-color: white;
}
</style>
<svg width="220" height="590" version="1.1" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="LinearPad" x1="33%" x2="67%">
<stop offset="0%" stop-color="fuchsia" />
<stop offset="100%" stop-color="orange" />
</linearGradient>
<linearGradient id="LinearReflect" spreadMethod="reflect" x1="33%" x2="67%">
<stop offset="0%" stop-color="fuchsia" />
<stop offset="100%" stop-color="orange" />
</linearGradient>
<linearGradient id="LinearRepeat" spreadMethod="repeat" x1="33%" x2="67%">
<stop offset="0%" stop-color="fuchsia" />
<stop offset="100%" stop-color="orange" />
</linearGradient>
<radialGradient id="RadialPad" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="pad">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
<radialGradient id="RadialRepeat" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="repeat">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
<radialGradient id="RadialReflect" cx="0.5" cy="0.5" r="0.4" fx="0.75" fy="0.75" spreadMethod="reflect">
<stop offset="0%" stop-color="red" />
<stop offset="100%" stop-color="blue" />
</radialGradient>
<radialGradient id="RadialPadFocalOffCenter" cx="75%" cy="25%" r="33%" fx="64%" fy="18%" fr="17%">
<stop offset="0%" stop-color="fuchsia" />
<stop offset="100%" stop-color="orange" />
</radialGradient>
<radialGradient id="RadialReflectFocalOffCenter" spreadMethod="reflect" cx="75%" cy="25%" r="33%" fx="64%" fy="18%"
fr="17%">
<stop offset="0%" stop-color="fuchsia" />
<stop offset="100%" stop-color="orange" />
</radialGradient>
<radialGradient id="RadialRepeatFocalOffCenter" spreadMethod="repeat" cx="75%" cy="25%" r="33%" fx="64%" fy="18%"
fr="17%">
<stop offset="0%" stop-color="fuchsia" />
<stop offset="100%" stop-color="orange" />
</radialGradient>
</defs>
<rect x="10" y="10" width="100" height="100" fill="url(#RadialPad)" />
<rect x="10" y="120" width="100" height="100" fill="url(#RadialRepeat)" />
<rect x="120" y="120" width="100" height="100" fill="url(#RadialReflect)" />
<rect x="10" y="230" width="200" height="40" fill="url(#LinearPad)" />
<rect x="10" y="280" width="200" height="40" fill="url(#LinearReflect)" />
<rect x="10" y="330" width="200" height="40" fill="url(#LinearRepeat)" />
<rect fill="url(#RadialPadFocalOffCenter)" x="10" y="380" width="100" height="100" />
<rect fill="url(#RadialReflectFocalOffCenter)" x="10" y="490" width="100" height="100" />
<rect fill="url(#RadialRepeatFocalOffCenter)" x="120" y="490" width="100" height="100" />
</svg>