diff options
author | Federico Mena Quintero <federico@gnome.org> | 2020-09-29 16:20:20 -0500 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2020-10-02 11:55:14 -0500 |
commit | e3be54e0fa0fe750383aa856da432b946362ea09 (patch) | |
tree | 9edc2d8dee16600eef295bfee298970b031b9976 | |
parent | 47ccb40964642881ae469b12bea07ad4e500f0b4 (diff) | |
download | librsvg-e3be54e0fa0fe750383aa856da432b946362ea09.tar.gz |
Add test with a percentage viewport
-rw-r--r-- | librsvg_crate/tests/intrinsic_dimensions.rs | 33 |
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"?> |