[libshumate] tests: Add some tests for ShumateMarkerLayer



commit 68a9a45f555b0ec00898807238297889addfab8b
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Mar 10 08:55:46 2021 -0300

    tests: Add some tests for ShumateMarkerLayer
    
    Some simple stuff like creating a marker layer, and adding and
    removing markers.

 tests/marker-layer.c | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/meson.build    |  1 +
 2 files changed, 74 insertions(+)
---
diff --git a/tests/marker-layer.c b/tests/marker-layer.c
new file mode 100644
index 0000000..a6a6fe1
--- /dev/null
+++ b/tests/marker-layer.c
@@ -0,0 +1,73 @@
+#include <gtk/gtk.h>
+#include <shumate/shumate.h>
+
+static void
+test_marker_layer_new (void)
+{
+  ShumateMarkerLayer *marker_layer;
+  ShumateViewport *viewport;
+
+  viewport = shumate_viewport_new ();
+  marker_layer = shumate_marker_layer_new (viewport);
+  g_assert_nonnull (marker_layer);
+  g_assert_true (SHUMATE_IS_MARKER_LAYER (marker_layer));
+
+  g_object_unref (viewport);
+}
+
+static void
+test_marker_layer_add_marker (void)
+{
+  ShumateMarkerLayer *marker_layer;
+  ShumateViewport *viewport;
+  ShumateMarker *point;
+
+  viewport = shumate_viewport_new ();
+  marker_layer = shumate_marker_layer_new (viewport);
+
+  point = shumate_point_new ();
+  g_assert_null (gtk_widget_get_parent (GTK_WIDGET (point)));
+
+  shumate_marker_layer_add_marker (marker_layer, point);
+  g_assert_true (gtk_widget_get_parent (GTK_WIDGET (point)) == GTK_WIDGET (marker_layer));
+
+  g_object_unref (viewport);
+}
+
+static void
+test_marker_layer_remove_marker (void)
+{
+  ShumateMarkerLayer *marker_layer;
+  ShumateViewport *viewport;
+  ShumateMarker *point;
+
+  viewport = shumate_viewport_new ();
+  marker_layer = shumate_marker_layer_new (viewport);
+
+  point = shumate_point_new ();
+  shumate_marker_layer_add_marker (marker_layer, point);
+  g_assert_true (gtk_widget_get_parent (GTK_WIDGET (point)) == GTK_WIDGET (marker_layer));
+
+  // Add a ref here so that point isn't completely destroyed before checking
+  g_object_ref_sink (point);
+
+  shumate_marker_layer_remove_marker (marker_layer, point);
+  g_assert_null (gtk_widget_get_parent (GTK_WIDGET (point)));
+
+  g_object_unref (point);
+
+  g_object_unref (viewport);
+}
+
+int
+main (int argc, char *argv[])
+{
+  g_test_init (&argc, &argv, NULL);
+  gtk_init ();
+
+  g_test_add_func ("/marker-layer/new", test_marker_layer_new);
+  g_test_add_func ("/marker-layer/add-marker", test_marker_layer_add_marker);
+  g_test_add_func ("/marker-layer/remove-marker", test_marker_layer_remove_marker);
+
+  return g_test_run ();
+}
diff --git a/tests/meson.build b/tests/meson.build
index e3fd945..5c9122e 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -10,6 +10,7 @@ tests = [
   'coordinate',
   'marker',
   'view',
+  'marker-layer',
   'viewport',
 ]
 


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