aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile2
-rw-r--r--tests/check.c4
-rw-r--r--tests/check_crypting.c47
3 files changed, 52 insertions, 1 deletions
diff --git a/tests/Makefile b/tests/Makefile
index b9da83c9..7c959890 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -10,7 +10,7 @@ clean:
main_objs = account.o bitlbee.o conf.o crypting.o help.o ipc.o irc.o irc_commands.o log.o nick.o query.o root_commands.o set.o storage.o storage_xml.o storage_text.o user.o
-test_objs = check.o check_util.o check_nick.o check_md5.o check_irc.o check_help.o check_user.o
+test_objs = check.o check_util.o check_nick.o check_md5.o check_irc.o check_help.o check_user.o check_crypting.o
check: $(test_objs) $(addprefix ../, $(main_objs)) ../protocols/protocols.o ../lib/lib.o
@echo '*' Linking $@
diff --git a/tests/check.c b/tests/check.c
index 9fee07e3..bf76a89d 100644
--- a/tests/check.c
+++ b/tests/check.c
@@ -56,6 +56,9 @@ Suite *help_suite(void);
/* From check_user.c */
Suite *user_suite(void);
+/* From check_crypting.c */
+Suite *crypting_suite(void);
+
int main (int argc, char **argv)
{
int nf;
@@ -98,6 +101,7 @@ int main (int argc, char **argv)
srunner_add_suite(sr, irc_suite());
srunner_add_suite(sr, help_suite());
srunner_add_suite(sr, user_suite());
+ srunner_add_suite(sr, crypting_suite());
if (no_fork)
srunner_set_fork_status(sr, CK_NOFORK);
srunner_run_all (sr, verbose?CK_VERBOSE:CK_NORMAL);
diff --git a/tests/check_crypting.c b/tests/check_crypting.c
new file mode 100644
index 00000000..b8e5e1e0
--- /dev/null
+++ b/tests/check_crypting.c
@@ -0,0 +1,47 @@
+#include <stdlib.h>
+#include <glib.h>
+#include <gmodule.h>
+#include <check.h>
+#include <string.h>
+#include "bitlbee.h"
+#include "crypting.h"
+#include "testsuite.h"
+
+START_TEST(test_check_pass_valid)
+ fail_unless (checkpass ("foo", "acbd18db4cc2f85cedef654fccc4a4d8") == 0);
+ fail_unless (checkpass ("invalidpass", "acbd18db4cc2f85cedef654fccc4a4d8") == -1);
+
+END_TEST
+
+START_TEST(test_hashpass)
+ fail_unless (strcmp(hashpass("foo"), "acbd18db4cc2f85cedef654fccc4a4d8") == 0);
+END_TEST
+
+START_TEST(test_obfucrypt)
+ char *raw = obfucrypt("some line", "bla");
+ fail_unless(strcmp(raw, "\xd5\xdb\xce\xc7\x8c\xcd\xcb\xda\xc6") == 0);
+END_TEST
+
+START_TEST(test_deobfucrypt)
+ char *raw = deobfucrypt("\xd5\xdb\xce\xc7\x8c\xcd\xcb\xda\xc6", "bla");
+ fail_unless(strcmp(raw, "some line") == 0);
+END_TEST
+
+START_TEST(test_obfucrypt_bidirectional)
+ char *plain = g_strdup("this is a line");
+ char *raw = obfucrypt(plain, "foo");
+ fail_unless(strcmp(plain, deobfucrypt(raw, "foo")) == 0);
+END_TEST
+
+Suite *crypting_suite (void)
+{
+ Suite *s = suite_create("Crypting");
+ TCase *tc_core = tcase_create("Core");
+ suite_add_tcase (s, tc_core);
+ tcase_add_test (tc_core, test_check_pass_valid);
+ tcase_add_test (tc_core, test_hashpass);
+ tcase_add_test (tc_core, test_obfucrypt);
+ tcase_add_test (tc_core, test_deobfucrypt);
+ tcase_add_test (tc_core, test_obfucrypt_bidirectional);
+ return s;
+}