diff options
-rw-r--r-- | tests/.gitignore | 1 | ||||
-rw-r--r-- | tests/Makefile.am | 6 | ||||
-rw-r--r-- | tests/empathy-live-search-test.c | 75 |
3 files changed, 81 insertions, 1 deletions
diff --git a/tests/.gitignore b/tests/.gitignore index f3af9c7fe..095174015 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -6,4 +6,5 @@ empathy-irc-network-manager-test empathy-chatroom-test empathy-chatroom-manager-test empathy-parser-test +empathy-live-search-test test-report.xml diff --git a/tests/Makefile.am b/tests/Makefile.am index 936761533..cf3d84cba 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -28,7 +28,8 @@ TEST_PROGS = \ empathy-irc-network-manager-test \ empathy-chatroom-test \ empathy-chatroom-manager-test \ - empathy-parser-test + empathy-parser-test \ + empathy-live-search-test empathy_utils_test_SOURCES = empathy-utils-test.c \ test-helper.c test-helper.h @@ -54,6 +55,9 @@ empathy_chatroom_manager_test_SOURCES = empathy-chatroom-manager-test.c \ empathy_parser_test_SOURCES = empathy-parser-test.c \ test-helper.c test-helper.h +empathy_live_search_test_SOURCES = empathy-live-search-test.c \ + test-helper.c test-helper.h + check_PROGRAMS = $(TEST_PROGS) TESTS_ENVIRONMENT = EMPATHY_SRCDIR=@abs_top_srcdir@ \ diff --git a/tests/empathy-live-search-test.c b/tests/empathy-live-search-test.c new file mode 100644 index 000000000..6263481a2 --- /dev/null +++ b/tests/empathy-live-search-test.c @@ -0,0 +1,75 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include "test-helper.h" + +#define DEBUG_FLAG EMPATHY_DEBUG_TESTS +#include <libempathy/empathy-debug.h> + +#include <libempathy-gtk/empathy-live-search.h> + +typedef struct +{ + const gchar *string; + const gchar *prefix; + gboolean should_match; +} LiveSearchTest; + +static void +test_live_search (void) +{ + LiveSearchTest tests[] = + { + /* Test word separators and case */ + { "Hello World", "he", TRUE }, + { "Hello World", "wo", TRUE }, + { "Hello World", "lo", FALSE }, + { "Hello World", "ld", FALSE }, + { "Hello-World", "wo", TRUE }, + { "HelloWorld", "wo", FALSE }, + + /* Test accentued letters */ + { "Jörgen", "jor", TRUE }, + { "Gaëtan", "gaetan", TRUE }, + { "élève", "ele", TRUE }, + { "Azais", "AzaÏs", TRUE }, + + { NULL, NULL, FALSE } + }; + guint i; + gboolean failed = FALSE; + + DEBUG ("Started"); + for (i = 0; tests[i].string != NULL; i ++) + { + gboolean match; + gboolean ok; + + match = empathy_live_search_match_string (tests[i].string, tests[i].prefix); + ok = (match == tests[i].should_match); + + DEBUG ("'%s' - '%s': %s", tests[i].string, tests[i].prefix, ok ? "OK" : "FAILED"); + + if (!ok) + failed = TRUE; + } + + g_assert (!failed); +} + +int +main (int argc, + char **argv) +{ + int result; + + test_init (argc, argv); + + g_test_add_func ("/live-search", test_live_search); + + result = g_test_run (); + test_deinit (); + + return result; +} |