From d9f4abfd3f2e45946a8b6ac6cd330aa38c413f59 Mon Sep 17 00:00:00 2001 From: Andrzej Zaborowski Date: Mon, 7 Jun 2010 12:08:25 +0200 Subject: [PATCH] test-stkutil: SMS-PP Data Download envelope tests --- unit/test-stkutil.c | 171 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 171 insertions(+) diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c index eb50d173..d7b0c25e 100644 --- a/unit/test-stkutil.c +++ b/unit/test-stkutil.c @@ -17890,6 +17890,167 @@ static const struct terminal_response_test launch_browser_response_data_411b = { }, }; +struct envelope_test { + const unsigned char *pdu; + unsigned int pdu_len; + struct stk_envelope envelope; +}; + +static void test_envelope_encoding(gconstpointer data) +{ + const struct envelope_test *test = data; + const unsigned char *pdu; + unsigned int pdu_len; + + pdu = stk_pdu_from_envelope(&test->envelope, &pdu_len); + + if (test->pdu) + g_assert(pdu); + else + g_assert(pdu == NULL); + + g_assert(pdu_len == test->pdu_len); + g_assert(memcmp(pdu, test->pdu, pdu_len) == 0); +} + +static const unsigned char sms_pp_data_download_161[] = { + 0xd1, 0x2d, 0x82, 0x02, 0x83, 0x81, 0x06, 0x09, + 0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0xf8, 0x8b, 0x1c, 0x04, 0x04, 0x91, 0x21, 0x43, + 0x7f, 0x16, 0x89, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x20, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, +}; + +static const struct envelope_test sms_pp_data_download_data_161 = { + .pdu = sms_pp_data_download_161, + .pdu_len = sizeof(sms_pp_data_download_161), + .envelope = { + .type = STK_ENVELOPE_TYPE_SMS_PP_DOWNLOAD, + .src = STK_DEVICE_IDENTITY_TYPE_NETWORK, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + { .sms_pp_download = { + .address = { + .ton_npi = 0x91, /* Intl, ISDN */ + .number = "112233445566778", + }, + .message = { + .oaddr = { + .number_type = + SMS_NUMBER_TYPE_INTERNATIONAL, + .numbering_plan = + SMS_NUMBERING_PLAN_ISDN, + .address = "1234", + }, + .pid = SMS_PID_TYPE_USIM_DOWNLOAD, + .dcs = 0x16, /* Uncompressed, Class 2, 8-bit */ + .scts = { + .year = 98, + .month = 1, + .day = 1, + }, + .udl = 13, + .ud = "Short Message", + }, + }}, + }, +}; + +static const unsigned char sms_pp_data_download_162[] = { + 0xd1, 0x2d, 0x82, 0x02, 0x83, 0x81, 0x06, 0x09, + 0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0xf8, 0x8b, 0x1c, 0x04, 0x04, 0x91, 0x21, 0x43, + 0x7f, 0xf6, 0x89, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x20, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, +}; + +static const struct envelope_test sms_pp_data_download_data_162 = { + .pdu = sms_pp_data_download_162, + .pdu_len = sizeof(sms_pp_data_download_162), + .envelope = { + .type = STK_ENVELOPE_TYPE_SMS_PP_DOWNLOAD, + .src = STK_DEVICE_IDENTITY_TYPE_NETWORK, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + { .sms_pp_download = { + .address = { + .ton_npi = 0x91, /* Intl, ISDN */ + .number = "112233445566778", + }, + .message = { + .oaddr = { + .number_type = + SMS_NUMBER_TYPE_INTERNATIONAL, + .numbering_plan = + SMS_NUMBERING_PLAN_ISDN, + .address = "1234", + }, + .pid = SMS_PID_TYPE_USIM_DOWNLOAD, + .dcs = 0xf6, /* Data, Class 2, 8-bit */ + .scts = { + .year = 98, + .month = 1, + .day = 1, + }, + .udl = 13, + .ud = "Short Message", + }, + }}, + }, +}; + +static const unsigned char sms_pp_data_download_182[] = { + 0xd1, 0x3e, 0x82, 0x02, 0x83, 0x81, 0x06, 0x09, + 0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, + 0xf8, 0x8b, 0x2d, 0x44, 0x04, 0x91, 0x21, 0x43, + 0x7f, 0xf6, 0x89, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x02, 0x70, 0x00, 0x00, 0x19, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xdc, 0xdc, + 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, +}; + +static const struct envelope_test sms_pp_data_download_data_182 = { + .pdu = sms_pp_data_download_182, + .pdu_len = sizeof(sms_pp_data_download_182), + .envelope = { + .type = STK_ENVELOPE_TYPE_SMS_PP_DOWNLOAD, + .src = STK_DEVICE_IDENTITY_TYPE_NETWORK, + .dst = STK_DEVICE_IDENTITY_TYPE_UICC, + { .sms_pp_download = { + .address = { + .ton_npi = 0x91, /* Intl, ISDN */ + .number = "112233445566778", + }, + .message = { + .udhi = TRUE, + .oaddr = { + .number_type = + SMS_NUMBER_TYPE_INTERNATIONAL, + .numbering_plan = + SMS_NUMBERING_PLAN_ISDN, + .address = "1234", + }, + .pid = SMS_PID_TYPE_USIM_DOWNLOAD, + .dcs = 0xf6, /* Data, Class 2, 8-bit */ + .scts = { + .year = 98, + .month = 1, + .day = 1, + }, + .udl = 30, + .ud = { + 0x02, 0x70, 0x00, 0x00, 0x19, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0xbf, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0xdc, 0xdc, 0xdc, 0xdc, + 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, + }, + }, + }}, + }, +}; + int main(int argc, char **argv) { g_test_init(&argc, &argv, NULL); @@ -19560,5 +19721,15 @@ int main(int argc, char **argv) &launch_browser_response_data_411b, test_terminal_response_encoding); + g_test_add_data_func("/teststk/SMS-PP data download 1.6.1", + &sms_pp_data_download_data_161, + test_envelope_encoding); + g_test_add_data_func("/teststk/SMS-PP data download 1.6.2", + &sms_pp_data_download_data_162, + test_envelope_encoding); + g_test_add_data_func("/teststk/SMS-PP data download 1.8.2", + &sms_pp_data_download_data_182, + test_envelope_encoding); + return g_test_run(); }