[gtksourceview/wip/regex-search] test-search: unit tests for the regex search
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview/wip/regex-search] test-search: unit tests for the regex search
- Date: Tue, 23 Jul 2013 14:52:36 +0000 (UTC)
commit ad2ea30a5c503af59b5d0b4681fd25bbe791eb8d
Author: Sébastien Wilmet <swilmet gnome org>
Date: Tue Jul 23 16:50:22 2013 +0200
test-search: unit tests for the regex search
All tests pass. The code coverage is good enough (in the yellow for the
lines, in the green for the functions).
tests/test-search.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 0 deletions(-)
---
diff --git a/tests/test-search.c b/tests/test-search.c
index 04dfa7b..8468a9d 100644
--- a/tests/test-search.c
+++ b/tests/test-search.c
@@ -799,6 +799,66 @@ test_replace_all (void)
g_object_unref (source_buffer);
}
+static void
+test_regex (void)
+{
+ GtkSourceBuffer *source_buffer = gtk_source_buffer_new (NULL);
+ GtkTextBuffer *text_buffer = GTK_TEXT_BUFFER (source_buffer);
+ gboolean regex_enabled;
+ gint occurrences_count;
+ GtkTextIter start;
+ GtkTextIter end;
+ gchar *contents;
+
+ gtk_text_buffer_set_text (text_buffer, "hello\nworld\n", -1);
+ gtk_source_buffer_set_regex_search (source_buffer, TRUE);
+ regex_enabled = gtk_source_buffer_get_regex_search (source_buffer);
+ g_assert (regex_enabled);
+
+ /* Simple regex */
+
+ gtk_source_buffer_set_search_text (source_buffer, "\\w+");
+ flush_queue ();
+ occurrences_count = gtk_source_buffer_get_search_occurrences_count (source_buffer);
+ g_assert_cmpint (occurrences_count, ==, 2);
+
+ /* Test partial matching */
+
+ gtk_source_buffer_set_search_text (source_buffer, "(.*\n)*");
+ flush_queue ();
+ occurrences_count = gtk_source_buffer_get_search_occurrences_count (source_buffer);
+ g_assert_cmpint (occurrences_count, ==, 1);
+
+ /* Test replace */
+
+ gtk_text_buffer_set_text (text_buffer, "aa#bb", -1);
+ gtk_source_buffer_set_search_text (source_buffer, "(\\w+)#(\\w+)");
+ flush_queue ();
+
+ gtk_text_buffer_get_start_iter (text_buffer, &start);
+ gtk_text_buffer_get_end_iter (text_buffer, &end);
+ gtk_source_buffer_search_replace (source_buffer, &start, &end, "\\2#\\1", -1);
+
+ gtk_text_buffer_get_start_iter (text_buffer, &start);
+ gtk_text_buffer_get_end_iter (text_buffer, &end);
+ contents = gtk_text_iter_get_visible_text (&start, &end);
+ g_assert_cmpstr (contents, ==, "bb#aa");
+ g_free (contents);
+
+ /* Test replace all */
+
+ gtk_text_buffer_set_text (text_buffer, "aa#bb cc#dd", -1);
+ gtk_source_buffer_search_replace_all (source_buffer, "\\2#\\1", -1);
+
+ gtk_text_buffer_get_start_iter (text_buffer, &start);
+ gtk_text_buffer_get_end_iter (text_buffer, &end);
+ contents = gtk_text_iter_get_visible_text (&start, &end);
+ g_assert_cmpstr (contents, ==, "bb#aa dd#cc");
+ g_free (contents);
+
+ g_object_unref (source_buffer);
+}
+
int
main (int argc, char **argv)
{
@@ -821,6 +881,7 @@ main (int argc, char **argv)
g_test_add_func ("/Search/occurrence-position", test_occurrence_position);
g_test_add_func ("/Search/replace", test_replace);
g_test_add_func ("/Search/replace", test_replace_all);
+ g_test_add_func ("/Search/regex", test_regex);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]