[gtksourceview] CompletionWords: add unit tests for library_find_first()



commit d1d3c3f5642b80677e9811bcebc19863a6966ceb
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Mon May 20 15:33:58 2013 +0200

    CompletionWords: add unit tests for library_find_first()
    
    It is either broken, or I didn't understand what should return the
    function.

 tests/Makefile.am             |    8 ++++
 tests/test-completion-words.c |   79 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 87 insertions(+), 0 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index f005863..76cee34 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -89,6 +89,14 @@ test_completion_model_LDADD =                                        \
        $(DEP_LIBS)                                             \
        $(TESTS_LIBS)
 
+UNIT_TEST_PROGS += test-completion-words
+test_completion_words_SOURCES = test-completion-words.c
+test_completion_words_LDADD =                                  \
+       $(DEP_LIBS)                                             \
+       $(TESTS_LIBS)                                           \
+       $(top_builddir)/gtksourceview/libgtksourceview-3.0.la   \
+       $(top_builddir)/gtksourceview/completion-providers/words/libgtksourcecompletionwords.la
+
 UNIT_TEST_PROGS += test-region
 test_region_SOURCES = test-region.c
 test_region_LDADD =                                            \
diff --git a/tests/test-completion-words.c b/tests/test-completion-words.c
new file mode 100644
index 0000000..931628c
--- /dev/null
+++ b/tests/test-completion-words.c
@@ -0,0 +1,79 @@
+/*
+ * test-completion-words.c
+ * This file is part of GtkSourceView
+ *
+ * Copyright (C) 2013 - Sébastien Wilmet <swilmet gnome org>
+ *
+ * GtkSourceView is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * GtkSourceView is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#include <gtk/gtk.h>
+#include <gtksourceview/gtksource.h>
+#include "gtksourceview/completion-providers/words/gtksourcecompletionwordslibrary.h"
+
+static void
+library_add_words (GtkSourceCompletionWordsLibrary *library)
+{
+       gtk_source_completion_words_library_add_word (library, "bb");
+       gtk_source_completion_words_library_add_word (library, "bbc");
+       gtk_source_completion_words_library_add_word (library, "bbd");
+       gtk_source_completion_words_library_add_word (library, "dd");
+       gtk_source_completion_words_library_add_word (library, "dde");
+       gtk_source_completion_words_library_add_word (library, "ddf");
+}
+
+static void
+test_library_find (void)
+{
+       GtkSourceCompletionWordsLibrary *library = gtk_source_completion_words_library_new ();
+       GtkSourceCompletionWordsProposal *proposal;
+       GSequenceIter *iter;
+       const gchar *word;
+
+       library_add_words (library);
+
+       iter = gtk_source_completion_words_library_find_first (library, "a", -1);
+       g_assert (iter == NULL);
+
+       iter = gtk_source_completion_words_library_find_first (library, "bba", -1);
+       g_assert (iter == NULL);
+
+       iter = gtk_source_completion_words_library_find_first (library, "b", -1);
+       g_assert (iter != NULL);
+
+       proposal = gtk_source_completion_words_library_get_proposal (iter);
+       word = gtk_source_completion_words_proposal_get_word (proposal);
+       g_assert_cmpstr (word, ==, "bb");
+
+       iter = gtk_source_completion_words_library_find_first (library, "dd", -1);
+       g_assert (iter != NULL);
+
+       proposal = gtk_source_completion_words_library_get_proposal (iter);
+       word = gtk_source_completion_words_proposal_get_word (proposal);
+       g_assert_cmpstr (word, ==, "dd");
+
+       g_object_unref (library);
+}
+
+int
+main (int argc, char **argv)
+{
+       gtk_test_init (&argc, &argv);
+
+       g_test_add_func ("/CompletionWords/library/find",
+                        test_library_find);
+
+       return g_test_run ();
+}


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