Mercurial > pidgin
view libpurple/tests/test_qq.c @ 28255:79c14adf9669
Change purple_url_encode() to not encode . _ - ~ because it's not
necessary. Also use capital letters instead of lowercase. RFC3986
says capital letters are a SHOULD and that lowercase letters should
be equivalent.
AOL's clientlogin authentication requires both of these changes for
our signature to match up with the signature generated on AOL's side.
Original I had implemented an oscar-specific version of our url
encode function with these two changes, but I'm pretty sure it's
safe to make this in purple_url_encode(). It looks like it's almost
always used to encode pieces of URLs. MSN uses it for a few other
things... I tested setting those characters in your friendly name
and it works fine.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 11 Sep 2009 18:17:03 +0000 |
parents | 2da9e4266742 |
children |
line wrap: on
line source
#include <string.h> #include "tests.h" #include "../protocols/qq/qq_crypt.h" START_TEST(test_qq_encrypt) { const guint8 * const key = (guint8 *)"hamburger"; guint8 crypted[80]; gint ret; ret = qq_encrypt(crypted, (const guint8 * const)"a", 1, key); assert_int_equal(16, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aa", 2, key); assert_int_equal(16, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaa", 3, key); assert_int_equal(16, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaa", 4, key); assert_int_equal(16, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaa", 5, key); assert_int_equal(16, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaa", 6, key); assert_int_equal(16, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaa", 7, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaa", 8, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaa", 9, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaa", 10, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaa", 11, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaa", 12, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaa", 13, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaaa", 14, key); assert_int_equal(24, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaaaa", 15, key); assert_int_equal(32, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaaaaa", 16, key); assert_int_equal(32, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaaaaaa", 17, key); assert_int_equal(32, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaaaaaaa", 18, key); assert_int_equal(32, ret); ret = qq_encrypt(crypted, (const guint8 * const)"aaaaaaaaaaaaaaaaaaa", 19, key); assert_int_equal(32, ret); /* fprintf(stderr, "crypted=%s\n", crypted); assert_string_equal_free("plain", yahoo_codes_to_html("plain")); */ } END_TEST START_TEST(test_qq_decrypt) { } END_TEST Suite * qq_suite(void) { Suite *s; TCase *tc; s = suite_create("QQ"); tc = tcase_create("QQ Crypt Functions"); tcase_add_test(tc, test_qq_encrypt); tcase_add_test(tc, test_qq_decrypt); suite_add_tcase(s, tc); return s; }