[gtksourceview] Add unit test for languagemanager_guess_language



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]