summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@gnome.org>2020-09-29 16:20:20 -0500
committerFederico Mena Quintero <federico@gnome.org>2020-10-02 11:55:14 -0500
commite3be54e0fa0fe750383aa856da432b946362ea09 (patch)
tree9edc2d8dee16600eef295bfee298970b031b9976
parent47ccb40964642881ae469b12bea07ad4e500f0b4 (diff)
downloadlibrsvg-e3be54e0fa0fe750383aa856da432b946362ea09.tar.gz
Add test with a percentage viewport
-rw-r--r--librsvg_crate/tests/intrinsic_dimensions.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/librsvg_crate/tests/intrinsic_dimensions.rs b/librsvg_crate/tests/intrinsic_dimensions.rs
index ff0363ea..43c8bbbe 100644
--- a/librsvg_crate/tests/intrinsic_dimensions.rs
+++ b/librsvg_crate/tests/intrinsic_dimensions.rs
@@ -209,6 +209,39 @@ fn layer_geometry_with_no_intrinsic_dimensions() {
}
#[test]
+fn layer_geometry_with_percentage_viewport() {
+ let svg = load_svg(
+ br#"<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="100%" height="50%">
+ <rect x="10" y="20" width="50" height="40"/>
+</svg>
+"#,
+ );
+
+ let renderer = CairoRenderer::new(&svg);
+
+ let viewport = cairo::Rectangle {
+ x: 100.0,
+ y: 100.0,
+ width: 100.0,
+ height: 100.0,
+ };
+
+ let (ink_r, logical_r) = renderer.geometry_for_layer(None, &viewport).unwrap();
+
+ // Lack of viewBox means we use an identity transform, so the <rect> is just
+ // offset by (100, 100) because of the viewport.
+ let rect = cairo::Rectangle {
+ x: 110.0,
+ y: 120.0,
+ width: 50.0,
+ height: 40.0,
+ };
+
+ assert_eq!((ink_r, logical_r), (rect, rect));
+}
+
+#[test]
fn layer_geometry_with_percent_viewport() {
let svg = load_svg(
br#"<?xml version="1.0" encoding="UTF-8"?>