tests: add a test for 25-character SMS messages

Tests that the last septet (packed in an octet by itself)
doesn't get left off the message like the old code used to
do before "core: fix some bugs in GSM7 packing code".
This commit is contained in:
Dan Williams
2012-01-18 12:56:52 -06:00
parent 9bba24941b
commit 3f4056caab

View File

@@ -572,6 +572,34 @@ test_create_pdu_gsm_no_smsc (void *f, gpointer d)
g_assert_cmpint (memcmp (pdu, expected, len), ==, 0);
}
static void
test_create_pdu_gsm_3 (void *f, gpointer d)
{
static const char *number = "+15556661234";
static const char *text = "This is really cool ΔΔΔΔΔ";
static const guint8 expected[] = {
0x00, 0x11, 0x00, 0x0B, 0x91, 0x51, 0x55, 0x66, 0x16, 0x32, 0xF4, 0x00,
0x00, 0x00, 0x19, 0x54, 0x74, 0x7A, 0x0E, 0x4A, 0xCF, 0x41, 0xF2, 0x72,
0x98, 0xCD, 0xCE, 0x83, 0xC6, 0xEF, 0x37, 0x1B, 0x04, 0x81, 0x40, 0x20,
0x10
};
guint8 *pdu;
guint len = 0;
GError *error = NULL;
/* Tests that a 25-character message (where the last septet is packed into
* an octet by itself) is created correctly. Previous to
* "core: fix some bugs in GSM7 packing code" the GSM packing code would
* leave off the last octet.
*/
pdu = sms_create_submit_pdu (number, text, NULL, 1, 0, &len, &error);
g_assert_no_error (error);
g_assert (pdu);
g_assert_cmpint (len, ==, sizeof (expected));
g_assert_cmpint (memcmp (pdu, expected, len), ==, 0);
}
#if 0
{
int i;
@@ -626,6 +654,8 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_create_pdu_gsm_with_smsc, NULL));
g_test_suite_add (suite, TESTCASE (test_create_pdu_gsm_no_smsc, NULL));
g_test_suite_add (suite, TESTCASE (test_create_pdu_gsm_3, NULL));
result = g_test_run ();
return result;