[gtksourceview/wip/region-tests] test-region: add real tests



commit 39c8b48e25819461d928db9f77750867123753b0
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Thu Aug 11 11:11:02 2016 +0200

    test-region: add real tests

 testsuite/test-region.c |  113 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 107 insertions(+), 6 deletions(-)
---
diff --git a/testsuite/test-region.c b/testsuite/test-region.c
index 989873d..500252d 100644
--- a/testsuite/test-region.c
+++ b/testsuite/test-region.c
@@ -4,7 +4,7 @@
  *
  * Copyright (C) 2003 - Gustavo Giráldez
  * Copyright (C) 2006, 2013 - Paolo Borelli
- * Copyright (C) 2013 - Sébastien Wilmet
+ * Copyright (C) 2013, 2016 - Sébastien Wilmet
  *
  * GtkSourceView is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -24,6 +24,109 @@
 #include <gtksourceview/gtksource.h>
 
 static void
+test_weak_ref (void)
+{
+       GtkTextBuffer *buffer;
+       GtkSourceRegion *region;
+       GtkSourceRegionIter region_iter;
+       GtkTextIter start;
+       GtkTextIter end;
+
+       buffer = gtk_text_buffer_new (NULL);
+       region = gtk_source_region_new (buffer);
+
+       gtk_text_buffer_set_text (buffer, "test_weak_ref", -1);
+       gtk_text_buffer_get_bounds (buffer, &start, &end);
+       gtk_source_region_add_subregion (region, &start, &end);
+
+       g_assert (!gtk_source_region_is_empty (region));
+
+       g_object_unref (buffer);
+
+       g_assert (gtk_source_region_is_empty (region));
+       g_assert (!gtk_source_region_get_bounds (region, &start, &end));
+
+       gtk_source_region_get_start_region_iter (region, &region_iter);
+       g_assert (!gtk_source_region_iter_get_subregion (&region_iter, &start, &end));
+
+       g_object_unref (region);
+}
+
+static void
+add_subregion (GtkSourceRegion *region,
+              gint             start_offset,
+              gint             end_offset)
+{
+       GtkTextBuffer *buffer;
+       GtkTextIter start_iter;
+       GtkTextIter end_iter;
+
+       buffer = gtk_source_region_get_buffer (region);
+       gtk_text_buffer_get_iter_at_offset (buffer, &start_iter, start_offset);
+       gtk_text_buffer_get_iter_at_offset (buffer, &end_iter, end_offset);
+
+       gtk_source_region_add_subregion (region, &start_iter, &end_iter);
+}
+
+static void
+subtract_subregion (GtkSourceRegion *region,
+                   gint             start_offset,
+                   gint             end_offset)
+{
+       GtkTextBuffer *buffer;
+       GtkTextIter start_iter;
+       GtkTextIter end_iter;
+
+       buffer = gtk_source_region_get_buffer (region);
+       gtk_text_buffer_get_iter_at_offset (buffer, &start_iter, start_offset);
+       gtk_text_buffer_get_iter_at_offset (buffer, &end_iter, end_offset);
+
+       gtk_source_region_subtract_subregion (region, &start_iter, &end_iter);
+}
+
+static void
+check_result (GtkSourceRegion *region,
+             const gchar     *expected_result)
+{
+       gchar *expected_region_str;
+       gchar *region_str;
+
+       expected_region_str = g_strconcat ("Subregions: ", expected_result, NULL);
+       region_str = gtk_source_region_to_string (region);
+       g_assert_cmpstr (region_str, ==, expected_region_str);
+
+       g_free (expected_region_str);
+       g_free (region_str);
+}
+
+static void
+test_add_subtract_subregion (void)
+{
+       GtkTextBuffer *buffer;
+       GtkSourceRegion *region;
+
+       buffer = gtk_text_buffer_new (NULL);
+       region = gtk_source_region_new (buffer);
+
+       gtk_text_buffer_set_text (buffer, "This is a test of GtkSourceRegion", -1);
+
+       g_assert (gtk_source_region_is_empty (region));
+
+       /* Add/remove 0-length subregions */
+       add_subregion (region, 5, 5);
+       g_assert (gtk_source_region_is_empty (region));
+       subtract_subregion (region, 5, 5);
+       g_assert (gtk_source_region_is_empty (region));
+
+       /* Add subregion */
+       add_subregion (region, 5, 10);
+       check_result (region, "5-10");
+
+       g_object_unref (buffer);
+       g_object_unref (region);
+}
+
+static void
 test_region (void)
 {
        GtkTextBuffer *buffer;
@@ -36,9 +139,6 @@ test_region (void)
 
        gint ops[][3] =
        {
-               /* add/remove a 0-length region */
-               {  1,  5,  5 },
-               { -1,  5,  5 },
                /* add a region */
                {  1,  5, 10 },
                /* add two adjacent regions */
@@ -92,8 +192,7 @@ test_region (void)
        buffer = gtk_text_buffer_new (NULL);
        region = gtk_source_region_new (buffer);
 
-       gtk_text_buffer_get_start_iter (buffer, &iter1);
-       gtk_text_buffer_insert (buffer, &iter1, "This is a test of GtkSourceRegion", -1);
+       gtk_text_buffer_set_text (buffer, "This is a test of GtkSourceRegion", -1);
 
        gtk_source_region_get_start_region_iter (region, &reg_iter);
        g_assert (gtk_source_region_iter_is_end (&reg_iter));
@@ -176,6 +275,8 @@ main (int argc, char **argv)
 {
        gtk_test_init (&argc, &argv);
 
+       g_test_add_func ("/Region/weak-ref", test_weak_ref);
+       g_test_add_func ("/Region/add-subtract-subregion", test_add_subtract_subregion);
        g_test_add_func ("/Region/region", test_region);
 
        return g_test_run();


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