tests,cdma: test CDMA SMS with different text lengths

This commit is contained in:
Aleksander Morgado
2020-11-20 00:36:04 +01:00
parent 7ac42e7648
commit 3be07bb38d

View File

@@ -500,6 +500,42 @@ test_create_pdu_text_unicode_encoding (void)
expected, sizeof (expected));
}
static void
test_create_parse_pdu_text_ascii_encoding (void)
{
#define MAX_TEXT_LEN 100
guint i;
gchar text[MAX_TEXT_LEN + 1];
memset (text, 0, sizeof (text));
for (i = 0; i < MAX_TEXT_LEN; i++) {
MMSmsPart *part;
guint8 *pdu;
guint len = 0;
GError *error = NULL;
text[i]='A';
part = mm_sms_part_new (0, MM_SMS_PDU_TYPE_CDMA_SUBMIT);
mm_sms_part_set_cdma_teleservice_id (part, MM_SMS_CDMA_TELESERVICE_ID_WMT);
mm_sms_part_set_number (part, "123456789");
mm_sms_part_set_text (part, text);
pdu = mm_sms_part_cdma_get_submit_pdu (part, &len, NULL, &error);
g_assert_no_error (error);
g_assert (pdu != NULL);
mm_sms_part_free (part);
part = mm_sms_part_cdma_new_from_binary_pdu (0, pdu, len, NULL, &error);
g_assert_no_error (error);
g_assert (part != NULL);
g_assert_cmpuint (MM_SMS_CDMA_TELESERVICE_ID_WMT, ==, mm_sms_part_get_cdma_teleservice_id (part));
g_assert_cmpstr ("123456789", ==, mm_sms_part_get_number (part));
g_assert_cmpstr (text, ==, mm_sms_part_get_text (part));
mm_sms_part_free (part);
}
}
/************************************************************/
int main (int argc, char **argv)
@@ -520,5 +556,7 @@ int main (int argc, char **argv)
g_test_add_func ("/MM/SMS/CDMA/PDU-Creator/latin-encoding", test_create_pdu_text_latin_encoding);
g_test_add_func ("/MM/SMS/CDMA/PDU-Creator/unicode-encoding", test_create_pdu_text_unicode_encoding);
g_test_add_func ("/MM/SMS/CDMA/PDU-Creator-Parser/ascii-encoding", test_create_parse_pdu_text_ascii_encoding);
return g_test_run ();
}