[gtksourceview] Add unit test for languagemanager_guess_language
- From: Paolo Borelli <pborelli src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtksourceview] Add unit test for languagemanager_guess_language
- Date: Sat, 17 Oct 2009 09:47:49 +0000 (UTC)
commit 14b475bfb0b479dbf038da693d8c186b32eae908
Author: Paolo Borelli <pborelli gnome org>
Date: Sat Oct 17 11:47:14 2009 +0200
Add unit test for languagemanager_guess_language
tests/Makefile.am | 30 ++++++++++++++---------
tests/test-languagemanager.c | 54 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 72 insertions(+), 12 deletions(-)
---
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 6357f53..3684c3f 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -8,30 +8,36 @@ INCLUDES = \
$(DEP_CFLAGS) \
$(TESTS_CFLAGS)
-# testing executables
-EXTRA_PROGRAMS = test-widget testregion test-completion
-# testregion need gtk_text_region_ api which is normally private
-# modify gtksourceview/Makefile.am to export gtk_text_* symbols
-noinst_PROGRAMS = test-widget test-completion
+noinst_PROGRAMS = $(TEST_PROGS) $(UNIT_TEST_PROGS)
+TESTS = $(UNIT_TEST_PROGS)
+TEST_PROGS = test-widget
test_widget_SOURCES = test-widget.c
-
test_widget_LDADD = \
$(top_builddir)/gtksourceview/libgtksourceview-2.0.la \
- $(DEP_LIBS) \
+ $(DEP_LIBS) \
$(TESTS_LIBS)
+TEST_PROGS += test-completion
test_completion_SOURCES = \
- completion-simple.c
-
-test_completion_LDADD = \
+ completion-simple.c
+test_completion_LDADD = \
$(top_builddir)/gtksourceview/libgtksourceview-2.0.la \
- $(DEP_LIBS) \
+ $(DEP_LIBS) \
$(TESTS_LIBS)
+UNIT_TEST_PROGS = test-languagemanager
+test_languagemanager_SOURCES = \
+ test-languagemanager.c
+test_languagemanager_LDADD = \
+ $(top_builddir)/gtksourceview/libgtksourceview-2.0.la \
+ $(DEP_LIBS) \
+ $(TESTS_LIBS)
+# testregion need gtk_text_region_ api which is normally private
+# modify gtksourceview/Makefile.am to export gtk_text_* symbols
+# TEST_PROGS += testregion
testregion_SOURCES = testregion.c
-
testregion_LDADD = \
$(top_builddir)/gtksourceview/libgtksourceview-2.0.la \
$(DEP_LIBS)
diff --git a/tests/test-languagemanager.c b/tests/test-languagemanager.c
new file mode 100644
index 0000000..2ea7411
--- /dev/null
+++ b/tests/test-languagemanager.c
@@ -0,0 +1,54 @@
+#include "config.h"
+#include <string.h>
+
+#include <gtk/gtk.h>
+#include <gtksourceview/gtksourcelanguagemanager.h>
+
+static void
+test_guess_language (void)
+{
+ GtkSourceLanguageManager *lm;
+ GtkSourceLanguage *l;
+
+ lm = gtk_source_language_manager_get_default ();
+
+ if (g_test_trap_fork (0, G_TEST_TRAP_SILENCE_STDERR))
+ {
+ l = gtk_source_language_manager_guess_language (lm, NULL, NULL);
+ }
+ g_test_trap_assert_failed ();
+
+ l = gtk_source_language_manager_guess_language (lm, "foo.abcdef", NULL);
+ g_assert (l == NULL);
+
+ l = gtk_source_language_manager_guess_language (lm, NULL, "image/png");
+ g_assert (l == NULL);
+
+ l = gtk_source_language_manager_guess_language (lm, "foo.c", NULL);
+ g_assert_cmpstr (gtk_source_language_get_id (l), ==, "c");
+
+ l = gtk_source_language_manager_guess_language (lm, NULL, "text/x-csrc");
+ g_assert_cmpstr (gtk_source_language_get_id (l), ==, "c");
+
+ l = gtk_source_language_manager_guess_language (lm, "foo.c", "text/x-csrc");
+ g_assert_cmpstr (gtk_source_language_get_id (l), ==, "c");
+
+ /* when in disagreement, glob wins */
+ l = gtk_source_language_manager_guess_language (lm, "foo.c", "text/x-fortran");
+ g_assert_cmpstr (gtk_source_language_get_id (l), ==, "c");
+
+ /* when content type is a descendent of the mime matched by the glob, mime wins */
+// FIXME: this fails with the current logic
+// l = gtk_source_language_manager_guess_language (lm, "foo.xml", "application/xslt+xml");
+// g_assert_cmpstr (gtk_source_language_get_id (l), ==, "xslt");
+}
+
+int
+main (int argc, char** argv)
+{
+ gtk_test_init (&argc, &argv);
+
+ g_test_add_func ("/LanguageManager/guess-language", test_guess_language);
+
+ return g_test_run();
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]