mirror of https://github.com/djcb/mu.git
* reindentation, fix mu_str_ascii_xapian_escape_in_place for '..'
This commit is contained in:
parent
000805ae1f
commit
e478eeee6d
79
src/mu-str.c
79
src/mu-str.c
|
@ -1,5 +1,7 @@
|
|||
/* -*-mode: c; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2010 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
||||
** Copyright (C) 2008-2011 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
||||
**
|
||||
** This program is free software; you can redistribute it and/or modify
|
||||
** it under the terms of the GNU General Public License as published by
|
||||
|
@ -179,7 +181,7 @@ cleanup_contact (char *contact)
|
|||
* good to cleanup corporate contact address spam... */
|
||||
c = g_strstr_len (contact, -1, "(");
|
||||
if (c && c - contact > 5)
|
||||
*c = '\0';
|
||||
*c = '\0';
|
||||
|
||||
g_strstrip (contact);
|
||||
}
|
||||
|
@ -289,37 +291,37 @@ is_xapian_prefix (const char *q, const char *colon)
|
|||
time_t
|
||||
mu_str_date_parse_hdwmy (const char* str)
|
||||
{
|
||||
long int num;
|
||||
char *end;
|
||||
time_t now, delta;
|
||||
time_t never = (time_t)-1;
|
||||
long int num;
|
||||
char *end;
|
||||
time_t now, delta;
|
||||
time_t never = (time_t)-1;
|
||||
|
||||
g_return_val_if_fail (str, never);
|
||||
g_return_val_if_fail (str, never);
|
||||
|
||||
num = strtol (str, &end, 10);
|
||||
if (num <= 0 || num > 9999)
|
||||
return never;
|
||||
num = strtol (str, &end, 10);
|
||||
if (num <= 0 || num > 9999)
|
||||
return never;
|
||||
|
||||
if (!end || end[1] != '\0')
|
||||
return never;
|
||||
if (!end || end[1] != '\0')
|
||||
return never;
|
||||
|
||||
switch (end[0]) {
|
||||
case 'h': /* hour */
|
||||
delta = num * 60 * 60; break;
|
||||
case 'd': /* day */
|
||||
delta = num * 24 * 60 * 60; break;
|
||||
case 'w': /* week */
|
||||
delta = num * 7 * 24 * 60 * 60; break;
|
||||
case 'm':
|
||||
delta = num * 30 * 24 * 60 * 60; break;
|
||||
case 'y':
|
||||
delta = num * 365 * 24 * 60 * 60; break;
|
||||
default:
|
||||
return never;
|
||||
}
|
||||
switch (end[0]) {
|
||||
case 'h': /* hour */
|
||||
delta = num * 60 * 60; break;
|
||||
case 'd': /* day */
|
||||
delta = num * 24 * 60 * 60; break;
|
||||
case 'w': /* week */
|
||||
delta = num * 7 * 24 * 60 * 60; break;
|
||||
case 'm':
|
||||
delta = num * 30 * 24 * 60 * 60; break;
|
||||
case 'y':
|
||||
delta = num * 365 * 24 * 60 * 60; break;
|
||||
default:
|
||||
return never;
|
||||
}
|
||||
|
||||
now = time(NULL);
|
||||
return delta <= now ? now - delta : never;
|
||||
now = time(NULL);
|
||||
return delta <= now ? now - delta : never;
|
||||
}
|
||||
|
||||
guint64
|
||||
|
@ -341,13 +343,17 @@ mu_str_size_parse_kmg (const char* str)
|
|||
case 'b': return num; /* bytes */
|
||||
case 'k': return num * 1000; /* kilobyte */
|
||||
case 'm': return num * 1000 * 1000; /* megabyte */
|
||||
/* case 'g': return num * 1000 * 1000 * 1000; /\* gigabyte *\/ */
|
||||
/* case 'g': return num * 1000 * 1000 * 1000; /\* gigabyte *\/ */
|
||||
default:
|
||||
return G_MAXUINT64;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Xapian treats various characters such as '@', '-', ':' and '.'
|
||||
* specially; function below is an ugly hack to make it DWIM in most
|
||||
* cases...*/
|
||||
char*
|
||||
mu_str_ascii_xapian_escape_in_place (char *query)
|
||||
{
|
||||
|
@ -361,26 +367,25 @@ mu_str_ascii_xapian_escape_in_place (char *query)
|
|||
replace_dot = (g_strstr_len(query, -1, "@") != NULL);
|
||||
|
||||
for (cur = query; *cur; ++cur) {
|
||||
*cur = tolower(*cur);
|
||||
|
||||
if (*cur == '@' || *cur == '-')
|
||||
*cur = '_';
|
||||
|
||||
else if (*cur == '.') {
|
||||
/* don't replace a final cur */
|
||||
if (cur[1] == '.' || cur[1]== ' ' || cur[1]=='\t')
|
||||
cur += 2;
|
||||
else if (cur[1] == '\0')
|
||||
if (cur[1]== ' ' || cur[1]=='\t' || cur[1] == '\0' ||
|
||||
cur[1]== '.')
|
||||
++cur;
|
||||
else
|
||||
*cur = '_';
|
||||
} else if (*cur == ':') {
|
||||
/* if there's a registered xapian prefix before the
|
||||
* ':', don't touch it. Otherwise replace ':' with
|
||||
* a space'... ugly...
|
||||
*/
|
||||
* a space'... ugh yuck ugly...
|
||||
*/
|
||||
if (!is_xapian_prefix (query, cur))
|
||||
*cur = '_';
|
||||
} else
|
||||
*cur = tolower(*cur);
|
||||
}
|
||||
}
|
||||
|
||||
return query;
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
/* -*-mode: c; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-*/
|
||||
|
||||
/*
|
||||
** Copyright (C) 2008-2010 Dirk-Jan C. Binnema <djcb@djcbsoftware.nl>
|
||||
**
|
||||
|
@ -35,26 +37,26 @@
|
|||
static void
|
||||
test_mu_str_date_01 (void)
|
||||
{
|
||||
struct tm *tmbuf;
|
||||
char buf[64];
|
||||
gchar *tmp;
|
||||
time_t some_time;
|
||||
struct tm *tmbuf;
|
||||
char buf[64];
|
||||
gchar *tmp;
|
||||
time_t some_time;
|
||||
|
||||
some_time = 1234567890;
|
||||
tmbuf = localtime (&some_time);
|
||||
strftime (buf, 64, "%x", tmbuf);
|
||||
some_time = 1234567890;
|
||||
tmbuf = localtime (&some_time);
|
||||
strftime (buf, 64, "%x", tmbuf);
|
||||
|
||||
/* $ date -ud@1234567890; Fri Feb 13 23:31:30 UTC 2009 */
|
||||
g_assert_cmpstr (mu_str_date_s ("%x", some_time), ==, buf);
|
||||
/* $ date -ud@1234567890; Fri Feb 13 23:31:30 UTC 2009 */
|
||||
g_assert_cmpstr (mu_str_date_s ("%x", some_time), ==, buf);
|
||||
|
||||
/* date -ud@987654321 Thu Apr 19 04:25:21 UTC 2001 */
|
||||
some_time = 987654321;
|
||||
tmbuf = localtime (&some_time);
|
||||
strftime (buf, 64, "%c", tmbuf);
|
||||
tmp = mu_str_date ("%c", some_time);
|
||||
/* date -ud@987654321 Thu Apr 19 04:25:21 UTC 2001 */
|
||||
some_time = 987654321;
|
||||
tmbuf = localtime (&some_time);
|
||||
strftime (buf, 64, "%c", tmbuf);
|
||||
tmp = mu_str_date ("%c", some_time);
|
||||
|
||||
g_assert_cmpstr (tmp, ==, buf);
|
||||
g_free (tmp);
|
||||
g_assert_cmpstr (tmp, ==, buf);
|
||||
g_free (tmp);
|
||||
|
||||
}
|
||||
|
||||
|
@ -62,22 +64,22 @@ test_mu_str_date_01 (void)
|
|||
static void
|
||||
test_mu_str_size_01 (void)
|
||||
{
|
||||
struct lconv *lc;
|
||||
char *tmp2;
|
||||
struct lconv *lc;
|
||||
char *tmp2;
|
||||
|
||||
lc = localeconv();
|
||||
lc = localeconv();
|
||||
|
||||
tmp2 = g_strdup_printf ("0%s0 kB", lc->decimal_point);
|
||||
g_assert_cmpstr (mu_str_size_s (0), ==, tmp2);
|
||||
g_free (tmp2);
|
||||
tmp2 = g_strdup_printf ("0%s0 kB", lc->decimal_point);
|
||||
g_assert_cmpstr (mu_str_size_s (0), ==, tmp2);
|
||||
g_free (tmp2);
|
||||
|
||||
tmp2 = g_strdup_printf ("100%s0 kB", lc->decimal_point);
|
||||
g_assert_cmpstr (mu_str_size_s (100000), ==, tmp2);
|
||||
g_free (tmp2);
|
||||
tmp2 = g_strdup_printf ("100%s0 kB", lc->decimal_point);
|
||||
g_assert_cmpstr (mu_str_size_s (100000), ==, tmp2);
|
||||
g_free (tmp2);
|
||||
|
||||
tmp2 = g_strdup_printf ("1%s1 MB", lc->decimal_point);
|
||||
g_assert_cmpstr (mu_str_size_s (1100*1000), ==, tmp2);
|
||||
g_free (tmp2);
|
||||
tmp2 = g_strdup_printf ("1%s1 MB", lc->decimal_point);
|
||||
g_assert_cmpstr (mu_str_size_s (1100*1000), ==, tmp2);
|
||||
g_free (tmp2);
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,17 +87,17 @@ test_mu_str_size_01 (void)
|
|||
static void
|
||||
test_mu_str_size_02 (void)
|
||||
{
|
||||
struct lconv *lc;
|
||||
char *tmp1, *tmp2;
|
||||
struct lconv *lc;
|
||||
char *tmp1, *tmp2;
|
||||
|
||||
lc = localeconv();
|
||||
lc = localeconv();
|
||||
|
||||
tmp2 = g_strdup_printf ("1%s0 MB", lc->decimal_point);
|
||||
tmp1 = mu_str_size (999999);
|
||||
g_assert_cmpstr (tmp1, !=, tmp2);
|
||||
tmp2 = g_strdup_printf ("1%s0 MB", lc->decimal_point);
|
||||
tmp1 = mu_str_size (999999);
|
||||
g_assert_cmpstr (tmp1, !=, tmp2);
|
||||
|
||||
g_free (tmp1);
|
||||
g_free (tmp2);
|
||||
g_free (tmp1);
|
||||
g_free (tmp2);
|
||||
}
|
||||
|
||||
|
||||
|
@ -103,26 +105,26 @@ test_mu_str_size_02 (void)
|
|||
static void
|
||||
test_mu_str_prio_01 (void)
|
||||
{
|
||||
g_assert_cmpstr(mu_msg_prio_name(MU_MSG_PRIO_LOW), ==, "low");
|
||||
g_assert_cmpstr(mu_msg_prio_name(MU_MSG_PRIO_NORMAL), ==, "normal");
|
||||
g_assert_cmpstr(mu_msg_prio_name(MU_MSG_PRIO_HIGH), ==, "high");
|
||||
g_assert_cmpstr(mu_msg_prio_name(MU_MSG_PRIO_LOW), ==, "low");
|
||||
g_assert_cmpstr(mu_msg_prio_name(MU_MSG_PRIO_NORMAL), ==, "normal");
|
||||
g_assert_cmpstr(mu_msg_prio_name(MU_MSG_PRIO_HIGH), ==, "high");
|
||||
}
|
||||
|
||||
|
||||
static gboolean
|
||||
ignore_error (const char* log_domain, GLogLevelFlags log_level,
|
||||
const gchar* msg, gpointer user_data)
|
||||
const gchar* msg, gpointer user_data)
|
||||
{
|
||||
return FALSE; /* don't abort */
|
||||
return FALSE; /* don't abort */
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_mu_str_prio_02 (void)
|
||||
{
|
||||
/* this must fail */
|
||||
g_test_log_set_fatal_handler ((GTestLogFatalFunc)ignore_error, NULL);
|
||||
g_assert_cmpstr (mu_msg_prio_name(666), ==, NULL);
|
||||
/* this must fail */
|
||||
g_test_log_set_fatal_handler ((GTestLogFatalFunc)ignore_error, NULL);
|
||||
g_assert_cmpstr (mu_msg_prio_name(666), ==, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
@ -130,93 +132,95 @@ test_mu_str_prio_02 (void)
|
|||
static void
|
||||
test_mu_str_normalize_01 (void)
|
||||
{
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* norm;
|
||||
} words [] = {
|
||||
{ "dantès", "dantes"},
|
||||
{ "foo", "foo" },
|
||||
{ "Föö", "foo" },
|
||||
{ "číslo", "cislo" },
|
||||
{ "hÆvý mëÐal ümláõt", "haevy medal umlaot"}
|
||||
};
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* norm;
|
||||
} words [] = {
|
||||
{ "dantès", "dantes"},
|
||||
{ "foo", "foo" },
|
||||
{ "Föö", "foo" },
|
||||
{ "číslo", "cislo" },
|
||||
{ "hÆvý mëÐal ümláõt", "haevy medal umlaot"}
|
||||
};
|
||||
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i) {
|
||||
gchar *str;
|
||||
str = mu_str_normalize (words[i].word, TRUE);
|
||||
g_assert_cmpstr (str, ==, words[i].norm);
|
||||
g_free (str);
|
||||
}
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i) {
|
||||
gchar *str;
|
||||
str = mu_str_normalize (words[i].word, TRUE);
|
||||
g_assert_cmpstr (str, ==, words[i].norm);
|
||||
g_free (str);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_mu_str_normalize_02 (void)
|
||||
{
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* norm;
|
||||
} words [] = {
|
||||
{ "DantèS", "DanteS"},
|
||||
{ "foo", "foo" },
|
||||
{ "Föö", "Foo" },
|
||||
{ "číslO", "cislO" },
|
||||
{ "hÆvý mëÐal ümláõt", "hAevy meDal umlaot"}
|
||||
};
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* norm;
|
||||
} words [] = {
|
||||
{ "DantèS", "DanteS"},
|
||||
{ "foo", "foo" },
|
||||
{ "Föö", "Foo" },
|
||||
{ "číslO", "cislO" },
|
||||
{ "hÆvý mëÐal ümláõt", "hAevy meDal umlaot"}
|
||||
};
|
||||
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i) {
|
||||
gchar *str;
|
||||
str = mu_str_normalize (words[i].word, FALSE);
|
||||
g_assert_cmpstr (str, ==, words[i].norm);
|
||||
g_free (str);
|
||||
}
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i) {
|
||||
gchar *str;
|
||||
str = mu_str_normalize (words[i].word, FALSE);
|
||||
g_assert_cmpstr (str, ==, words[i].norm);
|
||||
g_free (str);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_mu_str_ascii_xapian_escape (void)
|
||||
{
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* esc;
|
||||
} words [] = {
|
||||
{ "aap@noot.mies", "aap_noot_mies"},
|
||||
{ "Foo..Bar", "foo..bar" },
|
||||
{ "subject:test@foo", "subject:test_foo" },
|
||||
{ "xxx:test@bar", "xxx_test_bar" },
|
||||
};
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* esc;
|
||||
} words [] = {
|
||||
{ "aap@noot.mies", "aap_noot_mies"},
|
||||
{ "Foo..Bar", "foo..bar" },
|
||||
{ "Foo.Bar", "foo_bar" },
|
||||
{ "Foo. Bar", "foo. bar" },
|
||||
{ "subject:test@foo", "subject:test_foo" },
|
||||
{ "xxx:test@bar", "xxx_test_bar" },
|
||||
};
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i) {
|
||||
gchar *a = g_strdup (words[i].word);
|
||||
mu_str_ascii_xapian_escape_in_place (a);
|
||||
g_assert_cmpstr (a, ==, words[i].esc);
|
||||
g_free (a);
|
||||
}
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i) {
|
||||
gchar *a = g_strdup (words[i].word);
|
||||
mu_str_ascii_xapian_escape_in_place (a);
|
||||
g_assert_cmpstr (a, ==, words[i].esc);
|
||||
g_free (a);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_mu_str_display_contact (void)
|
||||
{
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* disp;
|
||||
} words [] = {
|
||||
{ "\"Foo Bar\" <aap@noot.mies>", "Foo Bar"},
|
||||
{ "Foo Bar <aap@noot.mies>", "Foo Bar" },
|
||||
{ "<aap@noot.mies>", "aap@noot.mies" },
|
||||
{ "foo@bar.nl", "foo@bar.nl" }
|
||||
};
|
||||
int i;
|
||||
struct {
|
||||
const char* word;
|
||||
const char* disp;
|
||||
} words [] = {
|
||||
{ "\"Foo Bar\" <aap@noot.mies>", "Foo Bar"},
|
||||
{ "Foo Bar <aap@noot.mies>", "Foo Bar" },
|
||||
{ "<aap@noot.mies>", "aap@noot.mies" },
|
||||
{ "foo@bar.nl", "foo@bar.nl" }
|
||||
};
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i)
|
||||
g_assert_cmpstr (mu_str_display_contact_s (words[i].word), ==,
|
||||
words[i].disp);
|
||||
for (i = 0; i != G_N_ELEMENTS(words); ++i)
|
||||
g_assert_cmpstr (mu_str_display_contact_s (words[i].word), ==,
|
||||
words[i].disp);
|
||||
}
|
||||
|
||||
|
||||
|
@ -224,78 +228,78 @@ test_mu_str_display_contact (void)
|
|||
static void
|
||||
test_mu_str_date_parse_hdwmy (void)
|
||||
{
|
||||
time_t diff;
|
||||
time_t diff;
|
||||
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("3h");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (3 * 60 * 60 - diff, <=, 1);
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("3h");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (3 * 60 * 60 - diff, <=, 1);
|
||||
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("5y");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (5 * 365 * 24 * 60 * 60 - diff, <=, 1);
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("5y");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (5 * 365 * 24 * 60 * 60 - diff, <=, 1);
|
||||
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("3m");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (3 * 30 * 24 * 60 * 60 - diff, <=, 1);
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("3m");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (3 * 30 * 24 * 60 * 60 - diff, <=, 1);
|
||||
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("21d");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (21 * 24 * 60 * 60 - diff, <=, 1);
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("21d");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (21 * 24 * 60 * 60 - diff, <=, 1);
|
||||
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("2w");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (2 * 7 * 24 * 60 * 60 - diff, <=, 1);
|
||||
diff = time(NULL) - mu_str_date_parse_hdwmy ("2w");
|
||||
g_assert (diff > 0);
|
||||
g_assert_cmpuint (2 * 7 * 24 * 60 * 60 - diff, <=, 1);
|
||||
|
||||
|
||||
g_assert_cmpint (mu_str_date_parse_hdwmy("-1y"),==, (time_t)-1);
|
||||
g_assert_cmpint (mu_str_date_parse_hdwmy("-1y"),==, (time_t)-1);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_mu_str_guess_first_name (void)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
struct {
|
||||
char *src, *exp;
|
||||
} tests[] = {
|
||||
{ "Richard M. Stallman", "Richard M." },
|
||||
{ "John Rambo", "John" },
|
||||
{ "Ivanhoe", "Ivanhoe" },
|
||||
{ "", "" }
|
||||
};
|
||||
struct {
|
||||
char *src, *exp;
|
||||
} tests[] = {
|
||||
{ "Richard M. Stallman", "Richard M." },
|
||||
{ "John Rambo", "John" },
|
||||
{ "Ivanhoe", "Ivanhoe" },
|
||||
{ "", "" }
|
||||
};
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(tests); ++i) {
|
||||
gchar *s;
|
||||
for (i = 0; i != G_N_ELEMENTS(tests); ++i) {
|
||||
gchar *s;
|
||||
|
||||
s = mu_str_guess_first_name (tests[i].src);
|
||||
g_assert_cmpstr (s, ==, tests[i].exp);
|
||||
g_free (s);
|
||||
}
|
||||
s = mu_str_guess_first_name (tests[i].src);
|
||||
g_assert_cmpstr (s, ==, tests[i].exp);
|
||||
g_free (s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_mu_str_guess_last_name (void)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
struct {
|
||||
char *src, *exp;
|
||||
} tests[] = {
|
||||
{ "Richard M. Stallman", "Stallman" },
|
||||
{ "John Rambo", "Rambo" },
|
||||
{ "Ivanhoe", "" },
|
||||
{ "", "" }
|
||||
};
|
||||
struct {
|
||||
char *src, *exp;
|
||||
} tests[] = {
|
||||
{ "Richard M. Stallman", "Stallman" },
|
||||
{ "John Rambo", "Rambo" },
|
||||
{ "Ivanhoe", "" },
|
||||
{ "", "" }
|
||||
};
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(tests); ++i) {
|
||||
gchar *s;
|
||||
for (i = 0; i != G_N_ELEMENTS(tests); ++i) {
|
||||
gchar *s;
|
||||
|
||||
s = mu_str_guess_last_name (tests[i].src);
|
||||
g_assert_cmpstr (s, ==, tests[i].exp);
|
||||
g_free (s);
|
||||
}
|
||||
s = mu_str_guess_last_name (tests[i].src);
|
||||
g_assert_cmpstr (s, ==, tests[i].exp);
|
||||
g_free (s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -303,24 +307,24 @@ test_mu_str_guess_last_name (void)
|
|||
static void
|
||||
test_mu_str_guess_nick (void)
|
||||
{
|
||||
int i;
|
||||
int i;
|
||||
|
||||
struct {
|
||||
char *src, *exp;
|
||||
} tests[] = {
|
||||
{ "Richard M. Stallman", "RichardMS" },
|
||||
{ "John Rambo", "JohnR" },
|
||||
{ "Ivanhoe", "Ivanhoe" },
|
||||
{ "", "" }
|
||||
};
|
||||
struct {
|
||||
char *src, *exp;
|
||||
} tests[] = {
|
||||
{ "Richard M. Stallman", "RichardMS" },
|
||||
{ "John Rambo", "JohnR" },
|
||||
{ "Ivanhoe", "Ivanhoe" },
|
||||
{ "", "" }
|
||||
};
|
||||
|
||||
for (i = 0; i != G_N_ELEMENTS(tests); ++i) {
|
||||
gchar *s;
|
||||
for (i = 0; i != G_N_ELEMENTS(tests); ++i) {
|
||||
gchar *s;
|
||||
|
||||
s = mu_str_guess_nick (tests[i].src);
|
||||
g_assert_cmpstr (s, ==, tests[i].exp);
|
||||
g_free (s);
|
||||
}
|
||||
s = mu_str_guess_nick (tests[i].src);
|
||||
g_assert_cmpstr (s, ==, tests[i].exp);
|
||||
g_free (s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -331,53 +335,53 @@ test_mu_str_guess_nick (void)
|
|||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
g_test_init (&argc, &argv, NULL);
|
||||
|
||||
/* mu_str_date */
|
||||
g_test_add_func ("/mu-str/mu-str-date",
|
||||
test_mu_str_date_01);
|
||||
/* mu_str_date */
|
||||
g_test_add_func ("/mu-str/mu-str-date",
|
||||
test_mu_str_date_01);
|
||||
|
||||
/* mu_str_size */
|
||||
g_test_add_func ("/mu-str/mu-str-size-01",
|
||||
test_mu_str_size_01);
|
||||
g_test_add_func ("/mu-str/mu-str-size-02",
|
||||
test_mu_str_size_02);
|
||||
/* mu_str_size */
|
||||
g_test_add_func ("/mu-str/mu-str-size-01",
|
||||
test_mu_str_size_01);
|
||||
g_test_add_func ("/mu-str/mu-str-size-02",
|
||||
test_mu_str_size_02);
|
||||
|
||||
/* mu_str_prio */
|
||||
g_test_add_func ("/mu-str/mu-str-prio-01",
|
||||
test_mu_str_prio_01);
|
||||
g_test_add_func ("/mu-str/mu-str-prio-02",
|
||||
test_mu_str_prio_02);
|
||||
/* mu_str_prio */
|
||||
g_test_add_func ("/mu-str/mu-str-prio-01",
|
||||
test_mu_str_prio_01);
|
||||
g_test_add_func ("/mu-str/mu-str-prio-02",
|
||||
test_mu_str_prio_02);
|
||||
|
||||
/* mu_str_normalize */
|
||||
g_test_add_func ("/mu-str/mu-str-normalize-01",
|
||||
test_mu_str_normalize_01);
|
||||
g_test_add_func ("/mu-str/mu-str-normalize-02",
|
||||
test_mu_str_normalize_02);
|
||||
/* mu_str_normalize */
|
||||
g_test_add_func ("/mu-str/mu-str-normalize-01",
|
||||
test_mu_str_normalize_01);
|
||||
g_test_add_func ("/mu-str/mu-str-normalize-02",
|
||||
test_mu_str_normalize_02);
|
||||
|
||||
g_test_add_func ("/mu-str/mu-str-ascii-xapian-escape",
|
||||
test_mu_str_ascii_xapian_escape);
|
||||
g_test_add_func ("/mu-str/mu-str-ascii-xapian-escape",
|
||||
test_mu_str_ascii_xapian_escape);
|
||||
|
||||
g_test_add_func ("/mu-str/mu-str-display_contact",
|
||||
test_mu_str_display_contact);
|
||||
g_test_add_func ("/mu-str/mu-str-display_contact",
|
||||
test_mu_str_display_contact);
|
||||
|
||||
|
||||
g_test_add_func ("/mu-str/mu-str_date_parse_hdwmy",
|
||||
test_mu_str_date_parse_hdwmy);
|
||||
g_test_add_func ("/mu-str/mu-str_date_parse_hdwmy",
|
||||
test_mu_str_date_parse_hdwmy);
|
||||
|
||||
g_test_add_func ("/mu-str/mu-str_guess_first_name",
|
||||
test_mu_str_guess_first_name);
|
||||
g_test_add_func ("/mu-str/mu-str_guess_last_name",
|
||||
test_mu_str_guess_last_name);
|
||||
g_test_add_func ("/mu-str/mu-str_guess_nick",
|
||||
test_mu_str_guess_nick);
|
||||
g_test_add_func ("/mu-str/mu-str_guess_first_name",
|
||||
test_mu_str_guess_first_name);
|
||||
g_test_add_func ("/mu-str/mu-str_guess_last_name",
|
||||
test_mu_str_guess_last_name);
|
||||
g_test_add_func ("/mu-str/mu-str_guess_nick",
|
||||
test_mu_str_guess_nick);
|
||||
|
||||
/* FIXME: add tests for mu_str_flags; but note the
|
||||
* function simply calls mu_msg_field_str */
|
||||
/* FIXME: add tests for mu_str_flags; but note the
|
||||
* function simply calls mu_msg_field_str */
|
||||
|
||||
g_log_set_handler (NULL,
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL| G_LOG_FLAG_RECURSION,
|
||||
(GLogFunc)black_hole, NULL);
|
||||
g_log_set_handler (NULL,
|
||||
G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL| G_LOG_FLAG_RECURSION,
|
||||
(GLogFunc)black_hole, NULL);
|
||||
|
||||
return g_test_run ();
|
||||
return g_test_run ();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue