test-client-custom-summary.c: Added tests for regex queries
authorTristan Van Berkom <tristanvb@openismus.com>
Fri, 10 May 2013 08:23:16 +0000 (17:23 +0900)
committerTristan Van Berkom <tristanvb@openismus.com>
Mon, 27 May 2013 13:34:27 +0000 (22:34 +0900)
tests/libebook/Makefile.am
tests/libebook/client/test-client-custom-summary.c
tests/libebook/data/vcards/custom-10.vcf [new file with mode: 0644]
tests/libebook/data/vcards/custom-11.vcf [new file with mode: 0644]
tests/libebook/data/vcards/custom-12.vcf [new file with mode: 0644]

index fdf7a48..3240b27 100644 (file)
@@ -82,6 +82,9 @@ EXTRA_DIST = \
        $(srcdir)/data/vcards/custom-7.vcf      \
        $(srcdir)/data/vcards/custom-8.vcf      \
        $(srcdir)/data/vcards/custom-9.vcf      \
+       $(srcdir)/data/vcards/custom-10.vcf     \
+       $(srcdir)/data/vcards/custom-11.vcf     \
+       $(srcdir)/data/vcards/custom-12.vcf     \
        $(NULL)
 
 test_ebook_commit_contact_LDADD=$(TEST_LIBS)
index 989f333..82ac7ed 100644 (file)
@@ -69,7 +69,7 @@ static ETestServerClosure setup_default_closure = { E_TEST_SERVER_ADDRESS_BOOK,
 #  define CHECK_UNSUPPORTED_ERROR(data) (((ClientTestData *)(data))->phone_number_query != FALSE)
 #endif
 
-#define N_CONTACTS 9
+#define N_CONTACTS 12
 
 typedef struct {
        ETestServerClosure parent;
@@ -383,7 +383,7 @@ main (gint argc,
                                E_CONTACT_FULL_NAME,
                                E_BOOK_QUERY_BEGINS_WITH,
                                "B"),
-                       2,
+                       3,
                        suites[i].direct,
                        suites[i].custom,
                        FALSE);
@@ -622,6 +622,103 @@ main (gint argc,
                        suites[i].direct,
                        suites[i].custom,
                        TRUE);
+
+
+
+               /*********************************************
+                *             REGEX QUERIES FOLLOW          *
+                *********************************************/
+               add_client_test (
+                       suites[i].prefix,
+                       "/Regex/Normal/.*jack.*",
+                       suites[i].func,
+                       e_book_query_field_test (
+                               E_CONTACT_FULL_NAME,
+                               E_BOOK_QUERY_REGEX_NORMAL,
+                               ".*jack.*"),
+                       2,
+                       suites[i].direct,
+                       suites[i].custom,
+                       FALSE);
+
+               add_client_test (
+                       suites[i].prefix,
+                       "/Regex/Normal/Keypad/^[jkl5][ghi4][mno6].*",
+                       suites[i].func,
+                       e_book_query_field_test (
+                               E_CONTACT_FULL_NAME,
+                               E_BOOK_QUERY_REGEX_NORMAL,
+                               "^[jkl5][ghi4][mno6].*"),
+                       3,
+                       suites[i].direct,
+                       suites[i].custom,
+                       FALSE);
+
+               add_client_test (
+                       suites[i].prefix,
+                       "/Regex/Normal/Fuzzy/VanityNumber/ELEPHANT",
+                       suites[i].func,
+                       e_book_query_field_test (
+                               E_CONTACT_TEL,
+                               E_BOOK_QUERY_REGEX_NORMAL,
+                               ".*[def3]"           /* E */
+                               "[^\\da-z]*[jkl5]"    /* L */
+                               "[^\\da-z]*[def3]"    /* E */
+                               "[^\\da-z]*[pqrs7]"   /* P */
+                               "[^\\da-z]*[ghi4]"    /* H */
+                               "[^\\da-z]*[abc2]"    /* A */
+                               "[^\\da-z]*[mno6]"    /* N */
+                               "[^\\da-z]*[tuv8].*"),/* T */
+                       3,
+                       suites[i].direct,
+                       suites[i].custom,
+                       FALSE);
+
+               add_client_test (
+                       suites[i].prefix,
+                       "/Regex/Raw/.*Jack.*",
+                       suites[i].func,
+                       e_book_query_field_test (
+                               E_CONTACT_FULL_NAME,
+                               E_BOOK_QUERY_REGEX_RAW,
+                               ".*Jack.*"),
+                       2,
+                       suites[i].direct,
+                       suites[i].custom,
+                       FALSE);
+
+               add_client_test (
+                       suites[i].prefix,
+                       "/Regex/Raw/Keypad/^[jkl5][ghi4][mno6].*",
+                       suites[i].func,
+                       e_book_query_field_test (
+                                E_CONTACT_FULL_NAME,
+                               E_BOOK_QUERY_REGEX_RAW,
+                               "^[jklJKL5][ghiGHI4][mnoMNO6].*"),
+                       3,
+                       suites[i].direct,
+                       suites[i].custom,
+                       FALSE);
+
+               add_client_test (
+                       suites[i].prefix,
+                       "/Regex/Raw/Fuzzy/VanityNumber/ELEPHANT",
+                       suites[i].func,
+                       e_book_query_field_test (
+                               E_CONTACT_TEL,
+                               E_BOOK_QUERY_REGEX_RAW,
+                               ".*[defDEF3]"            /* E */
+                               "[^\\da-z]*[jklJKL5]"    /* L */
+                               "[^\\da-z]*[defDEF3]"    /* E */
+                               "[^\\da-z]*[pqrsPQRS7]"  /* P */
+                               "[^\\da-z]*[ghiGHI4]"    /* H */
+                               "[^\\da-z]*[abcABC2]"    /* A */
+                               "[^\\da-z]*[mnoMNO6]"    /* N */
+                               "[^\\da-z]*[tuvTUV8].*"),/* T */
+                       3,
+                       suites[i].direct,
+                       suites[i].custom,
+                       FALSE);
        }
 
        ret = e_test_server_utils_run ();
diff --git a/tests/libebook/data/vcards/custom-10.vcf b/tests/libebook/data/vcards/custom-10.vcf
new file mode 100644 (file)
index 0000000..48a1c20
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN:VCARD
+N:Morrison;Jim
+TEL;HOME:1 800 ELEPHANT
+EMAIL;TYPE=home,work:jim@morrison.com
+END:VCARD
diff --git a/tests/libebook/data/vcards/custom-11.vcf b/tests/libebook/data/vcards/custom-11.vcf
new file mode 100644 (file)
index 0000000..a0f0308
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN:VCARD
+N:Basinger;Kim
+TEL;HOME:1-800-ELEPHANT
+EMAIL;TYPE=home,work:kim@basinger.com
+END:VCARD
diff --git a/tests/libebook/data/vcards/custom-12.vcf b/tests/libebook/data/vcards/custom-12.vcf
new file mode 100644 (file)
index 0000000..5b011a0
--- /dev/null
@@ -0,0 +1,5 @@
+BEGIN:VCARD
+N:Stirling;Lindsey
+TEL;HOME:1.800 E L E P H A N T
+EMAIL;TYPE=home,work:lindsey@stirling.com
+END:VCARD