[gtk/text-placeholder-visibility: 7/13] gsk: Improve test coverage




commit 25b9766f3a4f4ae71a42a2c1237cf455dcf00780
Author: Matthias Clasen <mclasen redhat com>
Date:   Fri Jul 15 09:42:45 2022 -0400

    gsk: Improve test coverage

 testsuite/gsk/meson.build                          | 30 +++++++++++++-
 testsuite/gsk/nodeparser/conic-gradient.node       |  6 +++
 testsuite/gsk/nodeparser/conic-gradient.ref.node   |  6 +++
 testsuite/gsk/nodeparser/debug-fail.errors         |  2 +
 testsuite/gsk/nodeparser/debug-fail.node           |  8 ++++
 testsuite/gsk/nodeparser/debug-fail.ref.node       |  5 +++
 testsuite/gsk/nodeparser/glshader.node             | 11 +++++
 testsuite/gsk/nodeparser/glshader.ref.node         | 11 +++++
 testsuite/gsk/nodeparser/gradient-fail.errors      |  1 +
 testsuite/gsk/nodeparser/gradient-fail.node        |  4 ++
 testsuite/gsk/nodeparser/gradient-fail.ref.node    |  6 +++
 testsuite/gsk/nodeparser/radial-gradient.node      |  9 ++++
 testsuite/gsk/nodeparser/radial-gradient.ref.node  |  9 ++++
 .../gsk/nodeparser/repeating-linear-gradient.node  |  6 +++
 .../nodeparser/repeating-linear-gradient.ref.node  |  6 +++
 .../gsk/nodeparser/repeating-radial-gradient.node  |  9 ++++
 .../nodeparser/repeating-radial-gradient.ref.node  |  9 ++++
 testsuite/gsk/nodeparser/shadow-fail.errors        |  9 ++++
 testsuite/gsk/nodeparser/shadow-fail.node          |  4 ++
 testsuite/gsk/nodeparser/shadow-fail.ref.node      |  7 ++++
 testsuite/gsk/nodeparser/text-fail.errors          |  3 ++
 testsuite/gsk/nodeparser/text-fail.node            |  8 ++++
 testsuite/gsk/nodeparser/text-fail.ref.node        |  4 ++
 testsuite/gsk/nodeparser/texture-fail.errors       |  1 +
 testsuite/gsk/nodeparser/texture-fail.node         |  3 ++
 testsuite/gsk/nodeparser/texture-fail.ref.node     |  6 +++
 testsuite/gsk/nodeparser/transform-fail.errors     |  1 +
 testsuite/gsk/nodeparser/transform-fail.node       |  3 ++
 testsuite/gsk/nodeparser/transform-fail.ref.node   |  6 +++
 testsuite/gsk/rounded-rect.c                       | 48 ++++++++++++++++++++++
 30 files changed, 240 insertions(+), 1 deletion(-)
