[librsvg/wip/subclass] tests/api.c: Test all the RsvgHandleFlags values
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/wip/subclass] tests/api.c: Test all the RsvgHandleFlags values
- Date: Fri, 15 Feb 2019 18:16:09 +0000 (UTC)
commit 60028755ed7e2609a0588f9300bfc969e0da9d3f
Author: Federico Mena Quintero <federico gnome org>
Date: Fri Feb 15 11:33:30 2019 -0600
tests/api.c: Test all the RsvgHandleFlags values
tests/api.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 57 insertions(+), 5 deletions(-)
---
diff --git a/tests/api.c b/tests/api.c
index 54545a57..b7bd8503 100644
--- a/tests/api.c
+++ b/tests/api.c
@@ -12,7 +12,9 @@
#include "test-utils.h"
/*
-rsvg_handle_internal_set_testing
+ Untested:
+ rsvg_handle_internal_set_testing
+ rsvg_error_get_type() and the error enum
*/
static void
@@ -25,6 +27,59 @@ handle_has_gtype (void)
g_object_unref (handle);
}
+static gboolean
+flags_value_matches (GFlagsValue *v,
+ guint value,
+ const char *value_name,
+ const char *value_nick)
+{
+ return (v->value == value
+ && strcmp (v->value_name, value_name) == 0
+ && strcmp (v->value_nick, value_nick) == 0);
+}
+
+static void
+flags_registration (void)
+{
+ GType ty;
+ GTypeQuery q;
+ GTypeClass *type_class;
+ GFlagsClass *flags_class;
+
+ ty = RSVG_TYPE_HANDLE_FLAGS;
+
+ g_assert (ty != G_TYPE_INVALID);
+
+ g_type_query (RSVG_TYPE_HANDLE_FLAGS, &q);
+ g_assert (q.type == ty);
+ g_assert (G_TYPE_IS_FLAGS (q.type));
+ g_assert_cmpstr (q.type_name, ==, "RsvgHandleFlags");
+
+ type_class = g_type_class_ref (ty);
+ g_assert (G_IS_FLAGS_CLASS (type_class));
+ g_assert (G_FLAGS_CLASS_TYPE (type_class) == ty);
+
+ flags_class = G_FLAGS_CLASS (type_class);
+ g_assert (flags_class->n_values == 3);
+
+ g_assert (flags_value_matches(&flags_class->values[0],
+ RSVG_HANDLE_FLAGS_NONE,
+ "RSVG_HANDLE_FLAGS_NONE",
+ "flags-none"));
+
+ g_assert (flags_value_matches(&flags_class->values[1],
+ RSVG_HANDLE_FLAG_UNLIMITED,
+ "RSVG_HANDLE_FLAG_UNLIMITED",
+ "flag-unlimited"));
+
+ g_assert (flags_value_matches(&flags_class->values[2],
+ RSVG_HANDLE_FLAG_KEEP_IMAGE_DATA,
+ "RSVG_HANDLE_FLAG_KEEP_IMAGE_DATA",
+ "flag-keep-image-data"));
+
+ g_type_class_unref (type_class);
+}
+
static char *
get_test_filename (const char *basename) {
return g_build_filename (test_utils_get_test_data_path (),
@@ -218,10 +273,6 @@ auto_generated (void)
g_type_query (RSVG_TYPE_ERROR, &q);
g_assert (G_TYPE_IS_ENUM (q.type));
g_assert_cmpstr (q.type_name, ==, "RsvgError");
-
- g_type_query (RSVG_TYPE_HANDLE_FLAGS, &q);
- g_assert (G_TYPE_IS_FLAGS (q.type));
- g_assert_cmpstr (q.type_name, ==, "RsvgHandleFlags");
}
static void
@@ -944,6 +995,7 @@ main (int argc, char **argv)
}
g_test_add_func ("/api/handle_has_gtype", handle_has_gtype);
+ g_test_add_func ("/api/flags_registration", flags_registration);
g_test_add_func ("/api/noops", noops);
g_test_add_func ("/api/set_dpi", set_dpi);
g_test_add_func ("/api/error_quark", error_quark);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]