diff options
author | Federico Mena Quintero <federico@gnome.org> | 2020-09-29 16:16:58 -0500 |
---|---|---|
committer | Federico Mena Quintero <federico@gnome.org> | 2020-10-02 11:55:13 -0500 |
commit | 47ccb40964642881ae469b12bea07ad4e500f0b4 (patch) | |
tree | 510507816eb0caac37b0d9a5e5946b4c28faa43b | |
parent | 05df1d091f68d6097dfd6955feac266a34698b93 (diff) | |
download | librsvg-47ccb40964642881ae469b12bea07ad4e500f0b4.tar.gz |
Add test with no intrinsic dimensions
-rw-r--r-- | librsvg_crate/tests/intrinsic_dimensions.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/librsvg_crate/tests/intrinsic_dimensions.rs b/librsvg_crate/tests/intrinsic_dimensions.rs index 8307361f..ff0363ea 100644 --- a/librsvg_crate/tests/intrinsic_dimensions.rs +++ b/librsvg_crate/tests/intrinsic_dimensions.rs @@ -175,6 +175,40 @@ fn layer_geometry_with_no_width_height() { } #[test] +fn layer_geometry_with_no_intrinsic_dimensions() { + let svg = load_svg( + br#"<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg"> + <rect x="110" y="120" 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(); + + // The SVG document above has no width/height nor viewBox, which means it should + // start with an identity transform for its coordinate space. Since the viewport + // is just offset by (100, 100), this just translates the coordinates of the <rect>. + let rect = cairo::Rectangle { + x: 210.0, + y: 220.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"?> |