[gtk/text-placeholder-visibility: 11/13] gsk: Add some more tests




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]