diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-06-16 14:07:51 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2006-06-16 14:07:51 +0200 |
commit | 1fc2958b1e503b782081692c1a503bc7bba19fe1 (patch) | |
tree | 35c82559e1eb9de1a2bc8d7fe915ad00986cfcc7 /tests/check_nick.c | |
parent | c2fa8279933a103d6576d891e85c1801d90c65ef (diff) |
Add checks for nick functions as well, fix bug where nick lengths weren't
being honored.
Diffstat (limited to 'tests/check_nick.c')
-rw-r--r-- | tests/check_nick.c | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/tests/check_nick.c b/tests/check_nick.c new file mode 100644 index 00000000..5858e512 --- /dev/null +++ b/tests/check_nick.c @@ -0,0 +1,70 @@ +#include <stdlib.h> +#include <glib.h> +#include <gmodule.h> +#include <check.h> +#include <string.h> +#include "irc.h" +#include "set.h" +#include "util.h" + +START_TEST(test_nick_strip) +{ + int i; + const char *get[] = { "test:", "test", "test\n", + "thisisaveryveryveryverylongnick", + "thisisave:ryveryveryverylongnick", + "t::::est", + NULL }; + const char *expected[] = { "test", "test", "test", + "thisisaveryveryveryveryl", + "thisisaveryveryveryveryl", + "test", + NULL }; + + for (i = 0; get[i]; i++) { + char copy[30]; + strcpy(copy, get[i]); + nick_strip(copy); + fail_unless (strcmp(copy, expected[i]) == 0, + "(%d) nick_strip broken: %s -> %s (expected: %s)", + i, get[i], copy, expected[i]); + } +} +END_TEST + +START_TEST(test_nick_ok_ok) +{ + const char *nicks[] = { "foo", "bar", "bla[", "blie]", + "BreEZaH", "\\od^~", NULL }; + int i; + + for (i = 0; nicks[i]; i++) { + fail_unless (nick_ok(nicks[i]) == 1, + "nick_ok() failed: %s", nicks[i]); + } +} +END_TEST + +START_TEST(test_nick_ok_notok) +{ + const char *nicks[] = { "thisisaveryveryveryveryveryveryverylongnick", + "\nillegalchar", "", "nick%", NULL }; + int i; + + for (i = 0; nicks[i]; i++) { + fail_unless (nick_ok(nicks[i]) == 0, + "nick_ok() succeeded for invalid: %s", nicks[i]); + } +} +END_TEST + +Suite *nick_suite (void) +{ + Suite *s = suite_create("Nick"); + TCase *tc_core = tcase_create("Core"); + suite_add_tcase (s, tc_core); + tcase_add_test (tc_core, test_nick_ok_ok); + tcase_add_test (tc_core, test_nick_ok_notok); + tcase_add_test (tc_core, test_nick_strip); + return s; +} |