[librsvg] Add API test for rsvg_handle_get_geometry_for_element()
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] Add API test for rsvg_handle_get_geometry_for_element()
- Date: Thu, 28 Mar 2019 00:31:00 +0000 (UTC)
commit 8e447829fea413e9b21ba8a0f246b2c20224b2ee
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Mar 27 16:36:21 2019 -0600
Add API test for rsvg_handle_get_geometry_for_element()
tests/api.c | 41 +++++++++++++++++++++++++++++++++++++++++
tests/fixtures/api/geometry.svg | 6 ++++++
2 files changed, 47 insertions(+)
---
diff --git a/tests/api.c b/tests/api.c
index 6e8eb230..54b23a8c 100644
--- a/tests/api.c
+++ b/tests/api.c
@@ -905,6 +905,46 @@ render_cairo_sub (void)
cairo_surface_destroy (surf);
}
+static void
+get_geometry_for_element (void)
+{
+ char *filename = get_test_filename ("geometry.svg");
+ GError *error = NULL;
+
+ RsvgHandle *handle = rsvg_handle_new_from_file (filename, &error);
+ g_free (filename);
+
+ g_assert (handle != NULL);
+ g_assert (error == NULL);
+
+ RsvgRectangle viewport = { 0.0, 0.0, 100.0, 400.0 };
+ RsvgRectangle ink_rect;
+ RsvgRectangle logical_rect;
+
+ g_assert (!rsvg_handle_get_geometry_for_element (handle, "#nonexistent", viewport,
+ &ink_rect, &logical_rect, &error));
+ g_assert (error != NULL);
+
+ g_error_free (error);
+ error = NULL;
+
+ g_assert (rsvg_handle_get_geometry_for_element (handle, "#two", viewport,
+ &ink_rect, &logical_rect, &error));
+ g_assert (error == NULL);
+
+ g_assert_cmpfloat (ink_rect.x, ==, 5.0);
+ g_assert_cmpfloat (ink_rect.y, ==, 195.0);
+ g_assert_cmpfloat (ink_rect.width, ==, 90.0);
+ g_assert_cmpfloat (ink_rect.height, ==, 110.0);
+
+ g_assert_cmpfloat (logical_rect.x, ==, 10.0);
+ g_assert_cmpfloat (logical_rect.y, ==, 200.0);
+ g_assert_cmpfloat (logical_rect.width, ==, 80.0);
+ g_assert_cmpfloat (logical_rect.height, ==, 100.0);
+
+ g_object_unref (handle);
+}
+
/* https://gitlab.gnome.org/GNOME/librsvg/issues/385 */
static void
no_write_before_close (void)
@@ -1126,6 +1166,7 @@ main (int argc, char **argv)
g_test_add_func ("/api/detects_cairo_context_in_error", detects_cairo_context_in_error);
g_test_add_func ("/api/can_draw_to_non_image_surface", can_draw_to_non_image_surface);
g_test_add_func ("/api/render_cairo_sub", render_cairo_sub);
+ g_test_add_func ("/api/get_geometry_for_element", get_geometry_for_element);
g_test_add_func ("/api/no_write_before_close", no_write_before_close);
g_test_add_func ("/api/empty_write_close", empty_write_close);
g_test_add_func ("/api/cannot_request_external_elements", cannot_request_external_elements);
diff --git a/tests/fixtures/api/geometry.svg b/tests/fixtures/api/geometry.svg
new file mode 100644
index 00000000..b50bf2a9
--- /dev/null
+++ b/tests/fixtures/api/geometry.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="400" viewBox="0 0 100 400">
+ <rect id="one" x="0" y="0" width="100" height="200" fill="rgb(0,255,0)"/>
+ <rect id="two" x="10" y="200" width="80" height="100" fill="rgb(0,0,255)"
+ stroke-width="10" stroke="black"/>
+</svg>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]