[librsvg: 2/10] Add test for invalid references to non-filter elements
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 2/10] Add test for invalid references to non-filter elements
- Date: Thu, 29 Apr 2021 00:06:45 +0000 (UTC)
commit e20cc8a02efa29a527aaebc49890825fae5b858a
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Apr 28 12:57:48 2021 -0500
Add test for invalid references to non-filter elements
tests/src/filters.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
---
diff --git a/tests/src/filters.rs b/tests/src/filters.rs
index ac8310ec..5b7381bb 100644
--- a/tests/src/filters.rs
+++ b/tests/src/filters.rs
@@ -51,3 +51,50 @@ fn invalid_filter_reference_cancels_filter_chain() {
"invalid_filter_reference_cancels_filter_chain",
);
}
+
+#[test]
+fn non_filter_reference_cancels_filter_chain() {
+ // The <rect> has a filter chain, but one of the URLs does not point to a <filter>.
+ // The whole filter chain should be ignored.
+ let svg = load_svg(
+ br##"<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="400"
height="400">
+ <defs>
+ <filter id="filter">
+ <feColorMatrix type="hueRotate" values="240"/>
+ </filter>
+ <g id="not_a_filter"/>
+ </defs>
+
+ <rect x="100" y="100" width="200" height="200" fill="lime" filter="url(#filter) url(#not_a_filter)"/>
+</svg>
+"##,
+ ).unwrap();
+
+ let output_surf = render_document(
+ &svg,
+ SurfaceSize(400, 400),
+ |_| (),
+ cairo::Rectangle {
+ x: 0.0,
+ y: 0.0,
+ width: 400.0,
+ height: 400.0,
+ },
+ )
+ .unwrap();
+
+ let reference_surf = cairo::ImageSurface::create(cairo::Format::ARgb32, 400, 400).unwrap();
+
+ {
+ let cr = cairo::Context::new(&reference_surf);
+
+ cr.rectangle(100.0, 100.0, 200.0, 200.0);
+ cr.set_source_rgb(0.0, 1.0, 0.0);
+ cr.fill();
+ }
+
+ Reference::from_surface(reference_surf)
+ .compare(&output_surf)
+ .evaluate(&output_surf, "non_filter_reference_cancels_filter_chain");
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]