[gtk/text-placeholder-visibility: 11/13] gsk: Add some more tests
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/text-placeholder-visibility: 11/13] gsk: Add some more tests
- Date: Fri, 15 Jul 2022 20:46:02 +0000 (UTC)
commit 6612b7ec22f1137025a52054633cbcd0c74dcf6e
Author: Matthias Clasen <mclasen redhat com>
Date: Fri Jul 15 14:42:16 2022 -0400
gsk: Add some more tests
testsuite/gsk/meson.build | 1 +
testsuite/gsk/misc.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 97 insertions(+)
---
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
index c04d5136aa..e0671385f8 100644
--- a/testsuite/gsk/meson.build
+++ b/testsuite/gsk/meson.build
@@ -270,6 +270,7 @@ internal_tests = [
[ 'diff' ],
[ 'half-float' ],
['rounded-rect'],
+ ['misc'],
]
foreach t : internal_tests
diff --git a/testsuite/gsk/misc.c b/testsuite/gsk/misc.c
new file mode 100644
index 0000000000..7b4af1cf28
--- /dev/null
+++ b/testsuite/gsk/misc.c
@@ -0,0 +1,96 @@
+#include <gtk/gtk.h>
+#include "gsk/gskrendernodeprivate.h"
+
+static void
+test_rendernode_gvalue (void)
+{
+ GValue value = G_VALUE_INIT;
+ GskRenderNode *node, *node2;
+
+ g_assert_false (GSK_VALUE_HOLDS_RENDER_NODE (&value));
+ g_value_init (&value, GSK_TYPE_RENDER_NODE);
+ g_assert_true (GSK_VALUE_HOLDS_RENDER_NODE (&value));
+
+ node = gsk_value_get_render_node (&value);
+ g_assert_null (node);
+
+ node = gsk_color_node_new (&(GdkRGBA){0,1,1,1}, &GRAPHENE_RECT_INIT (0, 0, 50, 50));
+ gsk_value_set_render_node (&value, node);
+
+ node2 = gsk_value_dup_render_node (&value);
+ g_assert_true (node == node2);
+
+ g_value_reset (&value);
+ gsk_value_take_render_node (&value, node);
+
+ g_value_unset (&value);
+}
+
+static void
+test_bordernode_uniform (void)
+{
+ GskRenderNode *node;
+ GskRoundedRect rect;
+ GdkRGBA colors[4] = {
+ { 0, 0, 0, 1 },
+ { 0, 0, 0, 1 },
+ { 0, 0, 0, 1 },
+ { 0, 0, 0, 1 },
+ };
+
+ gsk_rounded_rect_init (&rect,
+ &GRAPHENE_RECT_INIT (0, 0, 50, 50),
+ &GRAPHENE_SIZE_INIT (10, 10),
+ &GRAPHENE_SIZE_INIT (10, 10),
+ &GRAPHENE_SIZE_INIT (10, 10),
+ &GRAPHENE_SIZE_INIT (10, 10));
+
+ node = gsk_border_node_new (&rect, (const float[]){ 1, 1, 1, 1}, colors);
+
+ g_assert_true (gsk_border_node_get_uniform (node));
+ g_assert_true (gsk_border_node_get_uniform_color (node));
+
+ gsk_render_node_unref (node);
+
+ node = gsk_border_node_new (&rect, (const float[]){ 1, 2, 3, 4}, colors);
+
+ g_assert_false (gsk_border_node_get_uniform (node));
+ g_assert_true (gsk_border_node_get_uniform_color (node));
+
+ gsk_render_node_unref (node);
+}
+
+#define DEG_TO_RAD(x) ((x) * (G_PI / 180.f))
+
+static void
+test_conic_gradient_angle (void)
+{
+ GskRenderNode *node;
+ GskColorStop stops[] = {
+ { 0.f, (GdkRGBA) { 0, 0, 0, 1} },
+ { 1.f, (GdkRGBA) { 1, 0, 1, 1} },
+ };
+
+ node = gsk_conic_gradient_node_new (&GRAPHENE_RECT_INIT (0, 0, 50, 50),
+ &GRAPHENE_POINT_INIT (10, 20),
+ 33.f,
+ stops,
+ G_N_ELEMENTS (stops));
+
+ g_assert_cmpfloat_with_epsilon (gsk_conic_gradient_node_get_angle (node), DEG_TO_RAD (90.f - 33.f), 0.001);
+
+ gsk_render_node_unref (node);
+}
+
+int
+main (int argc, char *argv[])
+{
+ (g_test_init) (&argc, &argv, NULL);
+ gtk_init ();
+
+ g_test_add_func ("/rendernode/gvalue", test_rendernode_gvalue);
+ g_test_add_func ("/rendernode/border/uniform", test_bordernode_uniform);
+ g_test_add_func ("/rendernode/conic-gradient/angle", test_conic_gradient_angle);
+
+ return g_test_run ();
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]