---
diff --git a/testsuite/gsk/meson.build b/testsuite/gsk/meson.build
index 317f6a6670..c04d5136aa 100644
--- a/testsuite/gsk/meson.build
+++ b/testsuite/gsk/meson.build
@@ -129,6 +129,8 @@ node_parser_tests = [
   'blend.node',
   'border.node',
   'color.node',
+  'conic-gradient.node',
+  'conic-gradient.ref.node',
   'crash1.errors',
   'crash1.node',
   'crash1.ref.node',
@@ -141,6 +143,9 @@ node_parser_tests = [
   'crash4.node',
   'crash4.ref.node',
   'debug.node',
+  'debug-fail.node',
+  'debug-fail.ref.node',
+  'debug-fail.errors',
   'empty-blend.node',
   'empty-blend.ref.node',
   'empty-blur.node',
@@ -181,9 +186,32 @@ node_parser_tests = [
   'empty-texture.ref.node',
   'empty-transform.node',
   'empty-transform.ref.node',
+  'glshader.node',
+  'glshader.ref.node',
+  'gradient-fail.node',
+  'gradient-fail.ref.node',
+  'gradient-fail.errors',
+  'radial-gradient.node',
+  'radial-gradient.ref.node',
+  'repeating-linear-gradient.node',
+  'repeating-linear-gradient.ref.node',
+  'repeating-radial-gradient.node',
+  'repeating-radial-gradient.ref.node',
   'rounded-rect.node',
   'shadow.node',
+  'shadow-fail.node',
+  'shadow-fail.ref.node',
+  'shadow-fail.errors',
   'testswitch.node',
+  'text-fail.node',
+  'text-fail.ref.node',
+  'text-fail.errors',
+  'texture-fail.node',
+  'texture-fail.ref.node',
+  'texture-fail.ref.errors',
+  'transform-fail.node',
+  'transform-fail.ref.node',
+  'transform-fail.errors',
   'widgetfactory.node',
 ]
 
@@ -205,7 +233,6 @@ foreach test : node_parser_tests
 endforeach
 
 tests = [
-  ['rounded-rect'],
   ['transform'],
   ['shader'],
 ]
@@ -242,6 +269,7 @@ endforeach
 internal_tests = [
   [ 'diff' ],
   [ 'half-float' ],
+  ['rounded-rect'],
 ]
 
 foreach t : internal_tests
diff --git a/testsuite/gsk/nodeparser/conic-gradient.node b/testsuite/gsk/nodeparser/conic-gradient.node
new file mode 100644
index 0000000000..d42bfbbf47
--- /dev/null
+++ b/testsuite/gsk/nodeparser/conic-gradient.node
@@ -0,0 +1,6 @@
+conic-gradient {
+  bounds: 0 0 50 50;
+  center: 20 30;
+  rotation: 25;
+  stops: 0 #444, 0.2 #0F0, 1 #F0A; 
+}
\ No newline at end of file
diff --git a/testsuite/gsk/nodeparser/conic-gradient.ref.node 
b/testsuite/gsk/nodeparser/conic-gradient.ref.node
new file mode 100644
index 0000000000..dce5e637b5
--- /dev/null
+++ b/testsuite/gsk/nodeparser/conic-gradient.ref.node
@@ -0,0 +1,6 @@
+conic-gradient {
+  bounds: 0 0 50 50;
+  center: 20 30;
+  rotation: 25;
+  stops: 0 rgb(68,68,68), 0.2 rgb(0,255,0), 1 rgb(255,0,170);
+}
diff --git a/testsuite/gsk/nodeparser/debug-fail.errors b/testsuite/gsk/nodeparser/debug-fail.errors
new file mode 100644
index 0000000000..e8b664c7d9
--- /dev/null
+++ b/testsuite/gsk/nodeparser/debug-fail.errors
@@ -0,0 +1,2 @@
+<data>:5:10-11: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:6:8-9: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/gsk/nodeparser/debug-fail.node b/testsuite/gsk/nodeparser/debug-fail.node
new file mode 100644
index 0000000000..3ad439296e
--- /dev/null
+++ b/testsuite/gsk/nodeparser/debug-fail.node
@@ -0,0 +1,8 @@
+debug {
+  message: "I'm a debug node.";
+  child: container {
+  }
+  message: "With repeating message and child.";
+  child: container {
+  }
+}
diff --git a/testsuite/gsk/nodeparser/debug-fail.ref.node b/testsuite/gsk/nodeparser/debug-fail.ref.node
new file mode 100644
index 0000000000..c59d7b7743
--- /dev/null
+++ b/testsuite/gsk/nodeparser/debug-fail.ref.node
@@ -0,0 +1,5 @@
+debug {
+  message: "With repeating message and child.";
+  child: container {
+  }
+}
diff --git a/testsuite/gsk/nodeparser/glshader.node b/testsuite/gsk/nodeparser/glshader.node
new file mode 100644
index 0000000000..0e6be6e0a1
--- /dev/null
+++ b/testsuite/gsk/nodeparser/glshader.node
@@ -0,0 +1,11 @@
+glshader {
+  bounds: 0 0 50 50;
+  sourcecode: "uniform vec3 iResolution;\A\
+uniform vec4 another;\A\
+uniform vec2 point;\A\
+uniform int iii;\A\
+uniform uint uuu;\A\
+uniform bool bbb;\A\
+uniform float num;";
+  args: 10 20 30, 1 2 3 4, -1 -2, 0, 100, true, 3.1415;
+}
diff --git a/testsuite/gsk/nodeparser/glshader.ref.node b/testsuite/gsk/nodeparser/glshader.ref.node
new file mode 100644
index 0000000000..3fbec15acb
--- /dev/null
+++ b/testsuite/gsk/nodeparser/glshader.ref.node
@@ -0,0 +1,11 @@
+glshader {
+  bounds: 0 0 50 50;
+  sourcecode: "uniform vec3 iResolution;\A\
+uniform vec4 another;\A\
+uniform vec2 point;\A\
+uniform int iii;\A\
+uniform uint uuu;\A\
+uniform bool bbb;\A\
+uniform float num;";
+  args: 10 20 30, 1 2 3 4, -1 -2, 0, 100, 0, 0;
+}
diff --git a/testsuite/gsk/nodeparser/gradient-fail.errors b/testsuite/gsk/nodeparser/gradient-fail.errors
new file mode 100644
index 0000000000..052224ba76
--- /dev/null
+++ b/testsuite/gsk/nodeparser/gradient-fail.errors
@@ -0,0 +1 @@
+<data>:3:8-9: error: GTK_CSS_PARSER_WARNING_SYNTAX
diff --git a/testsuite/gsk/nodeparser/gradient-fail.node b/testsuite/gsk/nodeparser/gradient-fail.node
new file mode 100644
index 0000000000..c9b57fc3be
--- /dev/null
+++ b/testsuite/gsk/nodeparser/gradient-fail.node
@@ -0,0 +1,4 @@
+repeating-linear-gradient {
+  stops: 0 #FF0, 0.25 #F0A, 1 #0FF;
+  stops: 0 #FF0, 0.25 #F0A, 1 #0FF;
+}
diff --git a/testsuite/gsk/nodeparser/gradient-fail.ref.node b/testsuite/gsk/nodeparser/gradient-fail.ref.node
new file mode 100644
index 0000000000..9352158ba4
--- /dev/null
+++ b/testsuite/gsk/nodeparser/gradient-fail.ref.node
@@ -0,0 +1,6 @@
+repeating-linear-gradient {
+  bounds: 0 0 50 50;
+  start: 0 0;
+  end: 0 50;
+  stops: 0 rgb(255,255,0), 0.25 rgb(255,0,170), 1 rgb(0,255,255);
+}
diff --git a/testsuite/gsk/nodeparser/radial-gradient.node b/testsuite/gsk/nodeparser/radial-gradient.node
new file mode 100644
index 0000000000..cd34ee2be0
--- /dev/null
+++ b/testsuite/gsk/nodeparser/radial-gradient.node
@@ -0,0 +1,9 @@
+radial-gradient {
+  bounds: 0 0 50 50;
+  center: 20 20;
+  hradius: 10;
+  vradius: 20;
+  start: 0.25;
+  end: 0.75;
+  stops: 0 #FF0, 0.5 #ABC, 1 #F0F;
+}
\ No newline at end of file
diff --git a/testsuite/gsk/nodeparser/radial-gradient.ref.node 
b/testsuite/gsk/nodeparser/radial-gradient.ref.node
new file mode 100644
index 0000000000..538ac522a5
--- /dev/null
+++ b/testsuite/gsk/nodeparser/radial-gradient.ref.node
@@ -0,0 +1,9 @@
+radial-gradient {
+  bounds: 0 0 50 50;
+  center: 20 20;
+  hradius: 10;
+  vradius: 20;
+  start: 0.25;
+  end: 0.75;
+  stops: 0 rgb(255,255,0), 0.5 rgb(170,187,204), 1 rgb(255,0,255);
+}
diff --git a/testsuite/gsk/nodeparser/repeating-linear-gradient.node 
b/testsuite/gsk/nodeparser/repeating-linear-gradient.node
new file mode 100644
index 0000000000..f8ed50e58a
--- /dev/null
+++ b/testsuite/gsk/nodeparser/repeating-linear-gradient.node
@@ -0,0 +1,6 @@
+repeating-linear-gradient {
+  bounds: 0 0 50 50; 
+  start: 50 0;
+  end: 25 25;
+  stops: 0 #FF0, 0.25 #F0A, 1 #0FF;
+}
\ No newline at end of file
diff --git a/testsuite/gsk/nodeparser/repeating-linear-gradient.ref.node 
b/testsuite/gsk/nodeparser/repeating-linear-gradient.ref.node
new file mode 100644
index 0000000000..4985680ef0
--- /dev/null
+++ b/testsuite/gsk/nodeparser/repeating-linear-gradient.ref.node
@@ -0,0 +1,6 @@
+repeating-linear-gradient {
+  bounds: 0 0 50 50;
+  start: 50 0;
+  end: 25 25;
+  stops: 0 rgb(255,255,0), 0.25 rgb(255,0,170), 1 rgb(0,255,255);
+}
diff --git a/testsuite/gsk/nodeparser/repeating-radial-gradient.node 
b/testsuite/gsk/nodeparser/repeating-radial-gradient.node
new file mode 100644
index 0000000000..5415d1e839
--- /dev/null
+++ b/testsuite/gsk/nodeparser/repeating-radial-gradient.node
@@ -0,0 +1,9 @@
+repeating-radial-gradient {
+  bounds: 0 0 50 50;
+  center: 20 30;
+  hradius: 30;
+  vradius: 20;
+  start: 0.25;
+  end: 0.75;
+  stops: 0 #F0F, 1 #0F0; 
+}
\ No newline at end of file
diff --git a/testsuite/gsk/nodeparser/repeating-radial-gradient.ref.node 
b/testsuite/gsk/nodeparser/repeating-radial-gradient.ref.node
new file mode 100644
index 0000000000..4aa3eeed8d
--- /dev/null
+++ b/testsuite/gsk/nodeparser/repeating-radial-gradient.ref.node
@@ -0,0 +1,9 @@
+repeating-radial-gradient {
+  bounds: 0 0 50 50;
+  center: 20 30;
+  hradius: 30;
+  vradius: 20;
+  start: 0.25;
+  end: 0.75;
+  stops: 0 rgb(255,0,255), 1 rgb(0,255,0);
+}
diff --git a/testsuite/gsk/nodeparser/shadow-fail.errors b/testsuite/gsk/nodeparser/shadow-fail.errors
new file mode 100644
index 0000000000..bb77a372fc
--- /dev/null
+++ b/testsuite/gsk/nodeparser/shadow-fail.errors
@@ -0,0 +1,9 @@
+<data>:2:11-13: error: GTK_CSS_PARSER_ERROR_SYNTAX
+<data>:2:11-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+<data>:2:13-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
+<data>:2:13-14: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+<data>:3:9-10: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:3:11-13: error: GTK_CSS_PARSER_ERROR_SYNTAX
+<data>:3:11-13: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+<data>:3:13-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
+<data>:3:13-14: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/gsk/nodeparser/shadow-fail.node b/testsuite/gsk/nodeparser/shadow-fail.node
new file mode 100644
index 0000000000..5b851e7eb1
--- /dev/null
+++ b/testsuite/gsk/nodeparser/shadow-fail.node
@@ -0,0 +1,4 @@
+shadow {
+ shadows: 22;
+ shadows: 22;
+}
diff --git a/testsuite/gsk/nodeparser/shadow-fail.ref.node b/testsuite/gsk/nodeparser/shadow-fail.ref.node
new file mode 100644
index 0000000000..77e42196fb
--- /dev/null
+++ b/testsuite/gsk/nodeparser/shadow-fail.ref.node
@@ -0,0 +1,7 @@
+shadow {
+  shadows: rgb(0,0,0) 22 0, rgb(0,0,0) 22 0;
+  child: color {
+    bounds: 0 0 50 50;
+    color: rgb(255,0,204);
+  }
+}
diff --git a/testsuite/gsk/nodeparser/text-fail.errors b/testsuite/gsk/nodeparser/text-fail.errors
new file mode 100644
index 0000000000..1df16b5cff
--- /dev/null
+++ b/testsuite/gsk/nodeparser/text-fail.errors
@@ -0,0 +1,3 @@
+<data>:4:7-8: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:6:9-10: error: GTK_CSS_PARSER_WARNING_SYNTAX
+<data>:8:1-2: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
diff --git a/testsuite/gsk/nodeparser/text-fail.node b/testsuite/gsk/nodeparser/text-fail.node
new file mode 100644
index 0000000000..cbbf594fd4
--- /dev/null
+++ b/testsuite/gsk/nodeparser/text-fail.node
@@ -0,0 +1,8 @@
+text {
+  color: rgb(50,50,50);
+  font: "";
+  font: "";
+  glyphs: "N";
+  glyphs: "N";
+  offset: 0 32.0186;
+}
diff --git a/testsuite/gsk/nodeparser/text-fail.ref.node b/testsuite/gsk/nodeparser/text-fail.ref.node
new file mode 100644
index 0000000000..404fb1b892
--- /dev/null
+++ b/testsuite/gsk/nodeparser/text-fail.ref.node
@@ -0,0 +1,4 @@
+color {
+  bounds: 0 0 50 50;
+  color: rgb(255,0,204);
+}
diff --git a/testsuite/gsk/nodeparser/texture-fail.errors b/testsuite/gsk/nodeparser/texture-fail.errors
new file mode 100644
index 0000000000..cc436f0e71
--- /dev/null
+++ b/testsuite/gsk/nodeparser/texture-fail.errors
@@ -0,0 +1 @@
+<data>:2:12-14: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/gsk/nodeparser/texture-fail.node b/testsuite/gsk/nodeparser/texture-fail.node
new file mode 100644
index 0000000000..996ada6181
--- /dev/null
+++ b/testsuite/gsk/nodeparser/texture-fail.node
@@ -0,0 +1,3 @@
+texture {
+  texture: 22;
+}
diff --git a/testsuite/gsk/nodeparser/texture-fail.ref.node b/testsuite/gsk/nodeparser/texture-fail.ref.node
new file mode 100644
index 0000000000..b8027cb332
--- /dev/null
+++ b/testsuite/gsk/nodeparser/texture-fail.ref.node
@@ -0,0 +1,6 @@
+texture {
+  bounds: 0 0 50 50;
+  texture: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAKUlEQVQYlWP8z3DmPwMaYGQwYUQX\
+Y0IXwAUGUCGGoxkYGBiweXAoeAYAz44F3e3U1xUAAAAASUVORK5CYII=\
+");
+}
diff --git a/testsuite/gsk/nodeparser/transform-fail.errors b/testsuite/gsk/nodeparser/transform-fail.errors
new file mode 100644
index 0000000000..a951d27419
--- /dev/null
+++ b/testsuite/gsk/nodeparser/transform-fail.errors
@@ -0,0 +1 @@
+<data>:2:14-16: error: GTK_CSS_PARSER_ERROR_SYNTAX
diff --git a/testsuite/gsk/nodeparser/transform-fail.node b/testsuite/gsk/nodeparser/transform-fail.node
new file mode 100644
index 0000000000..676dde3755
--- /dev/null
+++ b/testsuite/gsk/nodeparser/transform-fail.node
@@ -0,0 +1,3 @@
+transform {
+  transform: 22;
+}
\ No newline at end of file
diff --git a/testsuite/gsk/nodeparser/transform-fail.ref.node 
b/testsuite/gsk/nodeparser/transform-fail.ref.node
new file mode 100644
index 0000000000..8a63720daa
--- /dev/null
+++ b/testsuite/gsk/nodeparser/transform-fail.ref.node
@@ -0,0 +1,6 @@
+transform {
+  child: color {
+    bounds: 0 0 50 50;
+    color: rgb(255,0,204);
+  }
+}
diff --git a/testsuite/gsk/rounded-rect.c b/testsuite/gsk/rounded-rect.c
index 78bae68ab2..0127d1cb54 100644
--- a/testsuite/gsk/rounded-rect.c
+++ b/testsuite/gsk/rounded-rect.c
@@ -20,6 +20,7 @@
 #include "config.h"
 
 #include <gtk/gtk.h>
+#include <gsk/gskroundedrectprivate.h>
 
 static void
 test_contains_rect (void)
@@ -114,6 +115,51 @@ test_contains_point (void)
   g_assert_true (gsk_rounded_rect_contains_point (&rect, &GRAPHENE_POINT_INIT (10, 95)));
 }
 
+static void
+test_is_circular (void)
+{
+  GskRoundedRect rect;
+
+  gsk_rounded_rect_init (&rect,
+                         &GRAPHENE_RECT_INIT (0, 0, 100, 100),
+                         &GRAPHENE_SIZE_INIT (0, 0),
+                         &GRAPHENE_SIZE_INIT (10, 10),
+                         &GRAPHENE_SIZE_INIT (10, 20),
+                         &GRAPHENE_SIZE_INIT (20, 10));
+
+  g_assert_false (gsk_rounded_rect_is_circular (&rect));
+
+  gsk_rounded_rect_init (&rect,
+                         &GRAPHENE_RECT_INIT (0, 0, 100, 100),
+                         &GRAPHENE_SIZE_INIT (0, 0),
+                         &GRAPHENE_SIZE_INIT (10, 10),
+                         &GRAPHENE_SIZE_INIT (20, 20),
+                         &GRAPHENE_SIZE_INIT (30, 30));
+
+  g_assert_true (gsk_rounded_rect_is_circular (&rect));
+}
+
+static void
+test_to_float (void)
+{
+  GskRoundedRect rect;
+  float flt[12];
+
+  gsk_rounded_rect_init (&rect,
+                         &GRAPHENE_RECT_INIT (0, 11, 22, 33),
+                         &GRAPHENE_SIZE_INIT (4, 5),
+                         &GRAPHENE_SIZE_INIT (6, 7),
+                         &GRAPHENE_SIZE_INIT (8, 9),
+                         &GRAPHENE_SIZE_INIT (10, 11));
+
+  gsk_rounded_rect_to_float (&rect, flt);
+  g_assert_true (flt[0] == 0. && flt[1] == 11. && flt[2] == 22. && flt[3] == 33.);
+  g_assert_true (flt[4] == 4. && flt[5] == 6.);
+  g_assert_true (flt[6] == 8. && flt[7] == 10.);
+  g_assert_true (flt[8] == 5. && flt[9] == 7.);
+  g_assert_true (flt[10] == 9. && flt[11] == 11.);
+}
+
 int
 main (int   argc,
       char *argv[])
@@ -123,6 +169,8 @@ main (int   argc,
   g_test_add_func ("/rounded-rect/contains-rect", test_contains_rect);
   g_test_add_func ("/rounded-rect/intersects-rect", test_intersects_rect);
   g_test_add_func ("/rounded-rect/contains-point", test_contains_point);
+  g_test_add_func ("/rounded-rect/is-circular", test_is_circular);
+  g_test_add_func ("/rounded-rect/to-float", test_to_float);
 
   return g_test_run ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]