diff options
Diffstat (limited to 'tests/empathy-live-search-test.c')
-rw-r--r-- | tests/empathy-live-search-test.c | 75 |
1 files changed, 75 insertions, 0 deletions
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; +} |