ofono/unit/test-stkutil.c

24393 lines
713 KiB
C
Raw Permalink Normal View History

/*
*
* oFono - Open Source Telephony
*
2011-10-10 20:40:17 +00:00
* Copyright (C) 2008-2011 Intel Corporation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <glib.h>
2018-12-29 20:15:04 +00:00
#include <ell/ell.h>
#include <ofono/types.h>
#include "smsutil.h"
#include "stkutil.h"
#include "util.h"
#include "stk-test-data.h"
#define MAX_ITEM 100
struct sms_submit_test {
gboolean rd;
enum sms_validity_period_format vpf;
gboolean rp;
gboolean udhi;
gboolean srr;
guint8 mr;
struct sms_address daddr;
guint8 pid;
guint8 dcs;
struct sms_validity_period vp;
guint8 udl;
guint8 ud[160];
};
struct sms_test {
struct sms_address sc_addr;
enum sms_type type;
union {
struct sms_deliver deliver;
struct sms_deliver_ack_report deliver_ack_report;
struct sms_deliver_err_report deliver_err_report;
struct sms_submit_test submit;
struct sms_submit_ack_report submit_ack_report;
struct sms_submit_err_report submit_err_report;
struct sms_command command;
struct sms_status_report status_report;
};
};
static gboolean g_mem_equal(const unsigned char *v1, const unsigned char *v2,
unsigned int len)
{
unsigned int i;
for (i = 0; i < len; i++)
if (v1[i] != v2[i])
return FALSE;
return TRUE;
}
static inline void check_common_bool(const ofono_bool_t command,
const ofono_bool_t test)
{
g_assert(command == test);
}
static inline void check_common_byte(const unsigned char command,
const unsigned char test)
{
g_assert(command == test);
}
static inline void check_common_text(const char *command, const char *test)
{
if (test == NULL) {
g_assert(command == NULL);
return;
}
g_assert(command != NULL);
g_assert(g_str_equal(command, test));
}
static inline void check_common_byte_array(
const struct stk_common_byte_array *command,
const struct stk_common_byte_array *test)
{
if (test->len == 0) {
g_assert(command->len == 0);
return;
}
g_assert(command->len != 0);
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->array, test->array, test->len));
}
/* Defined in TS 102.223 Section 8.1 */
static inline void check_address(const struct stk_address *command,
const struct stk_address *test)
{
g_assert(command->ton_npi == test->ton_npi);
check_common_text(command->number, test->number);
}
/* Defined in TS 102.223 Section 8.2 */
static inline void check_alpha_id(const char *command, const char *test)
{
if (test != NULL && strlen(test) > 0)
check_common_text(command, test);
else
g_assert(command == NULL);
}
/* Defined in TS 102.223 Section 8.3 */
static void check_subaddress(const struct stk_subaddress *command,
const struct stk_subaddress *test)
{
if (test->len == 0) {
g_assert(command->len == 0);
return;
}
g_assert(command->len != 0);
g_assert(g_mem_equal(command->subaddr, test->subaddr, test->len));
}
/* Defined in TS 102.223 Section 8.4 */
static void check_ccp(const struct stk_ccp *command,
const struct stk_ccp *test)
{
if (test->len == 0) {
g_assert(command->len == 0);
return;
}
g_assert(command->len != 0);
g_assert(g_mem_equal(command->ccp, test->ccp, test->len));
}
/* Defined in TS 102.223 Section 8.8 */
static void check_duration(const struct stk_duration *command,
const struct stk_duration *test)
{
g_assert(command->unit == test->unit);
g_assert(command->interval == test->interval);
}
/* Defined in TS 102.223 Section 8.9 */
static void check_item(const struct stk_item *command,
const struct stk_item *test)
{
g_assert(command->id == test->id);
check_common_text(command->text, test->text);
}
/* Defined in TS 102.223 Section 8.10 */
static inline void check_item_id(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
2018-12-29 20:15:04 +00:00
static void check_items(struct l_queue *command, const struct stk_item *test)
{
struct stk_item *si;
2018-12-29 20:15:04 +00:00
const struct l_queue_entry *entry;
unsigned int i = 0;
2018-12-29 20:15:04 +00:00
for (entry = l_queue_get_entries(command); entry; entry = entry->next) {
si = entry->data;
check_item(si, &test[i++]);
}
g_assert(test[i].id == 0);
}
/* Defined in TS 102.223 Section 8.11 */
static void check_response_length(const struct stk_response_length *command,
const struct stk_response_length *test)
{
g_assert(command->min == test->min);
g_assert(command->max == test->max);
}
/* Defined in TS 102.223 Section 8.13 */
static void check_gsm_sms(const struct sms *command,
const struct sms_test *test)
{
2010-06-30 15:24:15 +00:00
g_assert(command->sc_addr.number_type == test->sc_addr.number_type);
g_assert(command->sc_addr.numbering_plan ==
test->sc_addr.numbering_plan);
g_assert(g_str_equal(command->sc_addr.address, test->sc_addr.address));
switch (test->type) {
case SMS_TYPE_SUBMIT: {
const struct sms_submit *cs = &command->submit;
const struct sms_submit_test *ts = &test->submit;
enum sms_charset charset;
g_assert(cs->rd == ts->rd);
g_assert(cs->vpf == ts->vpf);
g_assert(cs->rp == ts->rp);
g_assert(cs->udhi == ts->udhi);
g_assert(cs->srr == ts->srr);
g_assert(cs->mr == ts->mr);
g_assert(cs->daddr.number_type == ts->daddr.number_type);
g_assert(cs->daddr.numbering_plan == ts->daddr.numbering_plan);
g_assert(g_str_equal(cs->daddr.address, ts->daddr.address));
g_assert(cs->pid == ts->pid);
g_assert(cs->dcs == ts->dcs);
switch (ts->vpf) {
case SMS_VALIDITY_PERIOD_FORMAT_RELATIVE:
g_assert(cs->vp.relative == ts->vp.relative);
break;
case SMS_VALIDITY_PERIOD_FORMAT_ABSOLUTE: {
const struct sms_scts *ca = &cs->vp.absolute;
const struct sms_scts *ta = &ts->vp.absolute;
g_assert(ca->year == ta->year);
g_assert(ca->month == ta->month);
g_assert(ca->day == ta->day);
g_assert(ca->hour == ta->hour);
g_assert(ca->minute == ta->minute);
g_assert(ca->second == ta->second);
g_assert(ca->has_timezone == ta->has_timezone);
if (ta->has_timezone)
g_assert(ca->timezone == ta->timezone);
break;
}
case SMS_VALIDITY_PERIOD_FORMAT_ENHANCED:
g_assert(g_mem_equal(cs->vp.enhanced,
ts->vp.enhanced, 7));
break;
default:
break;
}
g_assert(cs->udl == ts->udl);
sms_dcs_decode(ts->dcs, NULL, &charset, NULL, NULL);
if (charset == SMS_CHARSET_8BIT)
g_assert(g_str_equal(cs->ud, ts->ud));
else {
GSList *sms_list = NULL;
char *message;
sms_list = g_slist_prepend(sms_list, (void *)command);
message = sms_decode_text(sms_list);
g_assert(g_str_equal(message, ts->ud));
g_free(message);
2018-12-21 20:54:30 +00:00
g_slist_free(sms_list);
}
break;
}
default:
g_assert(FALSE);
}
}
2010-06-13 09:43:12 +00:00
/* Defined in TS 102.223 Section 8.14 */
static inline void check_ss(const struct stk_ss *command,
const struct stk_ss *test)
{
g_assert(command->ton_npi == test->ton_npi);
check_common_text(command->ss, test->ss);
}
/* Defined in TS 102.223 Section 8.15 */
static inline void check_text(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.16 */
static inline void check_tone(const ofono_bool_t command,
const ofono_bool_t test)
{
check_common_bool(command, test);
}
2010-06-17 10:35:07 +00:00
/* Defined in TS 102.223 Section 8.17 */
static inline void check_ussd(const struct stk_ussd_string *command,
const char *test)
{
char *utf8 = ussd_decode(command->dcs, command->len, command->string);
check_common_text(utf8, test);
2010-07-02 19:50:05 +00:00
g_free(utf8);
2010-06-17 10:35:07 +00:00
}
/* Defined in TS 102.223 Section 8.18 */
2018-12-29 20:15:04 +00:00
static void check_file_list(struct l_queue *command,
const struct stk_file *test)
{
struct stk_file *sf;
2018-12-29 20:15:04 +00:00
const struct l_queue_entry *entry = l_queue_get_entries(command);
unsigned int i = 0;
2018-12-29 20:15:04 +00:00
for (; entry; entry = entry->next) {
sf = entry->data;
g_assert(sf->len == test[i].len);
2018-12-29 20:15:04 +00:00
g_assert(!memcmp(sf->file, test[i++].file, sf->len));
}
g_assert(test[i].len == 0);
}
/* Defined in TS 102.223 Section 8.23 */
static inline void check_default_text(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.24 */
static void check_items_next_action_indicator(
const struct stk_items_next_action_indicator *command,
const struct stk_items_next_action_indicator *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.25 */
static void check_event_list(const struct stk_event_list *command,
const struct stk_event_list *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.31 */
static void check_icon_id(const struct stk_icon_id *command,
const struct stk_icon_id *test)
{
g_assert(command->id == test->id);
g_assert(command->qualifier == test->qualifier);
}
/* Defined in TS 102.223 Section 8.32 */
static void check_item_icon_id_list(const struct stk_item_icon_id_list *command,
const struct stk_item_icon_id_list *test)
{
g_assert(command->qualifier == test->qualifier);
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.35 */
static void check_c_apdu(const struct stk_c_apdu *command,
const struct stk_c_apdu *test)
{
g_assert(command->cla == test->cla);
g_assert(command->ins == test->ins);
g_assert(command->p1 == test->p1);
g_assert(command->p2 == test->p2);
g_assert(command->lc == test->lc);
g_assert(g_mem_equal(command->data, test->data, test->lc));
if (test->has_le)
g_assert(command->le == test->le);
}
/* Defined in TS 102.223 Section 8.37 */
static inline void check_timer_id(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
/* Defined in TS 102.223 Section 8.38 */
static inline void check_timer_value(const struct stk_timer_value *command,
const struct stk_timer_value *test)
{
g_assert(command->hour == test->hour);
g_assert(command->minute == test->minute);
g_assert(command->second == test->second);
}
/* Defined in TS 102.223 Section 8.40 */
static inline void check_at_command(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.43 */
static inline void check_imm_resp(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
/* Defined in TS 102.223 Section 8.44 */
static inline void check_dtmf_string(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.45 */
static inline void check_language(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.47 */
static inline void check_browser_id(const unsigned char command,
const unsigned char test)
{
check_common_byte(command, test);
}
/* Defined in TS 102.223 Section 8.48 */
static inline void check_url(const char *command, const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.49 */
static inline void check_bearer(const struct stk_common_byte_array *command,
const struct stk_common_byte_array *test)
{
check_common_byte_array(command, test);
}
/* Defined in TS 102.223 Section 8.50 */
static void check_provisioning_file_reference(const struct stk_file *command,
const struct stk_file *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->file, test->file, test->len));
}
2018-12-29 20:15:04 +00:00
static void check_provisioning_file_references(struct l_queue *command,
const struct stk_file *test)
{
struct stk_file *sf;
2018-12-29 20:15:04 +00:00
const struct l_queue_entry *l;
unsigned int i = 0;
2018-12-29 20:15:04 +00:00
for (l = l_queue_get_entries(command); l; l = l->next) {
sf = l->data;
check_provisioning_file_reference(sf, &test[i++]);
}
g_assert(test[i].len == 0);
}
/* Defined in TS 102.223 Section 8.52 */
static void check_bearer_desc(const struct stk_bearer_description *command,
const struct stk_bearer_description *test)
{
g_assert(command->type == test->type);
if (test->type == STK_BEARER_TYPE_GPRS_UTRAN) {
check_common_byte(command->gprs.precedence,
test->gprs.precedence);
check_common_byte(command->gprs.delay,
test->gprs.delay);
check_common_byte(command->gprs.reliability,
test->gprs.reliability);
check_common_byte(command->gprs.peak,
test->gprs.peak);
check_common_byte(command->gprs.mean,
test->gprs.mean);
check_common_byte(command->gprs.pdp_type,
test->gprs.pdp_type);
2011-03-31 18:50:01 +00:00
return;
}
}
/* Defined in TS 102.223 Section 8.53 */
static inline void check_channel_data(
const struct stk_common_byte_array *command,
const struct stk_common_byte_array *test)
{
check_common_byte_array(command, test);
}
/* Defined in TS 102.223 Section 8.58 */
static inline void check_other_address(
const struct stk_other_address *command,
const struct stk_other_address *test)
{
check_common_byte(command->type, test->type);
if (test->type == STK_ADDRESS_IPV4)
g_assert(command->addr.ipv4 == test->addr.ipv4);
else
g_assert(g_mem_equal(command->addr.ipv6, test->addr.ipv6, 16));
}
/* Defined in TS 102.223 Section 8.59 */
static void check_uicc_te_interface(const struct stk_uicc_te_interface *command,
const struct stk_uicc_te_interface *test)
{
check_common_byte(command->protocol, test->protocol);
g_assert(command->port == test->port);
}
/* Defined in TS 102.223 Section 8.60 */
static inline void check_aid(const struct stk_aid *command,
const struct stk_aid *test)
{
g_assert(g_mem_equal(command->aid, test->aid, test->len));
}
/* Defined in TS 102.223 Section 8.70 */
static inline void check_network_access_name(const char *command,
const char *test)
{
check_common_text(command, test);
}
/* Defined in TS 102.223 Section 8.71 */
static inline void check_cdma_sms_tpdu(
const struct stk_common_byte_array *command,
const struct stk_common_byte_array *test)
{
check_common_byte_array(command, test);
}
static void check_text_attr_html(const struct stk_text_attribute *test,
char *text, const char *expected_html)
{
char *html;
unsigned short attrs[256];
int i;
if (expected_html == NULL)
return;
for (i = 0; i < test->len; i += 4) {
attrs[i] = test->attributes[i];
attrs[i + 1] = test->attributes[i + 1];
attrs[i + 2] = test->attributes[i + 2];
attrs[i + 3] = test->attributes[i + 3];
}
html = stk_text_to_html(text, attrs, test->len / 4);
g_assert(memcmp(html, expected_html, strlen(expected_html)) == 0);
g_free(html);
}
/* Defined in TS 102.223 Section 8.72 */
static void check_text_attr(const struct stk_text_attribute *command,
const struct stk_text_attribute *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->attributes, test->attributes, test->len));
}
/* Defined in TS 102.223 Section 8.73 */
static void check_item_text_attribute_list(
const struct stk_item_text_attribute_list *command,
const struct stk_item_text_attribute_list *test)
{
g_assert(command->len == test->len);
g_assert(g_mem_equal(command->list, test->list, test->len));
}
/* Defined in TS 102.223 Section 8.80 */
static void check_frame_id(const struct stk_frame_id *command,
const struct stk_frame_id *test)
{
g_assert(command->has_id == test->has_id);
if (test->has_id)
g_assert(command->id == test->id);
}
struct display_text_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
const char *text;
struct stk_icon_id icon_id;
ofono_bool_t immediate_response;
struct stk_duration duration;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
const char *html;
};
static struct display_text_test display_text_data_111 = {
.pdu = display_text_111,
.pdu_len = sizeof(display_text_111),
.qualifier = 0x80,
.text = "Toolkit Test 1"
};
static struct display_text_test display_text_data_131 = {
.pdu = display_text_131,
.pdu_len = sizeof(display_text_131),
.qualifier = 0x81,
.text = "Toolkit Test 2"
};
static struct display_text_test display_text_data_141 = {
.pdu = display_text_141,
.pdu_len = sizeof(display_text_141),
.qualifier = 0x80,
.text = "Toolkit Test 3"
};
static struct display_text_test display_text_data_151 = {
.pdu = display_text_151,
.pdu_len = sizeof(display_text_151),
.qualifier = 0x00,
.text = "Toolkit Test 4"
};
static struct display_text_test display_text_data_161 = {
.pdu = display_text_161,
.pdu_len = sizeof(display_text_161),
.qualifier = 0x80,
.text = "This command instructs the ME to display a text message. "
"It allows the SIM to define the priority of that "
"message, and the text string format. Two types of "
"prio"
};
static struct display_text_test display_text_data_171 = {
.pdu = display_text_171,
.pdu_len = sizeof(display_text_171),
.qualifier = 0x80,
.text = "<GO-BACKWARDS>"
};
2010-03-01 21:16:01 +00:00
static struct display_text_test display_text_data_511 = {
.pdu = display_text_511,
.pdu_len = sizeof(display_text_511),
.qualifier = 0x80,
.text = "Basic Icon",
.icon_id = {
2010-05-10 10:38:47 +00:00
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
2010-03-01 21:16:01 +00:00
};
static struct display_text_test display_text_data_521 = {
.pdu = display_text_521,
.pdu_len = sizeof(display_text_521),
.qualifier = 0x80,
.text = "Colour Icon",
.icon_id = {
2010-05-10 10:38:47 +00:00
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
2010-03-01 21:16:01 +00:00
};
static struct display_text_test display_text_data_531 = {
.pdu = display_text_531,
.pdu_len = sizeof(display_text_531),
.qualifier = 0x80,
.text = "Basic Icon",
.icon_id = {
2010-05-10 10:38:47 +00:00
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
2010-03-01 21:16:01 +00:00
};
static struct display_text_test display_text_data_611 = {
.pdu = display_text_611,
.pdu_len = sizeof(display_text_611),
.qualifier = 0x80,
.text = "ЗДРАВСТВУЙТЕ"
};
2010-03-01 22:03:06 +00:00
static struct display_text_test display_text_data_711 = {
.pdu = display_text_711,
.pdu_len = sizeof(display_text_711),
.qualifier = 0x80,
.text = "10 Second",
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 10,
}
2010-03-01 22:03:06 +00:00
};
static struct display_text_test display_text_data_811 = {
.pdu = display_text_811,
.pdu_len = sizeof(display_text_811),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct display_text_test display_text_data_821 = {
.pdu = display_text_821,
.pdu_len = sizeof(display_text_821),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 },
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct display_text_test display_text_data_831 = {
.pdu = display_text_831,
.pdu_len = sizeof(display_text_831),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 },
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct display_text_test display_text_data_841 = {
.pdu = display_text_841,
.pdu_len = sizeof(display_text_841),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">"
"Text Attribute 1</span></div>",
};
static struct display_text_test display_text_data_851 = {
.pdu = display_text_851,
.pdu_len = sizeof(display_text_851),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">"
"Text Attribute 1</span></div>",
};
static struct display_text_test display_text_data_861 = {
.pdu = display_text_861,
.pdu_len = sizeof(display_text_861),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">"
"Text Attribute 1</span></div>",
};
static struct display_text_test display_text_data_871 = {
.pdu = display_text_871,
.pdu_len = sizeof(display_text_871),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">"
"Text Attribute 1</span></div>",
};
static struct display_text_test display_text_data_881 = {
.pdu = display_text_881,
.pdu_len = sizeof(display_text_881),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\""
"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Text Attribute 1</span></div>",
};
static struct display_text_test display_text_data_891 = {
.pdu = display_text_891,
.pdu_len = sizeof(display_text_891),
.qualifier = 0x80,
.text = "Text Attribute 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 },
},
.html = "<div style=\"text-align: left;\"><span style=\""
"text-decoration: line-through;color: #347235;"
"background-color: #FFFF00;\">Text Attribute 1</span></div>",
};
static struct display_text_test display_text_data_911 = {
.pdu = display_text_911,
.pdu_len = sizeof(display_text_911),
.qualifier = 0x80,
.text = "你好"
};
static struct display_text_test display_text_data_1011 = {
.pdu = display_text_1011,
.pdu_len = sizeof(display_text_1011),
.qualifier = 0x80,
.text = "80ル"
};
/* Defined in TS 102.384 Section 27.22.4.1 */
static void test_display_text(gconstpointer data)
{
const struct display_text_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_DISPLAY_TEXT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_DISPLAY);
g_assert(command->display_text.text);
check_text(command->display_text.text, test->text);
check_icon_id(&command->display_text.icon_id, &test->icon_id);
check_imm_resp(command->display_text.immediate_response,
test->immediate_response);
check_duration(&command->display_text.duration, &test->duration);
check_text_attr(&command->display_text.text_attr,
&test->text_attr);
check_text_attr_html(&command->display_text.text_attr,
command->display_text.text,
test->html);
check_frame_id(&command->display_text.frame_id, &test->frame_id);
2010-03-01 22:03:06 +00:00
stk_command_free(command);
}
2010-04-28 12:39:34 +00:00
struct get_inkey_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *text;
struct stk_icon_id icon_id;
struct stk_duration duration;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
char *html;
2010-04-28 12:39:34 +00:00
};
static unsigned char get_inkey_711[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x80, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22 };
static unsigned char get_inkey_712[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x80, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x2B, 0x22 };
static unsigned char get_inkey_912[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_922[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_932[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_942[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_943[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_952[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_953[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_962[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_963[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_972[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_973[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_982[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_983[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_992a[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22, 0xD0, 0x04, 0x00,
0x09, 0x00, 0xB4 };
static unsigned char get_inkey_992b[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_993[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static unsigned char get_inkey_9102[] = { 0xD0, 0x15, 0x81, 0x03, 0x01, 0x22,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0A, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x22,
0x23, 0x22 };
static struct get_inkey_test get_inkey_data_111 = {
.pdu = get_inkey_111,
.pdu_len = sizeof(get_inkey_111),
.qualifier = 0x00,
.text = "Enter \"+\""
};
static struct get_inkey_test get_inkey_data_121 = {
.pdu = get_inkey_121,
.pdu_len = sizeof(get_inkey_121),
.qualifier = 0x00,
.text = "Enter \"0\""
};
static struct get_inkey_test get_inkey_data_131 = {
.pdu = get_inkey_131,
.pdu_len = sizeof(get_inkey_131),
.qualifier = 0x00,
.text = "<GO-BACKWARDS>"
};
static struct get_inkey_test get_inkey_data_141 = {
.pdu = get_inkey_141,
.pdu_len = sizeof(get_inkey_141),
.qualifier = 0x00,
.text = "<ABORT>"
};
static struct get_inkey_test get_inkey_data_151 = {
.pdu = get_inkey_151,
.pdu_len = sizeof(get_inkey_151),
.qualifier = 0x01,
.text = "Enter \"q\""
};
static struct get_inkey_test get_inkey_data_161 = {
.pdu = get_inkey_161,
.pdu_len = sizeof(get_inkey_161),
.qualifier = 0x01,
.text = "Enter \"x\". This command instructs the ME to display text, "
"and to expect the user to enter a single character. Any "
"response entered by the user shall be passed t"
};
static struct get_inkey_test get_inkey_data_211 = {
.pdu = get_inkey_211,
.pdu_len = sizeof(get_inkey_211),
.qualifier = 0x00,
.text = "<TIME-OUT>"
};
static struct get_inkey_test get_inkey_data_311 = {
.pdu = get_inkey_311,
.pdu_len = sizeof(get_inkey_311),
.qualifier = 0x00,
.text = "ЗДРАВСТВУЙТЕ"
};
static struct get_inkey_test get_inkey_data_321 = {
.pdu = get_inkey_321,
.pdu_len = sizeof(get_inkey_321),
.qualifier = 0x00,
.text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙ"
};
static struct get_inkey_test get_inkey_data_411 = {
.pdu = get_inkey_411,
.pdu_len = sizeof(get_inkey_411),
.qualifier = 0x03,
.text = "Enter"
};
static struct get_inkey_test get_inkey_data_511 = {
.pdu = get_inkey_511,
.pdu_len = sizeof(get_inkey_511),
.qualifier = 0x04,
.text = "Enter YES"
};
static struct get_inkey_test get_inkey_data_512 = {
.pdu = get_inkey_512,
.pdu_len = sizeof(get_inkey_512),
.qualifier = 0x04,
.text = "Enter NO"
};
static struct get_inkey_test get_inkey_data_611 = {
.pdu = get_inkey_611,
.pdu_len = sizeof(get_inkey_611),
.qualifier = 0x00,
.text = "<NO-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_inkey_test get_inkey_data_621 = {
.pdu = get_inkey_621,
.pdu_len = sizeof(get_inkey_621),
.qualifier = 0x00,
.text = "<BASIC-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_inkey_test get_inkey_data_631 = {
.pdu = get_inkey_631,
.pdu_len = sizeof(get_inkey_631),
.qualifier = 0x00,
.text = "<NO-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_inkey_test get_inkey_data_641 = {
.pdu = get_inkey_641,
.pdu_len = sizeof(get_inkey_641),
.qualifier = 0x00,
.text = "<COLOUR-ICON>",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_inkey_test get_inkey_data_711 = {
.pdu = get_inkey_711,
.pdu_len = sizeof(get_inkey_711),
.qualifier = 0x80,
.text = "Enter \"+\""
};
static struct get_inkey_test get_inkey_data_712 = {
.pdu = get_inkey_712,
.pdu_len = sizeof(get_inkey_712),
.qualifier = 0x80,
.text = "Enter \"+\""
};
static struct get_inkey_test get_inkey_data_811 = {
.pdu = get_inkey_811,
.pdu_len = sizeof(get_inkey_811),
.qualifier = 0x00,
.text = "Enter \"+\"",
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 10
}
};
static struct get_inkey_test get_inkey_data_911 = {
.pdu = get_inkey_911,
.pdu_len = sizeof(get_inkey_911),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"+\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_912 = {
.pdu = get_inkey_912,
.pdu_len = sizeof(get_inkey_912),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_921 = {
.pdu = get_inkey_921,
.pdu_len = sizeof(get_inkey_921),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x01, 0xB4 }
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"+\"</span>"
"</div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_922 = {
.pdu = get_inkey_922,
.pdu_len = sizeof(get_inkey_922),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_931 = {
.pdu = get_inkey_931,
.pdu_len = sizeof(get_inkey_931),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x02, 0xB4 }
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"+\"</span>"
"</div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_932 = {
.pdu = get_inkey_932,
.pdu_len = sizeof(get_inkey_932),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_941 = {
.pdu = get_inkey_941,
.pdu_len = sizeof(get_inkey_941),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x04, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">Enter \"+\""
"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_942 = {
.pdu = get_inkey_942,
.pdu_len = sizeof(get_inkey_942),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"#\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_943 = {
.pdu = get_inkey_943,
.pdu_len = sizeof(get_inkey_943),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_951 = {
.pdu = get_inkey_951,
.pdu_len = sizeof(get_inkey_951),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x08, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">"
"Enter \"+\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_952 = {
.pdu = get_inkey_952,
.pdu_len = sizeof(get_inkey_952),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"#\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_953 = {
.pdu = get_inkey_953,
.pdu_len = sizeof(get_inkey_953),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_961 = {
.pdu = get_inkey_961,
.pdu_len = sizeof(get_inkey_961),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x10, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">Enter \"+\""
"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_962 = {
.pdu = get_inkey_962,
.pdu_len = sizeof(get_inkey_962),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"#\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_963 = {
.pdu = get_inkey_963,
.pdu_len = sizeof(get_inkey_963),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_971 = {
.pdu = get_inkey_971,
.pdu_len = sizeof(get_inkey_971),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x20, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">"
"Enter \"+\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_972 = {
.pdu = get_inkey_972,
.pdu_len = sizeof(get_inkey_972),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"#\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_973 = {
.pdu = get_inkey_973,
.pdu_len = sizeof(get_inkey_973),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_981 = {
.pdu = get_inkey_981,
.pdu_len = sizeof(get_inkey_981),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x40, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\""
"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Enter \"+\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_982 = {
.pdu = get_inkey_982,
.pdu_len = sizeof(get_inkey_982),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"#\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_983 = {
.pdu = get_inkey_983,
.pdu_len = sizeof(get_inkey_983),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_991 = {
.pdu = get_inkey_991,
.pdu_len = sizeof(get_inkey_991),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x80, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\""
"text-decoration: line-through;color: #347235;"
"background-color: #FFFF00;\">Enter \"+\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_992a = {
.pdu = get_inkey_992a,
.pdu_len = sizeof(get_inkey_992a),
.qualifier = 0x00,
.text = "Enter \"#\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"#\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_992b = {
.pdu = get_inkey_992b,
.pdu_len = sizeof(get_inkey_992b),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_993 = {
.pdu = get_inkey_993,
.pdu_len = sizeof(get_inkey_993),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_9101 = {
.pdu = get_inkey_9101,
.pdu_len = sizeof(get_inkey_9101),
.qualifier = 0x00,
.text = "Enter \"+\"",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter \"+\"</span></div>",
2010-04-28 12:39:34 +00:00
};
static struct get_inkey_test get_inkey_data_9102 = {
.pdu = get_inkey_9102,
.pdu_len = sizeof(get_inkey_9102),
.qualifier = 0x00,
.text = "Enter \"#\""
};
static struct get_inkey_test get_inkey_data_1011 = {
.pdu = get_inkey_1011,
.pdu_len = sizeof(get_inkey_1011),
.qualifier = 0x00,
.text = "你好"
};
static struct get_inkey_test get_inkey_data_1021 = {
.pdu = get_inkey_1021,
.pdu_len = sizeof(get_inkey_1021),
.qualifier = 0x00,
.text = "你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好"
};
static struct get_inkey_test get_inkey_data_1111 = {
.pdu = get_inkey_1111,
.pdu_len = sizeof(get_inkey_1111),
.qualifier = 0x03,
.text = "Enter"
};
static struct get_inkey_test get_inkey_data_1211 = {
.pdu = get_inkey_1211,
.pdu_len = sizeof(get_inkey_1211),
.qualifier = 0x00,
.text = ""
};
static struct get_inkey_test get_inkey_data_1221 = {
.pdu = get_inkey_1221,
.pdu_len = sizeof(get_inkey_1221),
.qualifier = 0x00,
.text = "ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルル"
};
static struct get_inkey_test get_inkey_data_1311 = {
.pdu = get_inkey_1311,
.pdu_len = sizeof(get_inkey_1311),
.qualifier = 0x03,
.text = "Enter"
};
/* Defined in TS 102.384 Section 27.22.4.2 */
static void test_get_inkey(gconstpointer data)
{
const struct get_inkey_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
2010-04-28 12:39:34 +00:00
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_INKEY);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
g_assert(command->get_inkey.text);
check_text(command->get_inkey.text, test->text);
2010-04-28 12:39:34 +00:00
check_icon_id(&command->get_inkey.icon_id, &test->icon_id);
check_duration(&command->get_inkey.duration, &test->duration);
check_text_attr(&command->get_inkey.text_attr,
&test->text_attr);
check_text_attr_html(&command->get_inkey.text_attr,
command->get_inkey.text, test->html);
2010-04-28 12:39:34 +00:00
check_frame_id(&command->get_inkey.frame_id, &test->frame_id);
stk_command_free(command);
}
struct get_input_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *text;
struct stk_response_length resp_len;
char *default_text;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
char *html;
};
static unsigned char get_input_711[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x80, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x31,
0x32, 0x33, 0x34, 0x35, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_812[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_822[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_832[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_842[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_843[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_852[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_853[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_862[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_863[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_872[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_873[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_882[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_883[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_892[] = { 0xD0, 0x21, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05, 0xD0, 0x04,
0x00, 0x0B, 0x00, 0xB4 };
static unsigned char get_input_893[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x33,
0x33, 0x33, 0x33, 0x33, 0x91,
0x02, 0x05, 0x05 };
static unsigned char get_input_8102[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
0x00, 0x82, 0x02, 0x81, 0x82,
0x8D, 0x0C, 0x04, 0x45, 0x6E,
0x74, 0x65, 0x72, 0x20, 0x32,
0x32, 0x32, 0x32, 0x32, 0x91,
0x02, 0x05, 0x05 };
static struct get_input_test get_input_data_111 = {
.pdu = get_input_111,
.pdu_len = sizeof(get_input_111),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_121 = {
.pdu = get_input_121,
.pdu_len = sizeof(get_input_121),
.qualifier = 0x08,
.text = "Enter 67*#+",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_131 = {
.pdu = get_input_131,
.pdu_len = sizeof(get_input_131),
.qualifier = 0x01,
.text = "Enter AbCdE",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_141 = {
.pdu = get_input_141,
.pdu_len = sizeof(get_input_141),
.qualifier = 0x04,
.text = "Password 1<SEND>2345678",
.resp_len = {
.min = 4,
.max = 8
}
};
static struct get_input_test get_input_data_151 = {
.pdu = get_input_151,
.pdu_len = sizeof(get_input_151),
.qualifier = 0x00,
.text = "Enter 1..9,0..9,0(1)",
.resp_len = {
.min = 1,
.max = 20
}
};
static struct get_input_test get_input_data_161 = {
.pdu = get_input_161,
.pdu_len = sizeof(get_input_161),
.qualifier = 0x00,
.text = "<GO-BACKWARDS>",
.resp_len = {
.min = 0,
.max = 8
}
};
static struct get_input_test get_input_data_171 = {
.pdu = get_input_171,
.pdu_len = sizeof(get_input_171),
.qualifier = 0x00,
.text = "<ABORT>",
.resp_len = {
.min = 0,
.max = 8
}
};
static struct get_input_test get_input_data_181 = {
.pdu = get_input_181,
.pdu_len = sizeof(get_input_181),
.qualifier = 0x00,
.text = "***1111111111###***2222222222###***3333333333###"
"***4444444444###***5555555555###***6666666666###"
"***7777777777###***8888888888###***9999999999###"
"***0000000000###",
.resp_len = {
.min = 160,
.max = 160
}
};
static struct get_input_test get_input_data_191 = {
.pdu = get_input_191,
.pdu_len = sizeof(get_input_191),
.qualifier = 0x00,
.text = "<SEND>",
.resp_len = {
.min = 0,
.max = 1
}
};
static struct get_input_test get_input_data_1101 = {
.pdu = get_input_1101,
.pdu_len = sizeof(get_input_1101),
.qualifier = 0x00,
2010-12-10 16:26:09 +00:00
.text = "",
.resp_len = {
.min = 1,
.max = 5
}
};
static struct get_input_test get_input_data_211 = {
.pdu = get_input_211,
.pdu_len = sizeof(get_input_211),
.qualifier = 0x00,
.text = "<TIME-OUT>",
.resp_len = {
.min = 0,
.max = 10
}
};
static struct get_input_test get_input_data_311 = {
.pdu = get_input_311,
.pdu_len = sizeof(get_input_311),
.qualifier = 0x01,
.text = "ЗДРАВСТВУЙТЕ",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_321 = {
.pdu = get_input_321,
.pdu_len = sizeof(get_input_321),
.qualifier = 0x01,
.text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙ",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_411 = {
.pdu = get_input_411,
.pdu_len = sizeof(get_input_411),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 12,
.max = 12
}
};
static struct get_input_test get_input_data_421 = {
.pdu = get_input_421,
.pdu_len = sizeof(get_input_421),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 5,
.max = 0xFF
}
};
static struct get_input_test get_input_data_511 = {
.pdu = get_input_511,
.pdu_len = sizeof(get_input_511),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.default_text = "12345"
};
static struct get_input_test get_input_data_521 = {
.pdu = get_input_521,
.pdu_len = sizeof(get_input_521),
.qualifier = 0x00,
.text = "Enter:",
.resp_len = {
.min = 160,
.max = 160
},
.default_text = "***1111111111###***2222222222###***3333333333###"
"***4444444444###***5555555555###***6666666666###"
"***7777777777###***8888888888###***9999999999###"
"***0000000000###"
};
static struct get_input_test get_input_data_611 = {
.pdu = get_input_611,
.pdu_len = sizeof(get_input_611),
.qualifier = 0x00,
.text = "<NO-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_input_test get_input_data_621 = {
.pdu = get_input_621,
.pdu_len = sizeof(get_input_621),
.qualifier = 0x00,
.text = "<BASIC-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct get_input_test get_input_data_631 = {
.pdu = get_input_631,
.pdu_len = sizeof(get_input_631),
.qualifier = 0x00,
.text = "<NO-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_input_test get_input_data_641 = {
.pdu = get_input_641,
.pdu_len = sizeof(get_input_641),
.qualifier = 0x00,
.text = "<COLOUR-ICON>",
.resp_len = {
.min = 0,
.max = 10
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct get_input_test get_input_data_711 = {
.pdu = get_input_711,
.pdu_len = sizeof(get_input_711),
.qualifier = 0x80,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_811 = {
.pdu = get_input_811,
.pdu_len = sizeof(get_input_811),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 12345</span></div>"
};
static struct get_input_test get_input_data_812 = {
.pdu = get_input_812,
.pdu_len = sizeof(get_input_812),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_821 = {
.pdu = get_input_821,
.pdu_len = sizeof(get_input_821),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x01, 0xB4 }
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 12345</span>"
"</div>",
};
static struct get_input_test get_input_data_822 = {
.pdu = get_input_822,
.pdu_len = sizeof(get_input_822),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_831 = {
.pdu = get_input_831,
.pdu_len = sizeof(get_input_831),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x02, 0xB4 }
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 12345</span>"
"</div>",
};
static struct get_input_test get_input_data_832 = {
.pdu = get_input_832,
.pdu_len = sizeof(get_input_832),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_841 = {
.pdu = get_input_841,
.pdu_len = sizeof(get_input_841),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x04, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">Enter 12345"
"</span></div>",
};
static struct get_input_test get_input_data_842 = {
.pdu = get_input_842,
.pdu_len = sizeof(get_input_842),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 22222</span></div>"
};
static struct get_input_test get_input_data_843 = {
.pdu = get_input_843,
.pdu_len = sizeof(get_input_843),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_851 = {
.pdu = get_input_851,
.pdu_len = sizeof(get_input_851),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x08, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">Enter "
"12345</span></div>",
};
static struct get_input_test get_input_data_852 = {
.pdu = get_input_852,
.pdu_len = sizeof(get_input_852),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 22222</span></div>",
};
static struct get_input_test get_input_data_853 = {
.pdu = get_input_853,
.pdu_len = sizeof(get_input_853),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_861 = {
.pdu = get_input_861,
.pdu_len = sizeof(get_input_861),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x10, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">Enter "
"12345</span></div>"
};
static struct get_input_test get_input_data_862 = {
.pdu = get_input_862,
.pdu_len = sizeof(get_input_862),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 22222</span></div>",
};
static struct get_input_test get_input_data_863 = {
.pdu = get_input_863,
.pdu_len = sizeof(get_input_863),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_871 = {
.pdu = get_input_871,
.pdu_len = sizeof(get_input_871),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x20, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">Enter "
"12345</span></div>",
};
static struct get_input_test get_input_data_872 = {
.pdu = get_input_872,
.pdu_len = sizeof(get_input_872),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 22222</span></div>",
};
static struct get_input_test get_input_data_873 = {
.pdu = get_input_873,
.pdu_len = sizeof(get_input_873),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_881 = {
.pdu = get_input_881,
.pdu_len = sizeof(get_input_881),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x40, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Enter 12345</span></div>",
};
static struct get_input_test get_input_data_882 = {
.pdu = get_input_882,
.pdu_len = sizeof(get_input_882),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 22222</span></div>",
};
static struct get_input_test get_input_data_883 = {
.pdu = get_input_883,
.pdu_len = sizeof(get_input_883),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_891 = {
.pdu = get_input_891,
.pdu_len = sizeof(get_input_891),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x80, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: line-through;color: #347235;"
"background-color: #FFFF00;\">Enter 12345</span></div>",
};
static struct get_input_test get_input_data_892 = {
.pdu = get_input_892,
.pdu_len = sizeof(get_input_892),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 22222</span></div>",
};
static struct get_input_test get_input_data_893 = {
.pdu = get_input_893,
.pdu_len = sizeof(get_input_893),
.qualifier = 0x00,
.text = "Enter 33333",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_8101 = {
.pdu = get_input_8101,
.pdu_len = sizeof(get_input_8101),
.qualifier = 0x00,
.text = "Enter 12345",
.resp_len = {
.min = 5,
.max = 5
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Enter 12345</span></div>",
};
static struct get_input_test get_input_data_8102 = {
.pdu = get_input_8102,
.pdu_len = sizeof(get_input_8102),
.qualifier = 0x00,
.text = "Enter 22222",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_911 = {
.pdu = get_input_911,
.pdu_len = sizeof(get_input_911),
.qualifier = 0x01,
.text = "你好",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_921 = {
.pdu = get_input_921,
.pdu_len = sizeof(get_input_921),
.qualifier = 0x01,
.text = "你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好你好你好你好你好你好"
"你好你好你好你好你好",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_1011 = {
.pdu = get_input_1011,
.pdu_len = sizeof(get_input_1011),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 2,
.max = 2
}
};
static struct get_input_test get_input_data_1021 = {
.pdu = get_input_1021,
.pdu_len = sizeof(get_input_1021),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 5,
.max = 0xFF
}
};
static struct get_input_test get_input_data_1111 = {
.pdu = get_input_1111,
.pdu_len = sizeof(get_input_1111),
.qualifier = 0x01,
.text = "",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_1121 = {
.pdu = get_input_1121,
.pdu_len = sizeof(get_input_1121),
.qualifier = 0x01,
.text = "ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルルルルルルルルルルルル"
"ルルルルルルルルルル",
.resp_len = {
.min = 5,
.max = 5
}
};
static struct get_input_test get_input_data_1211 = {
.pdu = get_input_1211,
.pdu_len = sizeof(get_input_1211),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 2,
.max = 2
}
};
static struct get_input_test get_input_data_1221 = {
.pdu = get_input_1221,
.pdu_len = sizeof(get_input_1221),
.qualifier = 0x03,
.text = "Enter Hello",
.resp_len = {
.min = 5,
.max = 0xFF
}
};
/* Defined in TS 102.384 Section 27.22.4.3 */
static void test_get_input(gconstpointer data)
{
const struct get_input_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_INPUT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
if (test->text)
g_assert(command->get_input.text);
check_text(command->get_input.text, test->text);
check_response_length(&command->get_input.resp_len, &test->resp_len);
check_default_text(command->get_input.default_text, test->default_text);
check_icon_id(&command->get_input.icon_id, &test->icon_id);
check_text_attr(&command->get_input.text_attr,
&test->text_attr);
check_text_attr_html(&command->get_input.text_attr,
command->get_input.text, test->html);
check_frame_id(&command->get_input.frame_id, &test->frame_id);
stk_command_free(command);
}
struct more_time_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static struct more_time_test more_time_data_111 = {
.pdu = more_time_111,
.pdu_len = sizeof(more_time_111),
.qualifier = 0x00,
};
/* Defined in TS 102.384 Section 27.22.4.4 */
static void test_more_time(gconstpointer data)
{
const struct get_input_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_MORE_TIME);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct play_tone_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
unsigned char tone;
struct stk_duration duration;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
char *html;
};
static struct play_tone_test play_tone_data_111 = {
.pdu = play_tone_111,
.pdu_len = sizeof(play_tone_111),
.qualifier = 0x00,
.alpha_id = "Dial Tone",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_112 = {
.pdu = play_tone_112,
.pdu_len = sizeof(play_tone_112),
.qualifier = 0x00,
.alpha_id = "Sub. Busy",
.tone = STK_TONE_TYPE_BUSY_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_113 = {
.pdu = play_tone_113,
.pdu_len = sizeof(play_tone_113),
.qualifier = 0x00,
.alpha_id = "Congestion",
.tone = STK_TONE_TYPE_CONGESTION,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_114 = {
.pdu = play_tone_114,
.pdu_len = sizeof(play_tone_114),
.qualifier = 0x00,
.alpha_id = "RP Ack",
.tone = STK_TONE_TYPE_RP_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_115 = {
.pdu = play_tone_115,
.pdu_len = sizeof(play_tone_115),
.qualifier = 0x00,
.alpha_id = "No RP",
.tone = STK_TONE_TYPE_CALL_DROPPED,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_116 = {
.pdu = play_tone_116,
.pdu_len = sizeof(play_tone_116),
.qualifier = 0x00,
.alpha_id = "Spec Info",
.tone = STK_TONE_TYPE_ERROR,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_117 = {
.pdu = play_tone_117,
.pdu_len = sizeof(play_tone_117),
.qualifier = 0x00,
.alpha_id = "Call Wait",
.tone = STK_TONE_TYPE_CALL_WAITING,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_118 = {
.pdu = play_tone_118,
.pdu_len = sizeof(play_tone_118),
.qualifier = 0x00,
.alpha_id = "Ring Tone",
.tone = STK_TONE_TYPE_RINGING,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_119 = {
.pdu = play_tone_119,
.pdu_len = sizeof(play_tone_119),
.qualifier = 0x00,
.alpha_id = "This command instructs the ME to play an audio tone. "
"Upon receiving this command, the ME shall check "
"if it is currently in, or in the process of setting "
"up (SET-UP message sent to the network, see "
"GSM\"04.08\"(8)), a speech call. - If the ME I"
};
static struct play_tone_test play_tone_data_1110 = {
.pdu = play_tone_1110,
.pdu_len = sizeof(play_tone_1110),
.qualifier = 0x00,
.alpha_id = "Beep",
.tone = STK_TONE_TYPE_GENERAL_BEEP,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1111 = {
.pdu = play_tone_1111,
.pdu_len = sizeof(play_tone_1111),
.qualifier = 0x00,
.alpha_id = "Positive",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1112 = {
.pdu = play_tone_1112,
.pdu_len = sizeof(play_tone_1112),
.qualifier = 0x00,
.alpha_id = "Negative",
.tone = STK_TONE_TYPE_NEGATIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1113 = {
.pdu = play_tone_1113,
.pdu_len = sizeof(play_tone_1113),
.qualifier = 0x00,
.alpha_id = "Quick",
.tone = STK_TONE_TYPE_GENERAL_BEEP,
.duration = {
.unit = STK_DURATION_TYPE_SECOND_TENTHS,
.interval = 2
}
};
static struct play_tone_test play_tone_data_1114 = {
.pdu = play_tone_1114,
.pdu_len = sizeof(play_tone_1114),
.qualifier = 0x00,
.alpha_id = "<ABORT>",
.tone = STK_TONE_TYPE_ERROR,
.duration = {
.unit = STK_DURATION_TYPE_MINUTES,
.interval = 1
}
};
static struct play_tone_test play_tone_data_1115 = {
.pdu = play_tone_1115,
.pdu_len = sizeof(play_tone_1115),
.qualifier = 0x00
};
static struct play_tone_test play_tone_data_211 = {
.pdu = play_tone_211,
.pdu_len = sizeof(play_tone_211),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_212 = {
.pdu = play_tone_212,
.pdu_len = sizeof(play_tone_212),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_213 = {
.pdu = play_tone_213,
.pdu_len = sizeof(play_tone_213),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_311 = {
.pdu = play_tone_311,
.pdu_len = sizeof(play_tone_311),
.qualifier = 0x00,
.alpha_id = "<BASIC-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct play_tone_test play_tone_data_321 = {
.pdu = play_tone_321,
.pdu_len = sizeof(play_tone_321),
.qualifier = 0x00,
.alpha_id = "<BASIC-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct play_tone_test play_tone_data_331 = {
.pdu = play_tone_331,
.pdu_len = sizeof(play_tone_331),
.qualifier = 0x00,
.alpha_id = "<COLOUR-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct play_tone_test play_tone_data_341 = {
.pdu = play_tone_341,
.pdu_len = sizeof(play_tone_341),
.qualifier = 0x00,
.alpha_id = "<COLOUR-ICON>",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct play_tone_test play_tone_data_411 = {
.pdu = play_tone_411,
.pdu_len = sizeof(play_tone_411),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct play_tone_test play_tone_data_412 = {
.pdu = play_tone_412,
.pdu_len = sizeof(play_tone_412),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_421 = {
.pdu = play_tone_421,
.pdu_len = sizeof(play_tone_421),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct play_tone_test play_tone_data_422 = {
.pdu = play_tone_422,
.pdu_len = sizeof(play_tone_422),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_431 = {
.pdu = play_tone_431,
.pdu_len = sizeof(play_tone_431),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct play_tone_test play_tone_data_432 = {
.pdu = play_tone_432,
.pdu_len = sizeof(play_tone_432),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_441 = {
.pdu = play_tone_441,
.pdu_len = sizeof(play_tone_441),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">"
"Text Attribute 1</span></div>",
};
static struct play_tone_test play_tone_data_442 = {
.pdu = play_tone_442,
.pdu_len = sizeof(play_tone_442),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 2</span>"
"</div>",
};
static struct play_tone_test play_tone_data_443 = {
.pdu = play_tone_443,
.pdu_len = sizeof(play_tone_443),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_451 = {
.pdu = play_tone_451,
.pdu_len = sizeof(play_tone_451),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">"
"Text Attribute 1</span></div>",
};
static struct play_tone_test play_tone_data_452 = {
.pdu = play_tone_452,
.pdu_len = sizeof(play_tone_452),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 2</span>"
"</div>",
};
static struct play_tone_test play_tone_data_453 = {
.pdu = play_tone_453,
.pdu_len = sizeof(play_tone_453),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_461 = {
.pdu = play_tone_461,
.pdu_len = sizeof(play_tone_461),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x10, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">"
"Text Attribute</span></div> 1"
};
static struct play_tone_test play_tone_data_462 = {
.pdu = play_tone_462,
.pdu_len = sizeof(play_tone_462),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 2</span>"
"</div>",
};
static struct play_tone_test play_tone_data_463 = {
.pdu = play_tone_463,
.pdu_len = sizeof(play_tone_463),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_471 = {
.pdu = play_tone_471,
.pdu_len = sizeof(play_tone_471),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x20, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">"
"Text Attribute</span></div> 1",
};
static struct play_tone_test play_tone_data_472 = {
.pdu = play_tone_472,
.pdu_len = sizeof(play_tone_472),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 2</span>"
"</div>",
};
static struct play_tone_test play_tone_data_473 = {
.pdu = play_tone_473,
.pdu_len = sizeof(play_tone_473),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_481 = {
.pdu = play_tone_481,
.pdu_len = sizeof(play_tone_481),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Text Attribute 1</span></div>",
};
static struct play_tone_test play_tone_data_482 = {
.pdu = play_tone_482,
.pdu_len = sizeof(play_tone_482),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 2</span>"
"</div>",
};
static struct play_tone_test play_tone_data_483 = {
.pdu = play_tone_483,
.pdu_len = sizeof(play_tone_483),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_491 = {
.pdu = play_tone_491,
.pdu_len = sizeof(play_tone_491),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: line-through;color: #347235;"
"background-color: #FFFF00;\">Text Attribute 1</span></div>",
};
static struct play_tone_test play_tone_data_492 = {
.pdu = play_tone_492,
.pdu_len = sizeof(play_tone_492),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Text Attribute 2</span>"
"</div>",
};
static struct play_tone_test play_tone_data_493 = {
.pdu = play_tone_493,
.pdu_len = sizeof(play_tone_493),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_4101 = {
.pdu = play_tone_4101,
.pdu_len = sizeof(play_tone_4101),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
2012-11-02 17:55:13 +00:00
"#347235;background-color: #FFFF00;\">Text Attribute 1</span>"
"</div>",
};
static struct play_tone_test play_tone_data_4102 = {
.pdu = play_tone_4102,
.pdu_len = sizeof(play_tone_4102),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_511 = {
.pdu = play_tone_511,
.pdu_len = sizeof(play_tone_511),
.qualifier = 0x00,
.alpha_id = "中一",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_512 = {
.pdu = play_tone_512,
.pdu_len = sizeof(play_tone_512),
.qualifier = 0x00,
.alpha_id = "中一",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_513 = {
.pdu = play_tone_513,
.pdu_len = sizeof(play_tone_513),
.qualifier = 0x00,
.alpha_id = "中一",
.tone = STK_TONE_TYPE_POSITIVE_ACK,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 1
}
};
static struct play_tone_test play_tone_data_611 = {
.pdu = play_tone_611,
.pdu_len = sizeof(play_tone_611),
.qualifier = 0x00,
.alpha_id = "80ル0",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_612 = {
.pdu = play_tone_612,
.pdu_len = sizeof(play_tone_612),
.qualifier = 0x00,
.alpha_id = "81ル1",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
static struct play_tone_test play_tone_data_613 = {
.pdu = play_tone_613,
.pdu_len = sizeof(play_tone_613),
.qualifier = 0x00,
.alpha_id = "82ル2",
.tone = STK_TONE_TYPE_DIAL_TONE,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 5
}
};
/* Defined in TS 102.384 Section 27.22.4.5 */
static void test_play_tone(gconstpointer data)
{
const struct play_tone_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_PLAY_TONE);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_EARPIECE);
check_alpha_id(command->play_tone.alpha_id, test->alpha_id);
check_tone(command->play_tone.tone, test->tone);
check_duration(&command->play_tone.duration, &test->duration);
check_icon_id(&command->play_tone.icon_id, &test->icon_id);
check_text_attr(&command->play_tone.text_attr, &test->text_attr);
check_text_attr_html(&command->play_tone.text_attr,
command->play_tone.alpha_id, test->html);
check_frame_id(&command->play_tone.frame_id, &test->frame_id);
stk_command_free(command);
}
struct poll_interval_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
struct stk_duration duration;
};
static struct poll_interval_test poll_interval_data_111 = {
.pdu = poll_interval_111,
.pdu_len = sizeof(poll_interval_111),
.qualifier = 0x00,
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 20
}
};
/* Defined in TS 102.384 Section 27.22.4.6 */
static void test_poll_interval(gconstpointer data)
{
const struct poll_interval_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_POLL_INTERVAL);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_duration(&command->poll_interval.duration, &test->duration);
stk_command_free(command);
}
struct setup_menu_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_item items[MAX_ITEM];
struct stk_items_next_action_indicator next_act;
struct stk_icon_id icon_id;
struct stk_item_icon_id_list item_icon_id_list;
struct stk_text_attribute text_attr;
struct stk_item_text_attribute_list item_text_attr_list;
char *html;
};
static unsigned char setup_menu_111[] = { 0xD0, 0x3B, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34 };
static unsigned char setup_menu_112[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x04, 0x11, 0x4F, 0x6E, 0x65,
0x8F, 0x04, 0x12, 0x54, 0x77,
0x6F };
static unsigned char setup_menu_113[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static unsigned char setup_menu_121[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x31, 0x8F, 0x05,
0x50, 0x5A, 0x65, 0x72, 0x6F,
0x8F, 0x04, 0x4F, 0x4F, 0x6E,
0x65, 0x8F, 0x04, 0x4E, 0x54,
0x77, 0x6F, 0x8F, 0x06, 0x4D,
0x54, 0x68, 0x72, 0x65, 0x65,
0x8F, 0x05, 0x4C, 0x46, 0x6F,
0x75, 0x72, 0x8F, 0x05, 0x4B,
0x46, 0x69, 0x76, 0x65, 0x8F,
0x04, 0x4A, 0x53, 0x69, 0x78,
0x8F, 0x06, 0x49, 0x53, 0x65,
0x76, 0x65, 0x6E, 0x8F, 0x06,
0x48, 0x45, 0x69, 0x67, 0x68,
0x74, 0x8F, 0x05, 0x47, 0x4E,
0x69, 0x6E, 0x65, 0x8F, 0x06,
0x46, 0x41, 0x6C, 0x70, 0x68,
0x61, 0x8F, 0x06, 0x45, 0x42,
0x72, 0x61, 0x76, 0x6F, 0x8F,
0x08, 0x44, 0x43, 0x68, 0x61,
0x72, 0x6C, 0x69, 0x65, 0x8F,
0x06, 0x43, 0x44, 0x65, 0x6C,
0x74, 0x61, 0x8F, 0x05, 0x42,
0x45, 0x63, 0x68, 0x6F, 0x8F,
0x09, 0x41, 0x46, 0x6F, 0x78,
0x2D, 0x74, 0x72, 0x6F, 0x74,
0x8F, 0x06, 0x40, 0x42, 0x6C,
0x61, 0x63, 0x6B, 0x8F, 0x06,
0x3F, 0x42, 0x72, 0x6F, 0x77,
0x6E, 0x8F, 0x04, 0x3E, 0x52,
0x65, 0x64, 0x8F, 0x07, 0x3D,
0x4F, 0x72, 0x61, 0x6E, 0x67,
0x65, 0x8F, 0x07, 0x3C, 0x59,
0x65, 0x6C, 0x6C, 0x6F, 0x77,
0x8F, 0x06, 0x3B, 0x47, 0x72,
0x65, 0x65, 0x6E, 0x8F, 0x05,
0x3A, 0x42, 0x6C, 0x75, 0x65,
0x8F, 0x07, 0x39, 0x56, 0x69,
0x6F, 0x6C, 0x65, 0x74, 0x8F,
0x05, 0x38, 0x47, 0x72, 0x65,
0x79, 0x8F, 0x06, 0x37, 0x57,
0x68, 0x69, 0x74, 0x65, 0x8F,
0x06, 0x36, 0x6D, 0x69, 0x6C,
0x6C, 0x69, 0x8F, 0x06, 0x35,
0x6D, 0x69, 0x63, 0x72, 0x6F,
0x8F, 0x05, 0x34, 0x6E, 0x61,
0x6E, 0x6F, 0x8F, 0x05, 0x33,
0x70, 0x69, 0x63, 0x6F };
static unsigned char setup_menu_122[] = { 0xD0, 0x81, 0xF3, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x32, 0x8F, 0x1D,
0xFF, 0x31, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x55, 0x6E, 0x63, 0x6F,
0x6E, 0x64, 0x69, 0x74, 0x69,
0x6F, 0x6E, 0x61, 0x6C, 0x8F,
0x1C, 0xFE, 0x32, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x55, 0x73, 0x65, 0x72, 0x20,
0x42, 0x75, 0x73, 0x79, 0x8F,
0x1B, 0xFD, 0x33, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x4E, 0x6F, 0x20, 0x52, 0x65,
0x70, 0x6C, 0x79, 0x8F, 0x25,
0xFC, 0x34, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x4F, 0x6E, 0x20, 0x55,
0x73, 0x65, 0x72, 0x20, 0x4E,
0x6F, 0x74, 0x20, 0x52, 0x65,
0x61, 0x63, 0x68, 0x61, 0x62,
0x6C, 0x65, 0x8F, 0x20, 0xFB,
0x35, 0x20, 0x42, 0x61, 0x72,
0x72, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x66, 0x20, 0x41, 0x6C,
0x6C, 0x20, 0x4F, 0x75, 0x74,
0x67, 0x6F, 0x69, 0x6E, 0x67,
0x20, 0x43, 0x61, 0x6C, 0x6C,
0x73, 0x8F, 0x24, 0xFA, 0x36,
0x20, 0x42, 0x61, 0x72, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x66, 0x20, 0x41, 0x6C, 0x6C,
0x20, 0x4F, 0x75, 0x74, 0x67,
0x6F, 0x69, 0x6E, 0x67, 0x20,
0x49, 0x6E, 0x74, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x73, 0x8F,
0x13, 0xF9, 0x37, 0x20, 0x43,
0x4C, 0x49, 0x20, 0x50, 0x72,
0x65, 0x73, 0x65, 0x6E, 0x74,
0x61, 0x74, 0x69, 0x6F, 0x6E };
static unsigned char setup_menu_123[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x81, 0xEC, 0x54,
0x68, 0x65, 0x20, 0x53, 0x49,
0x4D, 0x20, 0x73, 0x68, 0x61,
0x6C, 0x6C, 0x20, 0x73, 0x75,
0x70, 0x70, 0x6C, 0x79, 0x20,
0x61, 0x20, 0x73, 0x65, 0x74,
0x20, 0x6F, 0x66, 0x20, 0x6D,
0x65, 0x6E, 0x75, 0x20, 0x69,
0x74, 0x65, 0x6D, 0x73, 0x2C,
0x20, 0x77, 0x68, 0x69, 0x63,
0x68, 0x20, 0x73, 0x68, 0x61,
0x6C, 0x6C, 0x20, 0x62, 0x65,
0x20, 0x69, 0x6E, 0x74, 0x65,
0x67, 0x72, 0x61, 0x74, 0x65,
0x64, 0x20, 0x77, 0x69, 0x74,
0x68, 0x20, 0x74, 0x68, 0x65,
0x20, 0x6D, 0x65, 0x6E, 0x75,
0x20, 0x73, 0x79, 0x73, 0x74,
0x65, 0x6D, 0x20, 0x28, 0x6F,
0x72, 0x20, 0x6F, 0x74, 0x68,
0x65, 0x72, 0x20, 0x4D, 0x4D,
0x49, 0x20, 0x66, 0x61, 0x63,
0x69, 0x6C, 0x69, 0x74, 0x79,
0x29, 0x20, 0x69, 0x6E, 0x20,
0x6F, 0x72, 0x64, 0x65, 0x72,
0x20, 0x74, 0x6F, 0x20, 0x67,
0x69, 0x76, 0x65, 0x20, 0x74,
0x68, 0x65, 0x20, 0x75, 0x73,
0x65, 0x72, 0x20, 0x74, 0x68,
0x65, 0x20, 0x6F, 0x70, 0x70,
0x6F, 0x72, 0x74, 0x75, 0x6E,
0x69, 0x74, 0x79, 0x20, 0x74,
0x6F, 0x20, 0x63, 0x68, 0x6F,
0x6F, 0x73, 0x65, 0x20, 0x6F,
0x6E, 0x65, 0x20, 0x6F, 0x66,
0x20, 0x74, 0x68, 0x65, 0x73,
0x65, 0x20, 0x6D, 0x65, 0x6E,
0x75, 0x20, 0x69, 0x74, 0x65,
0x6D, 0x73, 0x20, 0x61, 0x74,
0x20, 0x68, 0x69, 0x73, 0x20,
0x6F, 0x77, 0x6E, 0x20, 0x64,
0x69, 0x73, 0x63, 0x72, 0x65,
0x74, 0x69, 0x6F, 0x6E, 0x2E,
0x20, 0x45, 0x61, 0x63, 0x68,
0x20, 0x69, 0x74, 0x65, 0x6D,
0x20, 0x63, 0x6F, 0x6D, 0x70,
0x72, 0x69, 0x73, 0x65, 0x73,
0x20, 0x61, 0x20, 0x73, 0x68,
0x8F, 0x02, 0x01, 0x59 };
static unsigned char setup_menu_211[] = { 0xD0, 0x3B, 0x81, 0x03, 0x01, 0x25,
0x80, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34 };
static unsigned char setup_menu_311[] = { 0xD0, 0x41, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x18, 0x04, 0x13, 0x10, 0x15,
0x26 };
static unsigned char setup_menu_411[] = { 0xD0, 0x3C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x9E, 0x02, 0x01, 0x01,
0x9F, 0x04, 0x01, 0x05, 0x05,
0x05 };
static unsigned char setup_menu_421[] = { 0xD0, 0x3C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0x9E, 0x02, 0x00, 0x01,
0x9F, 0x04, 0x00, 0x05, 0x05,
0x05 };
static unsigned char setup_menu_511[] = { 0xD0, 0x29, 0x81, 0x03, 0x01, 0x25,
0x01, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32 };
static unsigned char setup_menu_611[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x00, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4, 0x00,
0x06, 0x00, 0xB4 };
static unsigned char setup_menu_612[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36 };
static unsigned char setup_menu_621[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x01, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x01, 0xB4,
0x00, 0x06, 0x01, 0xB4, 0x00,
0x06, 0x01, 0xB4 };
static unsigned char setup_menu_622[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36 };
static unsigned char setup_menu_631[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x02, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x02, 0xB4,
0x00, 0x06, 0x02, 0xB4, 0x00,
0x06, 0x02, 0xB4 };
static unsigned char setup_menu_632[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36 };
static unsigned char setup_menu_641[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x04, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x04, 0xB4,
0x00, 0x06, 0x04, 0xB4, 0x00,
0x06, 0x04, 0xB4 };
static unsigned char setup_menu_642[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x32, 0x8F, 0x07, 0x04, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x34,
0x8F, 0x07, 0x05, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x35, 0x8F,
0x07, 0x06, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x36, 0xD0, 0x04,
0x00, 0x0E, 0x00, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4, 0x00,
0x06, 0x00, 0xB4 };
static unsigned char setup_menu_643[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x33, 0x8F, 0x07, 0x07, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x37,
0x8F, 0x07, 0x08, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x38, 0x8F,
0x07, 0x09, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x39 };
static unsigned char setup_menu_651[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x08, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x08, 0xB4,
0x00, 0x06, 0x08, 0xB4, 0x00,
0x06, 0x08, 0xB4 };
static unsigned char setup_menu_661[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x10, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x10, 0xB4,
0x00, 0x06, 0x10, 0xB4, 0x00,
0x06, 0x10, 0xB4 };
static unsigned char setup_menu_671[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x20, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x20, 0xB4,
0x00, 0x06, 0x20, 0xB4, 0x00,
0x06, 0x20, 0xB4 };
static unsigned char setup_menu_681[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x40, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x40, 0xB4,
0x00, 0x06, 0x40, 0xB4, 0x00,
0x06, 0x40, 0xB4 };
static unsigned char setup_menu_691[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x20,
0x31, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0xD0, 0x04,
0x00, 0x0E, 0x80, 0xB4, 0xD1,
0x0C, 0x00, 0x06, 0x80, 0xB4,
0x00, 0x06, 0x80, 0xB4, 0x00,
0x06, 0x80, 0xB4 };
static unsigned char setup_menu_6101[] = { 0xD0, 0x46, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0C, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x4D, 0x65, 0x6E, 0x75, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31, 0x8F, 0x07,
0x02, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x32, 0x8F, 0x07, 0x03,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x33, 0xD0, 0x04, 0x00, 0x0C,
0x00, 0xB4, 0xD1, 0x0C, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4, 0x00, 0x06, 0x00,
0xB4 };
static unsigned char setup_menu_711[] = { 0xD0, 0x81, 0x9C, 0x81, 0x03, 0x01,
0x25, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x19, 0x80, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20,
0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04,
0x22, 0x04, 0x15, 0x8F, 0x1C,
0x01, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x31, 0x8F, 0x1C,
0x02, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x32, 0x8F, 0x1C,
0x03, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x33, 0x8F, 0x1C,
0x04, 0x80, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15, 0x00, 0x34 };
static unsigned char setup_menu_712[] = { 0xD0, 0x60, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x8F, 0x1C, 0x11,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x35, 0x8F, 0x1C, 0x12,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x36 };
static unsigned char setup_menu_713[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static unsigned char setup_menu_811[] = { 0xD0, 0x3C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x5D, 0xE5,
0x51, 0x77, 0x7B, 0xB1, 0x53,
0x55, 0x8F, 0x08, 0x01, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x4E,
0x00, 0x8F, 0x08, 0x02, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x4E,
0x8C, 0x8F, 0x08, 0x03, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x4E,
0x09, 0x8F, 0x08, 0x04, 0x80,
0x98, 0x79, 0x76, 0xEE, 0x56,
0xDB };
static unsigned char setup_menu_812[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x5D, 0xE5,
0x51, 0x77, 0x7B, 0xB1, 0x53,
0x55, 0x8F, 0x04, 0x11, 0x80,
0x4E, 0x00, 0x8F, 0x04, 0x12,
0x80, 0x4E, 0x8C };
static unsigned char setup_menu_813[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
static unsigned char setup_menu_911[] = { 0xD0, 0x44, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8F, 0x0A, 0x01, 0x80,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x31, 0x8F, 0x0A,
0x02, 0x80, 0x00, 0x38, 0x00,
0x30, 0x30, 0xEB, 0x00, 0x32,
0x8F, 0x0A, 0x03, 0x80, 0x00,
0x38, 0x00, 0x30, 0x30, 0xEB,
0x00, 0x33, 0x8F, 0x0A, 0x04,
0x80, 0x00, 0x38, 0x00, 0x30,
0x30, 0xEB, 0x00, 0x34 };
static unsigned char setup_menu_912[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8F, 0x0A, 0x11, 0x80,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x35, 0x8F, 0x0A,
0x12, 0x80, 0x00, 0x38, 0x00,
0x30, 0x30, 0xEB, 0x00, 0x36 };
static unsigned char setup_menu_913[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00 };
/* Negative case: No item is present */
static unsigned char setup_menu_neg_1[] = { 0xD0, 0x0B, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00 };
/* Negative case: Two empty items*/
static unsigned char setup_menu_neg_2[] = { 0xD0, 0x0F, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00, 0x8F,
0x00 };
/* Negative case: valid item + empty item */
static unsigned char setup_menu_neg_3[] = { 0xD0, 0x16, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x07, 0x01,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x31, 0x8F, 0x00 };
/* Negative case: empty item + valid item */
static unsigned char setup_menu_neg_4[] = { 0xD0, 0x16, 0x81, 0x03, 0x01, 0x25,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x00, 0x8F, 0x00, 0x8F,
0x07, 0x01, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x31 };
static struct setup_menu_test setup_menu_data_111 = {
.pdu = setup_menu_111,
.pdu_len = sizeof(setup_menu_111),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
{ .id = 4, .text = "Item 4" },
}
};
static struct setup_menu_test setup_menu_data_112 = {
.pdu = setup_menu_112,
.pdu_len = sizeof(setup_menu_112),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 0x11, .text = "One" },
{ .id = 0x12, .text = "Two" },
}
};
static struct setup_menu_test setup_menu_data_113 = {
.pdu = setup_menu_113,
.pdu_len = sizeof(setup_menu_113),
.qualifier = 0x00,
.alpha_id = ""
};
static struct setup_menu_test setup_menu_data_121 = {
.pdu = setup_menu_121,
.pdu_len = sizeof(setup_menu_121),
.qualifier = 0x00,
.alpha_id = "LargeMenu1",
.items = {
{ .id = 0x50, .text = "Zero" },
{ .id = 0x4F, .text = "One" },
{ .id = 0x4E, .text = "Two" },
{ .id = 0x4D, .text = "Three" },
{ .id = 0x4C, .text = "Four" },
{ .id = 0x4B, .text = "Five" },
{ .id = 0x4A, .text = "Six" },
{ .id = 0x49, .text = "Seven" },
{ .id = 0x48, .text = "Eight" },
{ .id = 0x47, .text = "Nine" },
{ .id = 0x46, .text = "Alpha" },
{ .id = 0x45, .text = "Bravo" },
{ .id = 0x44, .text = "Charlie" },
{ .id = 0x43, .text = "Delta" },
{ .id = 0x42, .text = "Echo" },
{ .id = 0x41, .text = "Fox-trot" },
{ .id = 0x40, .text = "Black" },
{ .id = 0x3F, .text = "Brown" },
{ .id = 0x3E, .text = "Red" },
{ .id = 0x3D, .text = "Orange" },
{ .id = 0x3C, .text = "Yellow" },
{ .id = 0x3B, .text = "Green" },
{ .id = 0x3A, .text = "Blue" },
{ .id = 0x39, .text = "Violet" },
{ .id = 0x38, .text = "Grey" },
{ .id = 0x37, .text = "White" },
{ .id = 0x36, .text = "milli" },
{ .id = 0x35, .text = "micro" },
{ .id = 0x34, .text = "nano" },
{ .id = 0x33, .text = "pico" },
}
};
static struct setup_menu_test setup_menu_data_122 = {
.pdu = setup_menu_122,
.pdu_len = sizeof(setup_menu_122),
.qualifier = 0x00,
.alpha_id = "LargeMenu2",
.items = {
{ .id = 0xFF, .text = "1 Call Forward Unconditional" },
{ .id = 0xFE, .text = "2 Call Forward On User Busy" },
{ .id = 0xFD, .text = "3 Call Forward On No Reply" },
{ .id = 0xFC, .text = "4 Call Forward On User Not Reachable" },
{ .id = 0xFB, .text = "5 Barring Of All Outgoing Calls" },
{ .id = 0xFA, .text = "6 Barring Of All Outgoing Int Calls" },
{ .id = 0xF9, .text = "7 CLI Presentation" },
}
};
static struct setup_menu_test setup_menu_data_123 = {
.pdu = setup_menu_123,
.pdu_len = sizeof(setup_menu_123),
.qualifier = 0x00,
.alpha_id = "The SIM shall supply a set of menu items, which shall "
"be integrated with the menu system (or other MMI "
"facility) in order to give the user the opportunity "
"to choose one of these menu items at his own "
"discretion. Each item comprises a sh",
.items = {
{ .id = 0x01, .text = "Y" }
}
};
static struct setup_menu_test setup_menu_data_211 = {
.pdu = setup_menu_211,
.pdu_len = sizeof(setup_menu_211),
.qualifier = 0x80,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
{ .id = 4, .text = "Item 4" },
}
};
static struct setup_menu_test setup_menu_data_311 = {
.pdu = setup_menu_311,
.pdu_len = sizeof(setup_menu_311),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
{ .id = 4, .text = "Item 4" },
},
.next_act = {
.list = { STK_COMMAND_TYPE_SEND_SMS,
STK_COMMAND_TYPE_SETUP_CALL,
STK_COMMAND_TYPE_LAUNCH_BROWSER,
STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO },
.len = 4
}
};
static struct setup_menu_test setup_menu_data_411 = {
.pdu = setup_menu_411,
.pdu_len = sizeof(setup_menu_411),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct setup_menu_test setup_menu_data_421 = {
.pdu = setup_menu_421,
.pdu_len = sizeof(setup_menu_421),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct setup_menu_test setup_menu_data_511 = {
.pdu = setup_menu_511,
.pdu_len = sizeof(setup_menu_511),
.qualifier = 0x01,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
}
};
static struct setup_menu_test setup_menu_data_611 = {
.pdu = setup_menu_611,
.pdu_len = sizeof(setup_menu_611),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Menu 1</span>"
"</div>",
};
static struct setup_menu_test setup_menu_data_612 = {
.pdu = setup_menu_612,
.pdu_len = sizeof(setup_menu_612),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items = {
{ .id = 4, .text = "Item 4" },
{ .id = 5, .text = "Item 5" },
{ .id = 6, .text = "Item 6" },
}
};
static struct setup_menu_test setup_menu_data_621 = {
.pdu = setup_menu_621,
.pdu_len = sizeof(setup_menu_621),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x01, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x01, 0xB4, 0x00, 0x06, 0x01, 0xB4,
0x00, 0x06, 0x01, 0xB4 }
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Menu 1</span>"
"</div>"
};
static struct setup_menu_test setup_menu_data_622 = {
.pdu = setup_menu_622,
.pdu_len = sizeof(setup_menu_622),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items = {
{ .id = 4, .text = "Item 4" },
{ .id = 5, .text = "Item 5" },
{ .id = 6, .text = "Item 6" },
}
};
/*
* Some problem with data of item #3 in item_text_attr_list
* and the explanation
*/
static struct setup_menu_test setup_menu_data_631 = {
.pdu = setup_menu_631,
.pdu_len = sizeof(setup_menu_631),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x02, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x02, 0xB4, 0x00, 0x06, 0x02, 0xB4,
0x00, 0x06, 0x02, 0xB4 }
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Menu 1</span>"
"</div>"
};
static struct setup_menu_test setup_menu_data_632 = {
.pdu = setup_menu_632,
.pdu_len = sizeof(setup_menu_632),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items = {
{ .id = 4, .text = "Item 4" },
{ .id = 5, .text = "Item 5" },
{ .id = 6, .text = "Item 6" },
}
};
static struct setup_menu_test setup_menu_data_641 = {
.pdu = setup_menu_641,
.pdu_len = sizeof(setup_menu_641),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x04, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x04, 0xB4, 0x00, 0x06, 0x04, 0xB4,
0x00, 0x06, 0x04, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">"
"Toolkit Menu 1</span></div>",
};
static struct setup_menu_test setup_menu_data_642 = {
.pdu = setup_menu_642,
.pdu_len = sizeof(setup_menu_642),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 2",
.items = {
{ .id = 4, .text = "Item 4" },
{ .id = 5, .text = "Item 5" },
{ .id = 6, .text = "Item 6" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Menu 2</span>"
"</div>",
};
static struct setup_menu_test setup_menu_data_643 = {
.pdu = setup_menu_643,
.pdu_len = sizeof(setup_menu_643),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 3",
.items = {
{ .id = 7, .text = "Item 7" },
{ .id = 8, .text = "Item 8" },
{ .id = 9, .text = "Item 9" },
}
};
static struct setup_menu_test setup_menu_data_651 = {
.pdu = setup_menu_651,
.pdu_len = sizeof(setup_menu_651),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x08, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x08, 0xB4, 0x00, 0x06, 0x08, 0xB4,
0x00, 0x06, 0x08, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">"
"Toolkit Menu 1</span></div>",
};
static struct setup_menu_test setup_menu_data_661 = {
.pdu = setup_menu_661,
.pdu_len = sizeof(setup_menu_661),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x10, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x10, 0xB4, 0x00, 0x06, 0x10, 0xB4,
0x00, 0x06, 0x10, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">"
"Toolkit Menu 1</span></div>",
};
static struct setup_menu_test setup_menu_data_671 = {
.pdu = setup_menu_671,
.pdu_len = sizeof(setup_menu_671),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x20, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x20, 0xB4, 0x00, 0x06, 0x20, 0xB4,
0x00, 0x06, 0x20, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">"
"Toolkit Menu 1</span></div>"
};
static struct setup_menu_test setup_menu_data_681 = {
.pdu = setup_menu_681,
.pdu_len = sizeof(setup_menu_681),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x40, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x40, 0xB4, 0x00, 0x06, 0x40, 0xB4,
0x00, 0x06, 0x40, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Toolkit Menu 1</span></div>",
};
static struct setup_menu_test setup_menu_data_691 = {
.pdu = setup_menu_691,
.pdu_len = sizeof(setup_menu_691),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x80, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x80, 0xB4, 0x00, 0x06, 0x80, 0xB4,
0x00, 0x06, 0x80, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: line-through;color: #347235;"
"background-color: #FFFF00;\">Toolkit Menu 1</span></div>",
};
static struct setup_menu_test setup_menu_data_6101 = {
.pdu = setup_menu_6101,
.pdu_len = sizeof(setup_menu_6101),
.qualifier = 0x00,
.alpha_id = "Toolkit Menu",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0C, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 12,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4,
0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Menu</span>"
"</div>",
};
static struct setup_menu_test setup_menu_data_711 = {
.pdu = setup_menu_711,
.pdu_len = sizeof(setup_menu_711),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items = {
{ .id = 1, .text = "ЗДРАВСТВУЙТЕ1" },
{ .id = 2, .text = "ЗДРАВСТВУЙТЕ2" },
{ .id = 3, .text = "ЗДРАВСТВУЙТЕ3" },
{ .id = 4, .text = "ЗДРАВСТВУЙТЕ4" },
}
};
static struct setup_menu_test setup_menu_data_712 = {
.pdu = setup_menu_712,
.pdu_len = sizeof(setup_menu_712),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items = {
{ .id = 0x11, .text = "ЗДРАВСТВУЙТЕ5" },
{ .id = 0x12, .text = "ЗДРАВСТВУЙТЕ6" },
}
};
static struct setup_menu_test setup_menu_data_713 = {
.pdu = setup_menu_713,
.pdu_len = sizeof(setup_menu_713),
.qualifier = 0x00,
.alpha_id = ""
};
static struct setup_menu_test setup_menu_data_811 = {
.pdu = setup_menu_811,
.pdu_len = sizeof(setup_menu_811),
.qualifier = 0x00,
.alpha_id = "工具箱单",
.items = {
{ .id = 1, .text = "项目一" },
{ .id = 2, .text = "项目二" },
{ .id = 3, .text = "项目三" },
{ .id = 4, .text = "项目四" },
}
};
static struct setup_menu_test setup_menu_data_812 = {
.pdu = setup_menu_812,
.pdu_len = sizeof(setup_menu_812),
.qualifier = 0x00,
.alpha_id = "工具箱单",
.items = {
{ .id = 0x11, .text = "" },
{ .id = 0x12, .text = "" },
}
};
static struct setup_menu_test setup_menu_data_813 = {
.pdu = setup_menu_813,
.pdu_len = sizeof(setup_menu_813),
.qualifier = 0x00,
.alpha_id = ""
};
static struct setup_menu_test setup_menu_data_911 = {
.pdu = setup_menu_911,
.pdu_len = sizeof(setup_menu_911),
.qualifier = 0x00,
.alpha_id = "80ル0",
.items = {
{ .id = 1, .text = "80ル1" },
{ .id = 2, .text = "80ル2" },
{ .id = 3, .text = "80ル3" },
{ .id = 4, .text = "80ル4" },
}
};
static struct setup_menu_test setup_menu_data_912 = {
.pdu = setup_menu_912,
.pdu_len = sizeof(setup_menu_912),
.qualifier = 0x00,
.alpha_id = "80ル0",
.items = {
{ .id = 0x11, .text = "80ル5" },
{ .id = 0x12, .text = "80ル6" },
}
};
static struct setup_menu_test setup_menu_data_913 = {
.pdu = setup_menu_913,
.pdu_len = sizeof(setup_menu_913),
.qualifier = 0x00,
.alpha_id = ""
};
static struct setup_menu_test setup_menu_data_neg_1 = {
.pdu = setup_menu_neg_1,
.pdu_len = sizeof(setup_menu_neg_1)
};
static struct setup_menu_test setup_menu_data_neg_2 = {
.pdu = setup_menu_neg_2,
.pdu_len = sizeof(setup_menu_neg_2)
};
static struct setup_menu_test setup_menu_data_neg_3 = {
.pdu = setup_menu_neg_3,
.pdu_len = sizeof(setup_menu_neg_3)
};
static struct setup_menu_test setup_menu_data_neg_4 = {
.pdu = setup_menu_neg_4,
.pdu_len = sizeof(setup_menu_neg_4)
};
/* Defined in TS 102.384 Section 27.22.4.7 */
static void test_setup_menu(gconstpointer data)
{
const struct setup_menu_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_MENU);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_alpha_id(command->setup_menu.alpha_id, test->alpha_id);
check_items(command->setup_menu.items, test->items);
check_items_next_action_indicator(&command->setup_menu.next_act,
&test->next_act);
check_icon_id(&command->setup_menu.icon_id, &test->icon_id);
check_item_icon_id_list(&command->setup_menu.item_icon_id_list,
&test->item_icon_id_list);
check_text_attr(&command->setup_menu.text_attr, &test->text_attr);
check_item_text_attribute_list(&command->setup_menu.item_text_attr_list,
&test->item_text_attr_list);
check_text_attr_html(&command->setup_menu.text_attr,
command->setup_menu.alpha_id, test->html);
stk_command_free(command);
}
static void test_setup_menu_missing_val(gconstpointer data)
{
const struct setup_menu_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_MISSING_VALUE);
2010-07-02 19:50:05 +00:00
stk_command_free(command);
}
static void test_setup_menu_neg(gconstpointer data)
{
const struct setup_menu_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD);
2010-07-02 19:50:05 +00:00
stk_command_free(command);
}
struct select_item_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_item items[MAX_ITEM];
struct stk_items_next_action_indicator next_act;
unsigned char item_id;
struct stk_icon_id icon_id;
struct stk_item_icon_id_list item_icon_id_list;
struct stk_text_attribute text_attr;
struct stk_item_text_attribute_list item_text_attr_list;
struct stk_frame_id frame_id;
char *html;
};
static unsigned char select_item_111[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x8F, 0x07,
0x04, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x34 };
static unsigned char select_item_121[] = { 0xD0, 0x81, 0xFC, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x31, 0x8F, 0x05,
0x50, 0x5A, 0x65, 0x72, 0x6F,
0x8F, 0x04, 0x4F, 0x4F, 0x6E,
0x65, 0x8F, 0x04, 0x4E, 0x54,
0x77, 0x6F, 0x8F, 0x06, 0x4D,
0x54, 0x68, 0x72, 0x65, 0x65,
0x8F, 0x05, 0x4C, 0x46, 0x6F,
0x75, 0x72, 0x8F, 0x05, 0x4B,
0x46, 0x69, 0x76, 0x65, 0x8F,
0x04, 0x4A, 0x53, 0x69, 0x78,
0x8F, 0x06, 0x49, 0x53, 0x65,
0x76, 0x65, 0x6E, 0x8F, 0x06,
0x48, 0x45, 0x69, 0x67, 0x68,
0x74, 0x8F, 0x05, 0x47, 0x4E,
0x69, 0x6E, 0x65, 0x8F, 0x06,
0x46, 0x41, 0x6C, 0x70, 0x68,
0x61, 0x8F, 0x06, 0x45, 0x42,
0x72, 0x61, 0x76, 0x6F, 0x8F,
0x08, 0x44, 0x43, 0x68, 0x61,
0x72, 0x6C, 0x69, 0x65, 0x8F,
0x06, 0x43, 0x44, 0x65, 0x6C,
0x74, 0x61, 0x8F, 0x05, 0x42,
0x45, 0x63, 0x68, 0x6F, 0x8F,
0x09, 0x41, 0x46, 0x6F, 0x78,
0x2D, 0x74, 0x72, 0x6F, 0x74,
0x8F, 0x06, 0x40, 0x42, 0x6C,
0x61, 0x63, 0x6B, 0x8F, 0x06,
0x3F, 0x42, 0x72, 0x6F, 0x77,
0x6E, 0x8F, 0x04, 0x3E, 0x52,
0x65, 0x64, 0x8F, 0x07, 0x3D,
0x4F, 0x72, 0x61, 0x6E, 0x67,
0x65, 0x8F, 0x07, 0x3C, 0x59,
0x65, 0x6C, 0x6C, 0x6F, 0x77,
0x8F, 0x06, 0x3B, 0x47, 0x72,
0x65, 0x65, 0x6E, 0x8F, 0x05,
0x3A, 0x42, 0x6C, 0x75, 0x65,
0x8F, 0x07, 0x39, 0x56, 0x69,
0x6F, 0x6C, 0x65, 0x74, 0x8F,
0x05, 0x38, 0x47, 0x72, 0x65,
0x79, 0x8F, 0x06, 0x37, 0x57,
0x68, 0x69, 0x74, 0x65, 0x8F,
0x06, 0x36, 0x6D, 0x69, 0x6C,
0x6C, 0x69, 0x8F, 0x06, 0x35,
0x6D, 0x69, 0x63, 0x72, 0x6F,
0x8F, 0x05, 0x34, 0x6E, 0x61,
0x6E, 0x6F, 0x8F, 0x05, 0x33,
0x70, 0x69, 0x63, 0x6F };
static unsigned char select_item_131[] = { 0xD0, 0x81, 0xFB, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x4C, 0x61,
0x72, 0x67, 0x65, 0x4D, 0x65,
0x6E, 0x75, 0x32, 0x8F, 0x1E,
0xFF, 0x43, 0x61, 0x6C, 0x6C,
0x20, 0x46, 0x6F, 0x72, 0x77,
0x61, 0x72, 0x64, 0x69, 0x6E,
0x67, 0x20, 0x55, 0x6E, 0x63,
0x6F, 0x6E, 0x64, 0x69, 0x74,
0x69, 0x6F, 0x6E, 0x61, 0x6C,
0x8F, 0x1D, 0xFE, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x6E, 0x20, 0x55, 0x73, 0x65,
0x72, 0x20, 0x42, 0x75, 0x73,
0x79, 0x8F, 0x1C, 0xFD, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x6E, 0x20, 0x4E, 0x6F,
0x20, 0x52, 0x65, 0x70, 0x6C,
0x79, 0x8F, 0x26, 0xFC, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x6E, 0x20, 0x55, 0x73,
0x65, 0x72, 0x20, 0x4E, 0x6F,
0x74, 0x20, 0x52, 0x65, 0x61,
0x63, 0x68, 0x61, 0x62, 0x6C,
0x65, 0x8F, 0x1E, 0xFB, 0x42,
0x61, 0x72, 0x72, 0x69, 0x6E,
0x67, 0x20, 0x4F, 0x66, 0x20,
0x41, 0x6C, 0x6C, 0x20, 0x4F,
0x75, 0x74, 0x67, 0x6F, 0x69,
0x6E, 0x67, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x73, 0x8F, 0x2C,
0xFA, 0x42, 0x61, 0x72, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x66, 0x20, 0x41, 0x6C, 0x6C,
0x20, 0x4F, 0x75, 0x74, 0x67,
0x6F, 0x69, 0x6E, 0x67, 0x20,
0x49, 0x6E, 0x74, 0x65, 0x72,
0x6E, 0x61, 0x74, 0x69, 0x6F,
0x6E, 0x61, 0x6C, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x73, 0x8F,
0x11, 0xF9, 0x43, 0x4C, 0x49,
0x20, 0x50, 0x72, 0x65, 0x73,
0x65, 0x6E, 0x74, 0x61, 0x74,
0x69, 0x6F, 0x6E };
static unsigned char select_item_141[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0B, 0x53, 0x65, 0x6C,
0x65, 0x63, 0x74, 0x20, 0x49,
0x74, 0x65, 0x6D, 0x8F, 0x04,
0x11, 0x4F, 0x6E, 0x65, 0x8F,
0x04, 0x12, 0x54, 0x77, 0x6F };
static unsigned char select_item_151[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x81, 0xED, 0x54,
0x68, 0x65, 0x20, 0x53, 0x49,
0x4D, 0x20, 0x73, 0x68, 0x61,
0x6C, 0x6C, 0x20, 0x73, 0x75,
0x70, 0x70, 0x6C, 0x79, 0x20,
0x61, 0x20, 0x73, 0x65, 0x74,
0x20, 0x6F, 0x66, 0x20, 0x69,
0x74, 0x65, 0x6D, 0x73, 0x20,
0x66, 0x72, 0x6F, 0x6D, 0x20,
0x77, 0x68, 0x69, 0x63, 0x68,
0x20, 0x74, 0x68, 0x65, 0x20,
0x75, 0x73, 0x65, 0x72, 0x20,
0x6D, 0x61, 0x79, 0x20, 0x63,
0x68, 0x6F, 0x6F, 0x73, 0x65,
0x20, 0x6F, 0x6E, 0x65, 0x2E,
0x20, 0x45, 0x61, 0x63, 0x68,
0x20, 0x69, 0x74, 0x65, 0x6D,
0x20, 0x63, 0x6F, 0x6D, 0x70,
0x72, 0x69, 0x73, 0x65, 0x73,
0x20, 0x61, 0x20, 0x73, 0x68,
0x6F, 0x72, 0x74, 0x20, 0x69,
0x64, 0x65, 0x6E, 0x74, 0x69,
0x66, 0x69, 0x65, 0x72, 0x20,
0x28, 0x75, 0x73, 0x65, 0x64,
0x20, 0x74, 0x6F, 0x20, 0x69,
0x6E, 0x64, 0x69, 0x63, 0x61,
0x74, 0x65, 0x20, 0x74, 0x68,
0x65, 0x20, 0x73, 0x65, 0x6C,
0x65, 0x63, 0x74, 0x69, 0x6F,
0x6E, 0x29, 0x20, 0x61, 0x6E,
0x64, 0x20, 0x61, 0x20, 0x74,
0x65, 0x78, 0x74, 0x20, 0x73,
0x74, 0x72, 0x69, 0x6E, 0x67,
0x2E, 0x20, 0x4F, 0x70, 0x74,
0x69, 0x6F, 0x6E, 0x61, 0x6C,
0x6C, 0x79, 0x20, 0x74, 0x68,
0x65, 0x20, 0x53, 0x49, 0x4D,
0x20, 0x6D, 0x61, 0x79, 0x20,
0x69, 0x6E, 0x63, 0x6C, 0x75,
0x64, 0x65, 0x20, 0x61, 0x6E,
0x20, 0x61, 0x6C, 0x70, 0x68,
0x61, 0x20, 0x69, 0x64, 0x65,
0x6E, 0x74, 0x69, 0x66, 0x69,
0x65, 0x72, 0x2E, 0x20, 0x54,
0x68, 0x65, 0x20, 0x61, 0x6C,
0x70, 0x68, 0x61, 0x20, 0x69,
0x64, 0x65, 0x6E, 0x74, 0x69,
0x66, 0x69, 0x65, 0x72, 0x20,
0x69, 0x8F, 0x02, 0x01, 0x59 };
static unsigned char select_item_161[] = { 0xD0, 0x81, 0xF3, 0x81, 0x03, 0x01,
0x24, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x30, 0x4C,
0x61, 0x72, 0x67, 0x65, 0x4D,
0x65, 0x6E, 0x75, 0x8F, 0x1D,
0xFF, 0x31, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x55, 0x6E, 0x63, 0x6F,
0x6E, 0x64, 0x69, 0x74, 0x69,
0x6F, 0x6E, 0x61, 0x6C, 0x8F,
0x1C, 0xFE, 0x32, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x55, 0x73, 0x65, 0x72, 0x20,
0x42, 0x75, 0x73, 0x79, 0x8F,
0x1B, 0xFD, 0x33, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x20, 0x46,
0x6F, 0x72, 0x77, 0x61, 0x72,
0x64, 0x20, 0x4F, 0x6E, 0x20,
0x4E, 0x6F, 0x20, 0x52, 0x65,
0x70, 0x6C, 0x79, 0x8F, 0x25,
0xFC, 0x34, 0x20, 0x43, 0x61,
0x6C, 0x6C, 0x20, 0x46, 0x6F,
0x72, 0x77, 0x61, 0x72, 0x64,
0x20, 0x4F, 0x6E, 0x20, 0x55,
0x73, 0x65, 0x72, 0x20, 0x4E,
0x6F, 0x74, 0x20, 0x52, 0x65,
0x61, 0x63, 0x68, 0x61, 0x62,
0x6C, 0x65, 0x8F, 0x20, 0xFB,
0x35, 0x20, 0x42, 0x61, 0x72,
0x72, 0x69, 0x6E, 0x67, 0x20,
0x4F, 0x66, 0x20, 0x41, 0x6C,
0x6C, 0x20, 0x4F, 0x75, 0x74,
0x67, 0x6F, 0x69, 0x6E, 0x67,
0x20, 0x43, 0x61, 0x6C, 0x6C,
0x73, 0x8F, 0x24, 0xFA, 0x36,
0x20, 0x42, 0x61, 0x72, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x4F,
0x66, 0x20, 0x41, 0x6C, 0x6C,
0x20, 0x4F, 0x75, 0x74, 0x67,
0x6F, 0x69, 0x6E, 0x67, 0x20,
0x49, 0x6E, 0x74, 0x20, 0x43,
0x61, 0x6C, 0x6C, 0x73, 0x8F,
0x13, 0xF9, 0x37, 0x20, 0x43,
0x4C, 0x49, 0x20, 0x50, 0x72,
0x65, 0x73, 0x65, 0x6E, 0x74,
0x61, 0x74, 0x69, 0x6F, 0x6E };
static unsigned char select_item_211[] = { 0xD0, 0x39, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x18, 0x03,
0x13, 0x10, 0x26 };
static unsigned char select_item_311[] = { 0xD0, 0x37, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x90, 0x01,
0x02 };
static unsigned char select_item_411[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x80, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33 };
static unsigned char select_item_511[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x9E, 0x02,
0x01, 0x01, 0x9F, 0x04, 0x01,
0x05, 0x05, 0x05 };
static unsigned char select_item_521[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33, 0x9E, 0x02,
0x00, 0x01, 0x9F, 0x04, 0x00,
0x05, 0x05, 0x05 };
static unsigned char select_item_611[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x03, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33 };
static unsigned char select_item_621[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x01, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32, 0x8F,
0x07, 0x03, 0x49, 0x74, 0x65,
0x6D, 0x20, 0x33 };
static unsigned char select_item_711[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x24,
0x04, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0E, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x8F, 0x07, 0x01, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x31,
0x8F, 0x07, 0x02, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x32 };
static unsigned char select_item_811[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0A, 0x3C, 0x54, 0x49,
0x4D, 0x45, 0x2D, 0x4F, 0x55,
0x54, 0x3E, 0x8F, 0x07, 0x01,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x31, 0x8F, 0x07, 0x02, 0x49,
0x74, 0x65, 0x6D, 0x20, 0x32,
0x8F, 0x07, 0x03, 0x49, 0x74,
0x65, 0x6D, 0x20, 0x33 };
static unsigned char select_item_911[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_912[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_921[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x01, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x01, 0xB4, 0x00, 0x06,
0x01, 0xB4 };
static unsigned char select_item_922[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_931[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x02, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x02, 0xB4, 0x00, 0x06,
0x02, 0xB4 };
static unsigned char select_item_932[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_941[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x04, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x04, 0xB4, 0x00, 0x06,
0x04, 0xB4 };
static unsigned char select_item_942[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_943[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_951[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x08, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x08, 0xB4, 0x00, 0x06,
0x08, 0xB4 };
static unsigned char select_item_952[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_953[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_961[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x10, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x10, 0xB4, 0x00, 0x06,
0x10, 0xB4 };
static unsigned char select_item_962[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_963[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_971[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x20, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x20, 0xB4, 0x00, 0x06,
0x20, 0xB4 };
static unsigned char select_item_972[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_973[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_981[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x40, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x40, 0xB4, 0x00, 0x06,
0x40, 0xB4 };
static unsigned char select_item_982[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_983[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_991[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x80, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x80, 0xB4, 0x00, 0x06,
0x80, 0xB4 };
static unsigned char select_item_992[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_993[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x33, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x35, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x36 };
static unsigned char select_item_9101[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x31, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x31, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4, 0xD1, 0x08, 0x00,
0x06, 0x00, 0xB4, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char select_item_9102[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x54, 0x6F, 0x6F,
0x6C, 0x6B, 0x69, 0x74, 0x20,
0x53, 0x65, 0x6C, 0x65, 0x63,
0x74, 0x20, 0x32, 0x8F, 0x07,
0x01, 0x49, 0x74, 0x65, 0x6D,
0x20, 0x33, 0x8F, 0x07, 0x02,
0x49, 0x74, 0x65, 0x6D, 0x20,
0x34 };
static unsigned char select_item_1011[] = { 0xD0, 0x7E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x8F, 0x1C, 0x01,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x31, 0x8F, 0x1C, 0x02,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x32, 0x8F, 0x1C, 0x03,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x33 };
static unsigned char select_item_1021[] = { 0xD0, 0x53, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0F, 0x81, 0x0C, 0x08,
0x97, 0x94, 0xA0, 0x90, 0x92,
0xA1, 0xA2, 0x92, 0xA3, 0x99,
0xA2, 0x95, 0x8F, 0x11, 0x01,
0x81, 0x0D, 0x08, 0x97, 0x94,
0xA0, 0x90, 0x92, 0xA1, 0xA2,
0x92, 0xA3, 0x99, 0xA2, 0x95,
0x31, 0x8F, 0x11, 0x02, 0x81,
0x0D, 0x08, 0x97, 0x94, 0xA0,
0x90, 0x92, 0xA1, 0xA2, 0x92,
0xA3, 0x99, 0xA2, 0x95, 0x32,
0x8F, 0x11, 0x03, 0x81, 0x0D,
0x08, 0x97, 0x94, 0xA0, 0x90,
0x92, 0xA1, 0xA2, 0x92, 0xA3,
0x99, 0xA2, 0x95, 0x33 };
static unsigned char select_item_1031[] = { 0xD0, 0x57, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x10, 0x82, 0x0C, 0x04,
0x10, 0x87, 0x84, 0x90, 0x80,
0x82, 0x91, 0x92, 0x82, 0x93,
0x89, 0x92, 0x85, 0x8F, 0x12,
0x01, 0x82, 0x0D, 0x04, 0x10,
0x87, 0x84, 0x90, 0x80, 0x82,
0x91, 0x92, 0x82, 0x93, 0x89,
0x92, 0x85, 0x31, 0x8F, 0x12,
0x02, 0x82, 0x0D, 0x04, 0x10,
0x87, 0x84, 0x90, 0x80, 0x82,
0x91, 0x92, 0x82, 0x93, 0x89,
0x92, 0x85, 0x32, 0x8F, 0x12,
0x03, 0x82, 0x0D, 0x04, 0x10,
0x87, 0x84, 0x90, 0x80, 0x82,
0x91, 0x92, 0x82, 0x93, 0x89,
0x92, 0x85, 0x33 };
static unsigned char select_item_1111[] = { 0xD0, 0x3E, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x0B, 0x80, 0x5D, 0xE5,
0x51, 0x77, 0x7B, 0xB1, 0x90,
0x09, 0x62, 0xE9, 0x8F, 0x08,
0x01, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x4E, 0x00, 0x8F, 0x08,
0x02, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x4E, 0x8C, 0x8F, 0x08,
0x03, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x4E, 0x09, 0x8F, 0x08,
0x04, 0x80, 0x98, 0x79, 0x76,
0xEE, 0x56, 0xDB };
static unsigned char select_item_1211[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x8F, 0x0A, 0x01, 0x80,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x31, 0x8F, 0x0A,
0x02, 0x80, 0x00, 0x38, 0x00,
0x30, 0x30, 0xEB, 0x00, 0x32,
0x8F, 0x0A, 0x03, 0x80, 0x00,
0x38, 0x00, 0x30, 0x30, 0xEB,
0x00, 0x33 };
static unsigned char select_item_1221[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x07, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x30, 0x8F,
0x08, 0x01, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x31, 0x8F,
0x08, 0x02, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x32, 0x8F,
0x08, 0x03, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x33 };
static unsigned char select_item_1231[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x24,
0x00, 0x82, 0x02, 0x81, 0x82,
0x85, 0x08, 0x82, 0x04, 0x30,
0xA0, 0x38, 0x32, 0xCB, 0x30,
0x8F, 0x09, 0x01, 0x82, 0x04,
0x30, 0xA0, 0x38, 0x32, 0xCB,
0x31, 0x8F, 0x09, 0x02, 0x82,
0x04, 0x30, 0xA0, 0x38, 0x32,
0xCB, 0x32, 0x8F, 0x09, 0x03,
0x82, 0x04, 0x30, 0xA0, 0x38,
0x32, 0xCB, 0x33 };
static struct select_item_test select_item_data_111 = {
.pdu = select_item_111,
.pdu_len = sizeof(select_item_111),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
{ .id = 4, .text = "Item 4" },
}
};
static struct select_item_test select_item_data_121 = {
.pdu = select_item_121,
.pdu_len = sizeof(select_item_121),
.qualifier = 0x00,
.alpha_id = "LargeMenu1",
.items = {
{ .id = 0x50, .text = "Zero" },
{ .id = 0x4F, .text = "One" },
{ .id = 0x4E, .text = "Two" },
{ .id = 0x4D, .text = "Three" },
{ .id = 0x4C, .text = "Four" },
{ .id = 0x4B, .text = "Five" },
{ .id = 0x4A, .text = "Six" },
{ .id = 0x49, .text = "Seven" },
{ .id = 0x48, .text = "Eight" },
{ .id = 0x47, .text = "Nine" },
{ .id = 0x46, .text = "Alpha" },
{ .id = 0x45, .text = "Bravo" },
{ .id = 0x44, .text = "Charlie" },
{ .id = 0x43, .text = "Delta" },
{ .id = 0x42, .text = "Echo" },
{ .id = 0x41, .text = "Fox-trot" },
{ .id = 0x40, .text = "Black" },
{ .id = 0x3F, .text = "Brown" },
{ .id = 0x3E, .text = "Red" },
{ .id = 0x3D, .text = "Orange" },
{ .id = 0x3C, .text = "Yellow" },
{ .id = 0x3B, .text = "Green" },
{ .id = 0x3A, .text = "Blue" },
{ .id = 0x39, .text = "Violet" },
{ .id = 0x38, .text = "Grey" },
{ .id = 0x37, .text = "White" },
{ .id = 0x36, .text = "milli" },
{ .id = 0x35, .text = "micro" },
{ .id = 0x34, .text = "nano" },
{ .id = 0x33, .text = "pico" },
}
};
static struct select_item_test select_item_data_131 = {
.pdu = select_item_131,
.pdu_len = sizeof(select_item_131),
.qualifier = 0x00,
.alpha_id = "LargeMenu2",
.items = {
{ .id = 0xFF, .text = "Call Forwarding Unconditional" },
{ .id = 0xFE, .text = "Call Forwarding On User Busy" },
{ .id = 0xFD, .text = "Call Forwarding On No Reply" },
{ .id = 0xFC, .text = "Call Forwarding On User Not Reachable" },
{ .id = 0xFB, .text = "Barring Of All Outgoing Calls" },
{ .id = 0xFA,
.text = "Barring Of All Outgoing International Calls" },
{ .id = 0xF9, .text = "CLI Presentation" },
}
};
static struct select_item_test select_item_data_141 = {
.pdu = select_item_141,
.pdu_len = sizeof(select_item_141),
.qualifier = 0x00,
.alpha_id = "Select Item",
.items = {
{ .id = 0x11, .text = "One" },
{ .id = 0x12, .text = "Two" },
}
};
static struct select_item_test select_item_data_151 = {
.pdu = select_item_151,
.pdu_len = sizeof(select_item_151),
.qualifier = 0x00,
.alpha_id = "The SIM shall supply a set of items from which the user "
"may choose one. Each item comprises a short identifier (used "
"to indicate the selection) and a text string. Optionally the "
"SIM may include an alpha identifier. The alpha identifier i",
.items = {
{ .id = 0x01, .text = "Y" },
}
};
static struct select_item_test select_item_data_161 = {
.pdu = select_item_161,
.pdu_len = sizeof(select_item_161),
.qualifier = 0x00,
.alpha_id = "0LargeMenu",
.items = {
{ .id = 0xFF, .text = "1 Call Forward Unconditional" },
{ .id = 0xFE, .text = "2 Call Forward On User Busy" },
{ .id = 0xFD, .text = "3 Call Forward On No Reply" },
{ .id = 0xFC, .text = "4 Call Forward On User Not Reachable" },
{ .id = 0xFB, .text = "5 Barring Of All Outgoing Calls" },
{ .id = 0xFA, .text = "6 Barring Of All Outgoing Int Calls" },
{ .id = 0xF9, .text = "7 CLI Presentation" },
}
};
static struct select_item_test select_item_data_211 = {
.pdu = select_item_211,
.pdu_len = sizeof(select_item_211),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.next_act = {
.list = { STK_COMMAND_TYPE_SEND_SMS,
STK_COMMAND_TYPE_SETUP_CALL,
STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO},
.len = 3
}
};
static struct select_item_test select_item_data_311 = {
.pdu = select_item_311,
.pdu_len = sizeof(select_item_311),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.item_id = 0x02
};
static struct select_item_test select_item_data_411 = {
.pdu = select_item_411,
.pdu_len = sizeof(select_item_411),
.qualifier = 0x80,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
}
};
static struct select_item_test select_item_data_511 = {
.pdu = select_item_511,
.pdu_len = sizeof(select_item_511),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct select_item_test select_item_data_521 = {
.pdu = select_item_521,
.pdu_len = sizeof(select_item_521),
.qualifier = 0x00,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 1
},
.item_icon_id_list = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.list = { 5, 5, 5 },
.len = 3
}
};
static struct select_item_test select_item_data_611 = {
.pdu = select_item_611,
.pdu_len = sizeof(select_item_611),
.qualifier = 0x03,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
}
};
static struct select_item_test select_item_data_621 = {
.pdu = select_item_621,
.pdu_len = sizeof(select_item_621),
.qualifier = 0x01,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
}
};
static struct select_item_test select_item_data_711 = {
.pdu = select_item_711,
.pdu_len = sizeof(select_item_711),
.qualifier = 0x04,
.alpha_id = "Toolkit Select",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
}
};
static struct select_item_test select_item_data_811 = {
.pdu = select_item_811,
.pdu_len = sizeof(select_item_811),
.qualifier = 0x00,
.alpha_id = "<TIME-OUT>",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
{ .id = 3, .text = "Item 3" },
}
};
static struct select_item_test select_item_data_911 = {
.pdu = select_item_911,
.pdu_len = sizeof(select_item_911),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 1</span>"
"</div>",
};
static struct select_item_test select_item_data_912 = {
.pdu = select_item_912,
.pdu_len = sizeof(select_item_912),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
}
};
static struct select_item_test select_item_data_921 = {
.pdu = select_item_921,
.pdu_len = sizeof(select_item_921),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x01, 0xB4, 0x00, 0x06, 0x01, 0xB4 }
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 1</span>"
"</div>",
};
static struct select_item_test select_item_data_922 = {
.pdu = select_item_922,
.pdu_len = sizeof(select_item_922),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
}
};
static struct select_item_test select_item_data_931 = {
.pdu = select_item_931,
.pdu_len = sizeof(select_item_931),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x02, 0xB4, 0x00, 0x06, 0x02, 0xB4 }
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 1</span>"
"</div>"
};
static struct select_item_test select_item_data_932 = {
.pdu = select_item_932,
.pdu_len = sizeof(select_item_932),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
}
};
static struct select_item_test select_item_data_941 = {
.pdu = select_item_941,
.pdu_len = sizeof(select_item_941),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x04, 0xB4, 0x00, 0x06, 0x04, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">"
"Toolkit Select 1</span></div>",
};
static struct select_item_test select_item_data_942 = {
.pdu = select_item_942,
.pdu_len = sizeof(select_item_942),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 2</span>"
"</div>",
};
static struct select_item_test select_item_data_943 = {
.pdu = select_item_943,
.pdu_len = sizeof(select_item_943),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items = {
{ .id = 1, .text = "Item 5" },
{ .id = 2, .text = "Item 6" },
}
};
static struct select_item_test select_item_data_951 = {
.pdu = select_item_951,
.pdu_len = sizeof(select_item_951),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x08, 0xB4, 0x00, 0x06, 0x08, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">"
"Toolkit Select 1</span></div>",
};
static struct select_item_test select_item_data_952 = {
.pdu = select_item_952,
.pdu_len = sizeof(select_item_952),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 2</span>"
"</div>",
};
static struct select_item_test select_item_data_953 = {
.pdu = select_item_953,
.pdu_len = sizeof(select_item_953),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items = {
{ .id = 1, .text = "Item 5" },
{ .id = 2, .text = "Item 6" },
}
};
static struct select_item_test select_item_data_961 = {
.pdu = select_item_961,
.pdu_len = sizeof(select_item_961),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x10, 0xB4, 0x00, 0x06, 0x10, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">"
"Toolkit Select 1</span></div>",
};
static struct select_item_test select_item_data_962 = {
.pdu = select_item_962,
.pdu_len = sizeof(select_item_962),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 2</span>"
"</div>",
};
static struct select_item_test select_item_data_963 = {
.pdu = select_item_963,
.pdu_len = sizeof(select_item_963),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items = {
{ .id = 1, .text = "Item 5" },
{ .id = 2, .text = "Item 6" },
}
};
static struct select_item_test select_item_data_971 = {
.pdu = select_item_971,
.pdu_len = sizeof(select_item_971),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x20, 0xB4, 0x00, 0x06, 0x20, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">"
"Toolkit Select 1</span></div>"
};
static struct select_item_test select_item_data_972 = {
.pdu = select_item_972,
.pdu_len = sizeof(select_item_972),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 2</span>"
"</div>",
};
static struct select_item_test select_item_data_973 = {
.pdu = select_item_973,
.pdu_len = sizeof(select_item_973),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items = {
{ .id = 1, .text = "Item 5" },
{ .id = 2, .text = "Item 6" },
}
};
static struct select_item_test select_item_data_981 = {
.pdu = select_item_981,
.pdu_len = sizeof(select_item_981),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x40, 0xB4, 0x00, 0x06, 0x40, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Toolkit Select 1</span></div>",
};
static struct select_item_test select_item_data_982 = {
.pdu = select_item_982,
.pdu_len = sizeof(select_item_982),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 2</span>"
"</div>",
};
static struct select_item_test select_item_data_983 = {
.pdu = select_item_983,
.pdu_len = sizeof(select_item_983),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items = {
{ .id = 1, .text = "Item 5" },
{ .id = 2, .text = "Item 6" },
}
};
static struct select_item_test select_item_data_991 = {
.pdu = select_item_991,
.pdu_len = sizeof(select_item_991),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x80, 0xB4, 0x00, 0x06, 0x80, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: line-through;color: #347235;"
"background-color: #FFFF00;\">Toolkit Select 1</span></div>",
};
static struct select_item_test select_item_data_992 = {
.pdu = select_item_992,
.pdu_len = sizeof(select_item_992),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 2</span>"
"</div>",
};
static struct select_item_test select_item_data_993 = {
.pdu = select_item_993,
.pdu_len = sizeof(select_item_993),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 3",
.items = {
{ .id = 1, .text = "Item 5" },
{ .id = 2, .text = "Item 6" },
}
};
static struct select_item_test select_item_data_9101 = {
.pdu = select_item_9101,
.pdu_len = sizeof(select_item_9101),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 1",
.items = {
{ .id = 1, .text = "Item 1" },
{ .id = 2, .text = "Item 2" },
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.item_text_attr_list = {
.len = 8,
.list = { 0x00, 0x06, 0x00, 0xB4, 0x00, 0x06, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Toolkit Select 1</span>"
"</div>",
};
static struct select_item_test select_item_data_9102 = {
.pdu = select_item_9102,
.pdu_len = sizeof(select_item_9102),
.qualifier = 0x00,
.alpha_id = "Toolkit Select 2",
.items = {
{ .id = 1, .text = "Item 3" },
{ .id = 2, .text = "Item 4" },
}
};
static struct select_item_test select_item_data_1011 = {
.pdu = select_item_1011,
.pdu_len = sizeof(select_item_1011),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items = {
{ .id = 1, .text = "ЗДРАВСТВУЙТЕ1" },
{ .id = 2, .text = "ЗДРАВСТВУЙТЕ2" },
{ .id = 3, .text = "ЗДРАВСТВУЙТЕ3" },
}
};
static struct select_item_test select_item_data_1021 = {
.pdu = select_item_1021,
.pdu_len = sizeof(select_item_1021),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items = {
{ .id = 1, .text = "ЗДРАВСТВУЙТЕ1" },
{ .id = 2, .text = "ЗДРАВСТВУЙТЕ2" },
{ .id = 3, .text = "ЗДРАВСТВУЙТЕ3" },
}
};
static struct select_item_test select_item_data_1031 = {
.pdu = select_item_1031,
.pdu_len = sizeof(select_item_1031),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.items = {
{ .id = 1, .text = "ЗДРАВСТВУЙТЕ1" },
{ .id = 2, .text = "ЗДРАВСТВУЙТЕ2" },
{ .id = 3, .text = "ЗДРАВСТВУЙТЕ3" },
}
};
static struct select_item_test select_item_data_1111 = {
.pdu = select_item_1111,
.pdu_len = sizeof(select_item_1111),
.qualifier = 0x00,
.alpha_id = "工具箱选择",
.items = {
{ .id = 1, .text = "项目一" },
{ .id = 2, .text = "项目二" },
{ .id = 3, .text = "项目三" },
{ .id = 4, .text = "项目四" },
}
};
static struct select_item_test select_item_data_1211 = {
.pdu = select_item_1211,
.pdu_len = sizeof(select_item_1211),
.qualifier = 0x00,
.alpha_id = "80ル0",
.items = {
{ .id = 1, .text = "80ル1" },
{ .id = 2, .text = "80ル2" },
{ .id = 3, .text = "80ル3" },
}
};
static struct select_item_test select_item_data_1221 = {
.pdu = select_item_1221,
.pdu_len = sizeof(select_item_1221),
.qualifier = 0x00,
.alpha_id = "81ル0",
.items = {
{ .id = 1, .text = "81ル1" },
{ .id = 2, .text = "81ル2" },
{ .id = 3, .text = "81ル3" },
}
};
static struct select_item_test select_item_data_1231 = {
.pdu = select_item_1231,
.pdu_len = sizeof(select_item_1231),
.qualifier = 0x00,
.alpha_id = "82ル0",
.items = {
{ .id = 1, .text = "82ル1" },
{ .id = 2, .text = "82ル2" },
{ .id = 3, .text = "82ル3" },
}
};
static void test_select_item(gconstpointer data)
{
const struct select_item_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SELECT_ITEM);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_alpha_id(command->select_item.alpha_id, test->alpha_id);
check_items(command->select_item.items, test->items);
check_items_next_action_indicator(&command->select_item.next_act,
&test->next_act);
check_item_id(command->select_item.item_id, test->item_id);
check_icon_id(&command->select_item.icon_id, &test->icon_id);
check_item_icon_id_list(&command->select_item.item_icon_id_list,
&test->item_icon_id_list);
check_text_attr(&command->select_item.text_attr, &test->text_attr);
check_item_text_attribute_list(
&command->select_item.item_text_attr_list,
&test->item_text_attr_list);
check_text_attr_html(&command->select_item.text_attr,
command->select_item.alpha_id, test->html);
check_frame_id(&command->select_item.frame_id, &test->frame_id);
stk_command_free(command);
}
struct send_sms_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct sms_test gsm_sms;
struct stk_common_byte_array cdma_sms;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
/* 3GPP TS 31.124 Section 27.22.4.10.1.4.2 */
static unsigned char send_sms_111[] = { 0xD0, 0x37, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x53, 0x4D, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x18, 0x01, 0x00, 0x09,
0x91, 0x10, 0x32, 0x54, 0x76,
0xF8, 0x40, 0xF4, 0x0C, 0x54,
0x65, 0x73, 0x74, 0x20, 0x4D,
0x65, 0x73, 0x73, 0x61, 0x67,
0x65 };
static unsigned char send_sms_121[] = { 0xD0, 0x32, 0x81, 0x03, 0x01, 0x13,
0x01, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x53, 0x4D, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x13, 0x01, 0x00, 0x09,
0x91, 0x10, 0x32, 0x54, 0x76,
0xF8, 0x40, 0xF4, 0x07, 0x53,
0x65, 0x6E, 0x64, 0x20, 0x53,
0x4D };
static unsigned char send_sms_131[] = { 0xD0, 0x3D, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0D, 0x53, 0x68, 0x6F,
0x72, 0x74, 0x20, 0x4D, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65,
0x86, 0x09, 0x91, 0x11, 0x22,
0x33, 0x44, 0x55, 0x66, 0x77,
0xF8, 0x8B, 0x18, 0x01, 0x00,
0x09, 0x91, 0x10, 0x32, 0x54,
0x76, 0xF8, 0x40, 0xF0, 0x0D,
0x53, 0xF4, 0x5B, 0x4E, 0x07,
0x35, 0xCB, 0xF3, 0x79, 0xF8,
0x5C, 0x06 };
static unsigned char send_sms_141[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x13, 0x01, 0x82, 0x02, 0x81,
0x83, 0x85, 0x38, 0x54, 0x68,
0x65, 0x20, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x20,
0x64, 0x61, 0x74, 0x61, 0x20,
0x6F, 0x62, 0x6A, 0x65, 0x63,
0x74, 0x20, 0x68, 0x6F, 0x6C,
0x64, 0x73, 0x20, 0x74, 0x68,
0x65, 0x20, 0x52, 0x50, 0x11,
0x44, 0x65, 0x73, 0x74, 0x69,
0x6E, 0x61, 0x74, 0x69, 0x6F,
0x6E, 0x11, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x81, 0xAC, 0x01, 0x00,
0x09, 0x91, 0x10, 0x32, 0x54,
0x76, 0xF8, 0x40, 0xF4, 0xA0,
0x54, 0x77, 0x6F, 0x20, 0x74,
0x79, 0x70, 0x65, 0x73, 0x20,
0x61, 0x72, 0x65, 0x20, 0x64,
0x65, 0x66, 0x69, 0x6E, 0x65,
0x64, 0x3A, 0x20, 0x2D, 0x20,
0x41, 0x20, 0x73, 0x68, 0x6F,
0x72, 0x74, 0x20, 0x6D, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65,
0x20, 0x74, 0x6F, 0x20, 0x62,
0x65, 0x20, 0x73, 0x65, 0x6E,
0x74, 0x20, 0x74, 0x6F, 0x20,
0x74, 0x68, 0x65, 0x20, 0x6E,
0x65, 0x74, 0x77, 0x6F, 0x72,
0x6B, 0x20, 0x69, 0x6E, 0x20,
0x61, 0x6E, 0x20, 0x53, 0x4D,
0x53, 0x2D, 0x53, 0x55, 0x42,
0x4D, 0x49, 0x54, 0x20, 0x6D,
0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x2C, 0x20, 0x6F, 0x72,
0x20, 0x61, 0x6E, 0x20, 0x53,
0x4D, 0x53, 0x2D, 0x43, 0x4F,
0x4D, 0x4D, 0x41, 0x4E, 0x44,
0x20, 0x6D, 0x65, 0x73, 0x73,
0x61, 0x67, 0x65, 0x2C, 0x20,
0x77, 0x68, 0x65, 0x72, 0x65,
0x20, 0x74, 0x68, 0x65, 0x20,
0x75, 0x73, 0x65, 0x72, 0x20,
0x64, 0x61, 0x74, 0x61, 0x20,
0x63, 0x61, 0x6E, 0x20, 0x62,
0x65, 0x20, 0x70, 0x61, 0x73,
0x73, 0x65, 0x64, 0x20, 0x74,
0x72, 0x61, 0x6E, 0x73, 0x70 };
static unsigned char send_sms_151[] = { 0xD0, 0x81, 0xE9, 0x81, 0x03, 0x01,
0x13, 0x00, 0x82, 0x02, 0x81,
0x83, 0x85, 0x38, 0x54, 0x68,
0x65, 0x20, 0x61, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x20,
0x64, 0x61, 0x74, 0x61, 0x20,
0x6F, 0x62, 0x6A, 0x65, 0x63,
0x74, 0x20, 0x68, 0x6F, 0x6C,
0x64, 0x73, 0x20, 0x74, 0x68,
0x65, 0x20, 0x52, 0x50, 0x20,
0x44, 0x65, 0x73, 0x74, 0x69,
0x6E, 0x61, 0x74, 0x69, 0x6F,
0x6E, 0x20, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x81, 0x98, 0x01, 0x00,
0x09, 0x91, 0x10, 0x32, 0x54,
0x76, 0xF8, 0x40, 0xF0, 0xA0,
0xD4, 0xFB, 0x1B, 0x44, 0xCF,
0xC3, 0xCB, 0x73, 0x50, 0x58,
0x5E, 0x06, 0x91, 0xCB, 0xE6,
0xB4, 0xBB, 0x4C, 0xD6, 0x81,
0x5A, 0xA0, 0x20, 0x68, 0x8E,
0x7E, 0xCB, 0xE9, 0xA0, 0x76,
0x79, 0x3E, 0x0F, 0x9F, 0xCB,
0x20, 0xFA, 0x1B, 0x24, 0x2E,
0x83, 0xE6, 0x65, 0x37, 0x1D,
0x44, 0x7F, 0x83, 0xE8, 0xE8,
0x32, 0xC8, 0x5D, 0xA6, 0xDF,
0xDF, 0xF2, 0x35, 0x28, 0xED,
0x06, 0x85, 0xDD, 0xA0, 0x69,
0x73, 0xDA, 0x9A, 0x56, 0x85,
0xCD, 0x24, 0x15, 0xD4, 0x2E,
0xCF, 0xE7, 0xE1, 0x73, 0x99,
0x05, 0x7A, 0xCB, 0x41, 0x61,
0x37, 0x68, 0xDA, 0x9C, 0xB6,
0x86, 0xCF, 0x66, 0x33, 0xE8,
0x24, 0x82, 0xDA, 0xE5, 0xF9,
0x3C, 0x7C, 0x2E, 0xB3, 0x40,
0x77, 0x74, 0x59, 0x5E, 0x06,
0xD1, 0xD1, 0x65, 0x50, 0x7D,
0x5E, 0x96, 0x83, 0xC8, 0x61,
0x7A, 0x18, 0x34, 0x0E, 0xBB,
0x41, 0xE2, 0x32, 0x08, 0x1E,
0x9E, 0xCF, 0xCB, 0x64, 0x10,
0x5D, 0x1E, 0x76, 0xCF, 0xE1 };
static unsigned char send_sms_161[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x13, 0x00, 0x82, 0x02, 0x81,
0x83, 0x85, 0x81, 0xE6, 0x54,
0x77, 0x6F, 0x20, 0x74, 0x79,
0x70, 0x65, 0x73, 0x20, 0x61,
0x72, 0x65, 0x20, 0x64, 0x65,
0x66, 0x69, 0x6E, 0x65, 0x64,
0x3A, 0x20, 0x2D, 0x20, 0x41,
0x20, 0x73, 0x68, 0x6F, 0x72,
0x74, 0x20, 0x6D, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65, 0x20,
0x74, 0x6F, 0x20, 0x62, 0x65,
0x20, 0x73, 0x65, 0x6E, 0x74,
0x20, 0x74, 0x6F, 0x20, 0x74,
0x68, 0x65, 0x20, 0x6E, 0x65,
0x74, 0x77, 0x6F, 0x72, 0x6B,
0x20, 0x69, 0x6E, 0x20, 0x61,
0x6E, 0x20, 0x53, 0x4D, 0x53,
0x2D, 0x53, 0x55, 0x42, 0x4D,
0x49, 0x54, 0x20, 0x6D, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65,
0x2C, 0x20, 0x6F, 0x72, 0x20,
0x61, 0x6E, 0x20, 0x53, 0x4D,
0x53, 0x2D, 0x43, 0x4F, 0x4D,
0x4D, 0x41, 0x4E, 0x44, 0x20,
0x6D, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x2C, 0x20, 0x77,
0x68, 0x65, 0x72, 0x65, 0x20,
0x74, 0x68, 0x65, 0x20, 0x75,
0x73, 0x65, 0x72, 0x20, 0x64,
0x61, 0x74, 0x61, 0x20, 0x63,
0x61, 0x6E, 0x20, 0x62, 0x65,
0x20, 0x70, 0x61, 0x73, 0x73,
0x65, 0x64, 0x20, 0x74, 0x72,
0x61, 0x6E, 0x73, 0x70, 0x61,
0x72, 0x65, 0x6E, 0x74, 0x6C,
0x79, 0x3B, 0x20, 0x2D, 0x20,
0x41, 0x20, 0x73, 0x68, 0x6F,
0x72, 0x74, 0x20, 0x6D, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65,
0x20, 0x74, 0x6F, 0x20, 0x62,
0x65, 0x20, 0x73, 0x65, 0x6E,
0x74, 0x20, 0x74, 0x6F, 0x20,
0x74, 0x68, 0x65, 0x20, 0x6E,
0x65, 0x74, 0x77, 0x6F, 0x72,
0x6B, 0x20, 0x69, 0x6E, 0x20,
0x61, 0x6E, 0x20, 0x53, 0x4D,
0x53, 0x2D, 0x53, 0x55, 0x42,
0x4D, 0x49, 0x54, 0x20, 0x8B,
0x09, 0x01, 0x00, 0x02, 0x91,
0x10, 0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_171[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x00, 0x86, 0x09, 0x91,
0x11, 0x22, 0x33, 0x44, 0x55,
0x66, 0x77, 0xF8, 0x8B, 0x18,
0x01, 0x00, 0x09, 0x91, 0x10,
0x32, 0x54, 0x76, 0xF8, 0x40,
0xF4, 0x0C, 0x54, 0x65, 0x73,
0x74, 0x20, 0x4D, 0x65, 0x73,
0x73, 0x61, 0x67, 0x65 };
static unsigned char send_sms_181[] = { 0xD0, 0x2E, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x86, 0x09, 0x91, 0x11, 0x22,
0x33, 0x44, 0x55, 0x66, 0x77,
0xF8, 0x8B, 0x18, 0x01, 0x00,
0x09, 0x91, 0x10, 0x32, 0x54,
0x76, 0xF8, 0x40, 0xF4, 0x0C,
0x54, 0x65, 0x73, 0x74, 0x20,
0x4D, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65 };
static unsigned char send_sms_211[] = { 0xD0, 0x55, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x86, 0x09, 0x91,
0x11, 0x22, 0x33, 0x44, 0x55,
0x66, 0x77, 0xF8, 0x8B, 0x24,
0x01, 0x00, 0x09, 0x91, 0x10,
0x32, 0x54, 0x76, 0xF8, 0x40,
0x08, 0x18, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15 };
static unsigned char send_sms_212[] = { 0xD0, 0x4B, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0F, 0x81, 0x0C, 0x08,
0x97, 0x94, 0xA0, 0x90, 0x92,
0xA1, 0xA2, 0x92, 0xA3, 0x99,
0xA2, 0x95, 0x86, 0x09, 0x91,
0x11, 0x22, 0x33, 0x44, 0x55,
0x66, 0x77, 0xF8, 0x8B, 0x24,
0x01, 0x00, 0x09, 0x91, 0x10,
0x32, 0x54, 0x76, 0xF8, 0x40,
0x08, 0x18, 0x04, 0x17, 0x04,
0x14, 0x04, 0x20, 0x04, 0x10,
0x04, 0x12, 0x04, 0x21, 0x04,
0x22, 0x04, 0x12, 0x04, 0x23,
0x04, 0x19, 0x04, 0x22, 0x04,
0x15 };
static unsigned char send_sms_213[] = { 0xD0, 0x4C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x82, 0x0C, 0x04,
0x10, 0x87, 0x84, 0x90, 0x80,
0x82, 0x91, 0x92, 0x82, 0x93,
0x89, 0x92, 0x85, 0x86, 0x09,
0x91, 0x11, 0x22, 0x33, 0x44,
0x55, 0x66, 0x77, 0xF8, 0x8B,
0x24, 0x01, 0x00, 0x09, 0x91,
0x10, 0x32, 0x54, 0x76, 0xF8,
0x40, 0x08, 0x18, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15 };
static unsigned char send_sms_311[] = { 0xD0, 0x3B, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x4E, 0x4F, 0x20,
0x49, 0x43, 0x4F, 0x4E, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x18, 0x01, 0x00, 0x09,
0x91, 0x10, 0x32, 0x54, 0x76,
0xF8, 0x40, 0xF4, 0x0C, 0x54,
0x65, 0x73, 0x74, 0x20, 0x4D,
0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x9E, 0x02, 0x00, 0x01 };
static unsigned char send_sms_321[] = { 0xD0, 0x3B, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x53, 0x4D, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x18, 0x01, 0x00, 0x09,
0x91, 0x10, 0x32, 0x54, 0x76,
0xF8, 0x40, 0xF4, 0x0C, 0x54,
0x65, 0x73, 0x74, 0x20, 0x4D,
0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x1E, 0x02, 0x01, 0x01 };
static unsigned char send_sms_411[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_412[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_421[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x01, 0xB4 };
static unsigned char send_sms_422[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_431[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x02, 0xB4 };
static unsigned char send_sms_432[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_441[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x04, 0xB4 };
static unsigned char send_sms_442[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_443[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_451[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x08, 0xB4 };
static unsigned char send_sms_452[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_453[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_461[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x10, 0xB4 };
static unsigned char send_sms_462[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_463[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_471[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x20, 0xB4 };
static unsigned char send_sms_472[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_473[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_481[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x40, 0xB4 };
static unsigned char send_sms_482[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_483[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_491[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x80, 0xB4 };
static unsigned char send_sms_492[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_493[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_4101[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20, 0xD0,
0x04, 0x00, 0x10, 0x00, 0xB4 };
static unsigned char send_sms_4102[] = { 0xD0, 0x26, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8B, 0x09,
0x01, 0x00, 0x02, 0x91, 0x10,
0x40, 0xF0, 0x01, 0x20 };
static unsigned char send_sms_511[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x4E, 0x2D,
0x4E, 0x00, 0x86, 0x09, 0x91,
0x11, 0x22, 0x33, 0x44, 0x55,
0x66, 0x77, 0xF8, 0x8B, 0x10,
0x01, 0x00, 0x09, 0x91, 0x10,
0x32, 0x54, 0x76, 0xF8, 0x40,
0x08, 0x04, 0x4E, 0x2D, 0x4E,
0x00 };
static unsigned char send_sms_512[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x81, 0x02, 0x9C,
0xAD, 0x80, 0x86, 0x09, 0x91,
0x11, 0x22, 0x33, 0x44, 0x55,
0x66, 0x77, 0xF8, 0x8B, 0x10,
0x01, 0x00, 0x09, 0x91, 0x10,
0x32, 0x54, 0x76, 0xF8, 0x40,
0x08, 0x04, 0x4E, 0x2D, 0x4E,
0x00 };
static unsigned char send_sms_513[] = { 0xD0, 0x2E, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x06, 0x82, 0x02, 0x4E,
0x00, 0xAD, 0x80, 0x86, 0x09,
0x91, 0x11, 0x22, 0x33, 0x44,
0x55, 0x66, 0x77, 0xF8, 0x8B,
0x10, 0x01, 0x00, 0x09, 0x91,
0x10, 0x32, 0x54, 0x76, 0xF8,
0x40, 0x08, 0x04, 0x4E, 0x2D,
0x4E, 0x00 };
static unsigned char send_sms_611[] = { 0xD0, 0x35, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x09, 0x80, 0x00, 0x38,
0x00, 0x30, 0x30, 0xEB, 0x00,
0x30, 0x86, 0x09, 0x91, 0x11,
0x22, 0x33, 0x44, 0x55, 0x66,
0x77, 0xF8, 0x8B, 0x14, 0x01,
0x00, 0x09, 0x91, 0x10, 0x32,
0x54, 0x76, 0xF8, 0x40, 0x08,
0x08, 0x00, 0x38, 0x00, 0x30,
0x30, 0xEB, 0x00, 0x31 };
static unsigned char send_sms_612[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x81, 0x04, 0x61,
0x38, 0x31, 0xEB, 0x31, 0x86,
0x09, 0x91, 0x11, 0x22, 0x33,
0x44, 0x55, 0x66, 0x77, 0xF8,
0x8B, 0x14, 0x01, 0x00, 0x09,
0x91, 0x10, 0x32, 0x54, 0x76,
0xF8, 0x40, 0x08, 0x08, 0x00,
0x38, 0x00, 0x30, 0x30, 0xEB,
0x00, 0x32 };
static unsigned char send_sms_613[] = { 0xD0, 0x34, 0x81, 0x03, 0x01, 0x13,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x08, 0x82, 0x04, 0x30,
0xA0, 0x38, 0x32, 0xCB, 0x32,
0x86, 0x09, 0x91, 0x11, 0x22,
0x33, 0x44, 0x55, 0x66, 0x77,
0xF8, 0x8B, 0x14, 0x01, 0x00,
0x09, 0x91, 0x10, 0x32, 0x54,
0x76, 0xF8, 0x40, 0x08, 0x08,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x33 };
static struct send_sms_test send_sms_data_111 = {
.pdu = send_sms_111,
.pdu_len = sizeof(send_sms_111),
.qualifier = 0x00,
.alpha_id = "Send SM",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF4,
.udl = 12,
.ud = "Test Message"
} }
}
};
static struct send_sms_test send_sms_data_121 = {
.pdu = send_sms_121,
.pdu_len = sizeof(send_sms_121),
.qualifier = 0x01,
.alpha_id = "Send SM",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 7,
.ud = "Send SM"
} }
}
};
static struct send_sms_test send_sms_data_131 = {
.pdu = send_sms_131,
.pdu_len = sizeof(send_sms_131),
.qualifier = 0x00,
.alpha_id = "Short Message",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 13,
.ud = "Short Message"
} }
},
};
static struct send_sms_test send_sms_data_141 = {
.pdu = send_sms_141,
.pdu_len = sizeof(send_sms_141),
.qualifier = 0x01,
.alpha_id = "The address data object holds the RP_Destination_Address",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 160,
.ud = "Two types are defined: - A short message to be "
"sent to the network in an SMS-SUBMIT message, "
"or an SMS-COMMAND message, where the user "
"data can be passed transp"
} }
}
};
static struct send_sms_test send_sms_data_151 = {
.pdu = send_sms_151,
.pdu_len = sizeof(send_sms_151),
.qualifier = 0x00,
.alpha_id = "The address data object holds the RP Destination Address",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 160,
.ud = "Two types are defined: - A short message to be "
"sent to the network in an SMS-SUBMIT message, "
"or an SMS-COMMAND message, where the user "
"data can be passed transp"
} }
}
};
/* There should be a space after alpha_id */
static struct send_sms_test send_sms_data_161 = {
.pdu = send_sms_161,
.pdu_len = sizeof(send_sms_161),
.qualifier = 0x00,
.alpha_id = "Two types are defined: - A short message to be sent to "
"the network in an SMS-SUBMIT message, or an "
"SMS-COMMAND message, where the user data can be "
"passed transparently; - A short message to be sent "
"to the network in an SMS-SUBMIT ",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_171 = {
.pdu = send_sms_171,
.pdu_len = sizeof(send_sms_171),
.qualifier = 0x00,
.alpha_id = "",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF4,
.udl = 12,
.ud = "Test Message"
} }
}
};
static struct send_sms_test send_sms_data_181 = {
.pdu = send_sms_181,
.pdu_len = sizeof(send_sms_181),
.qualifier = 0x00,
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF4,
.udl = 12,
.ud = "Test Message"
} }
}
};
static struct send_sms_test send_sms_data_211 = {
.pdu = send_sms_211,
.pdu_len = sizeof(send_sms_211),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0x08,
.udl = 24,
.ud = "ЗДРАВСТВУЙТЕ"
} }
}
};
static struct send_sms_test send_sms_data_212 = {
.pdu = send_sms_212,
.pdu_len = sizeof(send_sms_212),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0x08,
.udl = 24,
.ud = "ЗДРАВСТВУЙТЕ"
} }
}
};
static struct send_sms_test send_sms_data_213 = {
.pdu = send_sms_213,
.pdu_len = sizeof(send_sms_213),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0x08,
.udl = 24,
.ud = "ЗДРАВСТВУЙТЕ"
} }
}
};
static struct send_sms_test send_sms_data_311 = {
.pdu = send_sms_311,
.pdu_len = sizeof(send_sms_311),
.qualifier = 0x00,
.alpha_id = "NO ICON",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF4,
.udl = 12,
.ud = "Test Message"
} }
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_sms_test send_sms_data_321 = {
.pdu = send_sms_321,
.pdu_len = sizeof(send_sms_321),
.qualifier = 0x00,
.alpha_id = "Send SM",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
.pid = 0x40,
.dcs = 0xF4,
.udl = 12,
.ud = "Test Message"
} }
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_sms_test send_sms_data_411 = {
.pdu = send_sms_411,
.pdu_len = sizeof(send_sms_411),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_412 = {
.pdu = send_sms_412,
.pdu_len = sizeof(send_sms_412),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_421 = {
.pdu = send_sms_421,
.pdu_len = sizeof(send_sms_421),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
}
};
static struct send_sms_test send_sms_data_422 = {
.pdu = send_sms_422,
.pdu_len = sizeof(send_sms_422),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_431 = {
.pdu = send_sms_431,
.pdu_len = sizeof(send_sms_431),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
}
};
static struct send_sms_test send_sms_data_432 = {
.pdu = send_sms_432,
.pdu_len = sizeof(send_sms_432),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_441 = {
.pdu = send_sms_441,
.pdu_len = sizeof(send_sms_441),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
}
};
static struct send_sms_test send_sms_data_442 = {
.pdu = send_sms_442,
.pdu_len = sizeof(send_sms_442),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_443 = {
.pdu = send_sms_443,
.pdu_len = sizeof(send_sms_443),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_451 = {
.pdu = send_sms_451,
.pdu_len = sizeof(send_sms_451),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
}
};
static struct send_sms_test send_sms_data_452 = {
.pdu = send_sms_452,
.pdu_len = sizeof(send_sms_452),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_453 = {
.pdu = send_sms_453,
.pdu_len = sizeof(send_sms_453),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_461 = {
.pdu = send_sms_461,
.pdu_len = sizeof(send_sms_461),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
}
};
static struct send_sms_test send_sms_data_462 = {
.pdu = send_sms_462,
.pdu_len = sizeof(send_sms_462),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_463 = {
.pdu = send_sms_463,
.pdu_len = sizeof(send_sms_463),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_471 = {
.pdu = send_sms_471,
.pdu_len = sizeof(send_sms_471),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
}
};
static struct send_sms_test send_sms_data_472 = {
.pdu = send_sms_472,
.pdu_len = sizeof(send_sms_472),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_473 = {
.pdu = send_sms_473,
.pdu_len = sizeof(send_sms_473),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_481 = {
.pdu = send_sms_481,
.pdu_len = sizeof(send_sms_481),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
2010-06-13 09:43:12 +00:00
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
}
};
static struct send_sms_test send_sms_data_482 = {
.pdu = send_sms_482,
.pdu_len = sizeof(send_sms_482),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_483 = {
.pdu = send_sms_483,
.pdu_len = sizeof(send_sms_483),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_491 = {
.pdu = send_sms_491,
.pdu_len = sizeof(send_sms_491),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
}
};
static struct send_sms_test send_sms_data_492 = {
.pdu = send_sms_492,
.pdu_len = sizeof(send_sms_492),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_493 = {
.pdu = send_sms_493,
.pdu_len = sizeof(send_sms_493),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
static struct send_sms_test send_sms_data_4101 = {
.pdu = send_sms_4101,
.pdu_len = sizeof(send_sms_4101),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_sms_test send_sms_data_4102 = {
.pdu = send_sms_4102,
.pdu_len = sizeof(send_sms_4102),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.gsm_sms = {
{}, SMS_TYPE_SUBMIT,
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "01",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0xF0,
.udl = 1,
.ud = " "
} }
}
};
/* The TP-UDL should be 4, instead of 24 */
static struct send_sms_test send_sms_data_511 = {
.pdu = send_sms_511,
.pdu_len = sizeof(send_sms_511),
.qualifier = 0x00,
.alpha_id = "中一",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
2010-06-13 09:43:12 +00:00
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0x08,
.udl = 4,
.ud = "中一"
} }
}
};
/* The TP-UDL should be 4, instead of 24 */
static struct send_sms_test send_sms_data_512 = {
.pdu = send_sms_512,
.pdu_len = sizeof(send_sms_512),
.qualifier = 0x00,
.alpha_id = "中一",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
2010-06-13 09:43:12 +00:00
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0x08,
.udl = 4,
.ud = "中一"
} }
}
};
/* The TP-UDL should be 4, instead of 24 */
static struct send_sms_test send_sms_data_513 = {
.pdu = send_sms_513,
.pdu_len = sizeof(send_sms_513),
.qualifier = 0x00,
.alpha_id = "中一",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
2010-06-13 09:43:12 +00:00
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0x08,
.udl = 4,
.ud = "中一"
} }
}
};
static struct send_sms_test send_sms_data_611 = {
.pdu = send_sms_611,
.pdu_len = sizeof(send_sms_611),
.qualifier = 0x00,
.alpha_id = "80ル0",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
2010-06-13 09:43:12 +00:00
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0x08,
.udl = 8,
.ud = "80ル1"
} }
}
};
static struct send_sms_test send_sms_data_612 = {
.pdu = send_sms_612,
.pdu_len = sizeof(send_sms_612),
.qualifier = 0x00,
.alpha_id = "81ル1",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
2010-06-13 09:43:12 +00:00
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0x08,
.udl = 8,
.ud = "80ル2"
} }
}
};
static struct send_sms_test send_sms_data_613 = {
.pdu = send_sms_613,
.pdu_len = sizeof(send_sms_613),
.qualifier = 0x00,
.alpha_id = "82ル2",
.gsm_sms = {
2010-06-30 15:24:15 +00:00
{
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "112233445566778",
},
SMS_TYPE_SUBMIT,
2010-06-13 09:43:12 +00:00
{.submit = {
.mr = 0x00,
.daddr = {
.number_type = SMS_NUMBER_TYPE_INTERNATIONAL,
.numbering_plan = SMS_NUMBERING_PLAN_ISDN,
.address = "012345678",
},
2010-06-13 09:43:12 +00:00
.pid = 0x40,
.dcs = 0x08,
.udl = 8,
.ud = "80ル3"
} }
}
};
static void test_send_sms(gconstpointer data)
{
const struct send_sms_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
2010-06-13 09:43:12 +00:00
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SEND_SMS);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
check_alpha_id(command->send_sms.alpha_id, test->alpha_id);
check_gsm_sms(&command->send_sms.gsm_sms, &test->gsm_sms);
check_cdma_sms_tpdu(&command->send_sms.cdma_sms, &test->cdma_sms);
check_icon_id(&command->send_sms.icon_id, &test->icon_id);
check_text_attr(&command->send_sms.text_attr, &test->text_attr);
check_frame_id(&command->send_sms.frame_id, &test->frame_id);
stk_command_free(command);
}
struct send_ss_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_ss ss;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char send_ss_111[] = { 0xD0, 0x29, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0C, 0x43, 0x61, 0x6C,
0x6C, 0x20, 0x46, 0x6F, 0x72,
0x77, 0x61, 0x72, 0x64, 0x89,
0x10, 0x91, 0xAA, 0x12, 0x0A,
0x21, 0x43, 0x65, 0x87, 0x09,
0x21, 0x43, 0x65, 0x87, 0xA9,
0x01, 0xFB };
static unsigned char send_ss_141[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0C, 0x43, 0x61, 0x6C,
0x6C, 0x20, 0x46, 0x6F, 0x72,
0x77, 0x61, 0x72, 0x64, 0x89,
0x14, 0x91, 0xAA, 0x12, 0x0A,
0x21, 0x43, 0x65, 0x87, 0x09,
0x21, 0x43, 0x65, 0x87, 0x09,
0x21, 0x43, 0x65, 0xA7, 0x11,
0xFB };
static unsigned char send_ss_151[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x11, 0x00, 0x82, 0x02, 0x81,
0x83, 0x85, 0x81, 0xEB, 0x45,
0x76, 0x65, 0x6E, 0x20, 0x69,
0x66, 0x20, 0x74, 0x68, 0x65,
0x20, 0x46, 0x69, 0x78, 0x65,
0x64, 0x20, 0x44, 0x69, 0x61,
0x6C, 0x6C, 0x69, 0x6E, 0x67,
0x20, 0x4E, 0x75, 0x6D, 0x62,
0x65, 0x72, 0x20, 0x73, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65,
0x20, 0x69, 0x73, 0x20, 0x65,
0x6E, 0x61, 0x62, 0x6C, 0x65,
0x64, 0x2C, 0x20, 0x74, 0x68,
0x65, 0x20, 0x73, 0x75, 0x70,
0x70, 0x6C, 0x65, 0x6D, 0x65,
0x6E, 0x74, 0x61, 0x72, 0x79,
0x20, 0x73, 0x65, 0x72, 0x76,
0x69, 0x63, 0x65, 0x20, 0x63,
0x6F, 0x6E, 0x74, 0x72, 0x6F,
0x6C, 0x20, 0x73, 0x74, 0x72,
0x69, 0x6E, 0x67, 0x20, 0x69,
0x6E, 0x63, 0x6C, 0x75, 0x64,
0x65, 0x64, 0x20, 0x69, 0x6E,
0x20, 0x74, 0x68, 0x65, 0x20,
0x53, 0x45, 0x4E, 0x44, 0x20,
0x53, 0x53, 0x20, 0x70, 0x72,
0x6F, 0x61, 0x63, 0x74, 0x69,
0x76, 0x65, 0x20, 0x63, 0x6F,
0x6D, 0x6D, 0x61, 0x6E, 0x64,
0x20, 0x73, 0x68, 0x61, 0x6C,
0x6C, 0x20, 0x6E, 0x6F, 0x74,
0x20, 0x62, 0x65, 0x20, 0x63,
0x68, 0x65, 0x63, 0x6B, 0x65,
0x64, 0x20, 0x61, 0x67, 0x61,
0x69, 0x6E, 0x73, 0x74, 0x20,
0x74, 0x68, 0x6F, 0x73, 0x65,
0x20, 0x6F, 0x66, 0x20, 0x74,
0x68, 0x65, 0x20, 0x46, 0x44,
0x4E, 0x20, 0x6C, 0x69, 0x73,
0x74, 0x2E, 0x20, 0x55, 0x70,
0x6F, 0x6E, 0x20, 0x72, 0x65,
0x63, 0x65, 0x69, 0x76, 0x69,
0x6E, 0x67, 0x20, 0x74, 0x68,
0x69, 0x73, 0x20, 0x63, 0x6F,
0x6D, 0x6D, 0x61, 0x6E, 0x64,
0x2C, 0x20, 0x74, 0x68, 0x65,
0x20, 0x4D, 0x45, 0x20, 0x73,
0x68, 0x61, 0x6C, 0x6C, 0x20,
0x64, 0x65, 0x63, 0x69, 0x89,
0x04, 0xFF, 0xBA, 0x13, 0xFB };
static unsigned char send_ss_161[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x00, 0x89, 0x10, 0x91,
0xAA, 0x12, 0x0A, 0x21, 0x43,
0x65, 0x87, 0x09, 0x21, 0x43,
0x65, 0x87, 0xA9, 0x01, 0xFB };
static unsigned char send_ss_211[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x42, 0x61, 0x73,
0x69, 0x63, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x89, 0x10, 0x91,
0xAA, 0x12, 0x0A, 0x21, 0x43,
0x65, 0x87, 0x09, 0x21, 0x43,
0x65, 0x87, 0xA9, 0x01, 0xFB,
0x9E, 0x02, 0x00, 0x01 };
static unsigned char send_ss_221[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x43, 0x6F, 0x6C,
0x6F, 0x75, 0x72, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0x9E, 0x02, 0x00, 0x02 };
static unsigned char send_ss_231[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x42, 0x61, 0x73,
0x69, 0x63, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x89, 0x10, 0x91,
0xAA, 0x12, 0x0A, 0x21, 0x43,
0x65, 0x87, 0x09, 0x21, 0x43,
0x65, 0x87, 0xA9, 0x01, 0xFB,
0x9E, 0x02, 0x01, 0x01 };
static unsigned char send_ss_241[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x89, 0x0E, 0x91, 0xAA, 0x12,
0x0A, 0x21, 0x43, 0x65, 0x87,
0x09, 0x21, 0x43, 0x65, 0x87,
0xB9, 0x9E, 0x02, 0x01, 0x01 };
static unsigned char send_ss_311[] = { 0xD0, 0x36, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x89, 0x10, 0x91,
0xAA, 0x12, 0x0A, 0x21, 0x43,
0x65, 0x87, 0x09, 0x21, 0x43,
0x65, 0x87, 0xA9, 0x01, 0xFB };
static unsigned char send_ss_411[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_412[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_421[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x01, 0xB4 };
static unsigned char send_ss_422[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_431[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x02, 0xB4 };
static unsigned char send_ss_432[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_441[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x04, 0xB4 };
static unsigned char send_ss_442[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_443[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_451[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x08, 0xB4 };
static unsigned char send_ss_452[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_453[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_461[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x10, 0xB4 };
static unsigned char send_ss_462[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_463[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_471[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x20, 0xB4 };
static unsigned char send_ss_472[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_473[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_481[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x40, 0xB4 };
static unsigned char send_ss_482[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_483[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_491[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x80, 0xB4 };
static unsigned char send_ss_492[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_493[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_4101[] = { 0xD0, 0x33, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char send_ss_4102[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x89, 0x10,
0x91, 0xAA, 0x12, 0x0A, 0x21,
0x43, 0x65, 0x87, 0x09, 0x21,
0x43, 0x65, 0x87, 0xA9, 0x01,
0xFB };
static unsigned char send_ss_511[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x4F, 0x60,
0x59, 0x7D, 0x89, 0x10, 0x91,
0xAA, 0x12, 0x0A, 0x21, 0x43,
0x65, 0x87, 0x09, 0x21, 0x43,
0x65, 0x87, 0xA9, 0x01, 0xFB };
static unsigned char send_ss_611[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x11,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x03, 0x80, 0x30, 0xEB,
0x89, 0x10, 0x91, 0xAA, 0x12,
0x0A, 0x21, 0x43, 0x65, 0x87,
0x09, 0x21, 0x43, 0x65, 0x87,
0xA9, 0x01, 0xFB };
static struct send_ss_test send_ss_data_111 = {
.pdu = send_ss_111,
.pdu_len = sizeof(send_ss_111),
.qualifier = 0x00,
.alpha_id = "Call Forward",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_141 = {
.pdu = send_ss_141,
.pdu_len = sizeof(send_ss_141),
.qualifier = 0x00,
.alpha_id = "Call Forward",
.ss = {
.ton_npi = 0x91,
.ss = "**21*0123456789012345678901234567*11#"
}
};
static struct send_ss_test send_ss_data_151 = {
.pdu = send_ss_151,
.pdu_len = sizeof(send_ss_151),
.qualifier = 0x00,
.alpha_id = "Even if the Fixed Dialling Number service is enabled, the "
"supplementary service control string included in the SEND SS "
"proactive command shall not be checked against those of the "
"FDN list. Upon receiving this command, the ME shall deci",
.ss = {
.ton_npi = 0xFF,
.ss = "*#31#"
}
};
static struct send_ss_test send_ss_data_161 = {
.pdu = send_ss_161,
.pdu_len = sizeof(send_ss_161),
.qualifier = 0x00,
.alpha_id = "",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_211 = {
.pdu = send_ss_211,
.pdu_len = sizeof(send_ss_211),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_ss_test send_ss_data_221 = {
.pdu = send_ss_221,
.pdu_len = sizeof(send_ss_221),
.qualifier = 0x00,
.alpha_id = "Colour Icon",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct send_ss_test send_ss_data_231 = {
.pdu = send_ss_231,
.pdu_len = sizeof(send_ss_231),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_ss_test send_ss_data_241 = {
.pdu = send_ss_241,
.pdu_len = sizeof(send_ss_241),
.qualifier = 0x00,
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789#"
},
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_ss_test send_ss_data_311 = {
.pdu = send_ss_311,
.pdu_len = sizeof(send_ss_311),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_411 = {
.pdu = send_ss_411,
.pdu_len = sizeof(send_ss_411),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ss_test send_ss_data_412 = {
.pdu = send_ss_412,
.pdu_len = sizeof(send_ss_412),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_421 = {
.pdu = send_ss_421,
.pdu_len = sizeof(send_ss_421),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
}
};
static struct send_ss_test send_ss_data_422 = {
.pdu = send_ss_422,
.pdu_len = sizeof(send_ss_422),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_431 = {
.pdu = send_ss_431,
.pdu_len = sizeof(send_ss_431),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
}
};
static struct send_ss_test send_ss_data_432 = {
.pdu = send_ss_432,
.pdu_len = sizeof(send_ss_432),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_441 = {
.pdu = send_ss_441,
.pdu_len = sizeof(send_ss_441),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
}
};
static struct send_ss_test send_ss_data_442 = {
.pdu = send_ss_442,
.pdu_len = sizeof(send_ss_442),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ss_test send_ss_data_443 = {
.pdu = send_ss_443,
.pdu_len = sizeof(send_ss_443),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_451 = {
.pdu = send_ss_451,
.pdu_len = sizeof(send_ss_451),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
}
};
static struct send_ss_test send_ss_data_452 = {
.pdu = send_ss_452,
.pdu_len = sizeof(send_ss_452),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ss_test send_ss_data_453 = {
.pdu = send_ss_453,
.pdu_len = sizeof(send_ss_453),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_461 = {
.pdu = send_ss_461,
.pdu_len = sizeof(send_ss_461),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_462 = {
.pdu = send_ss_462,
.pdu_len = sizeof(send_ss_462),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_463 = {
.pdu = send_ss_463,
.pdu_len = sizeof(send_ss_463),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_471 = {
.pdu = send_ss_471,
.pdu_len = sizeof(send_ss_471),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
2010-06-13 09:43:12 +00:00
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_472 = {
.pdu = send_ss_472,
.pdu_len = sizeof(send_ss_472),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_473 = {
.pdu = send_ss_473,
.pdu_len = sizeof(send_ss_473),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_481 = {
.pdu = send_ss_481,
.pdu_len = sizeof(send_ss_481),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
2010-06-13 09:43:12 +00:00
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_482 = {
.pdu = send_ss_482,
.pdu_len = sizeof(send_ss_482),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
2010-06-13 09:43:12 +00:00
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_483 = {
.pdu = send_ss_483,
.pdu_len = sizeof(send_ss_483),
.qualifier = 0x00,
2010-06-13 09:43:12 +00:00
.alpha_id = "Text Attribute 3",
.ss = {
.ton_npi = 0x91,
2010-06-13 09:43:12 +00:00
.ss = "**21*01234567890123456789*10#"
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_491 = {
.pdu = send_ss_491,
.pdu_len = sizeof(send_ss_491),
.qualifier = 0x00,
2010-06-13 09:43:12 +00:00
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
2010-06-13 09:43:12 +00:00
.ss = "**21*01234567890123456789*10#"
},
2010-06-13 09:43:12 +00:00
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_492 = {
.pdu = send_ss_492,
.pdu_len = sizeof(send_ss_492),
.qualifier = 0x00,
2010-06-13 09:43:12 +00:00
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
2010-06-13 09:43:12 +00:00
.ss = "**21*01234567890123456789*10#"
},
2010-06-13 09:43:12 +00:00
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_493 = {
.pdu = send_ss_493,
.pdu_len = sizeof(send_ss_493),
.qualifier = 0x00,
2010-06-13 09:43:12 +00:00
.alpha_id = "Text Attribute 3",
.ss = {
.ton_npi = 0x91,
2010-06-13 09:43:12 +00:00
.ss = "**21*01234567890123456789*10#"
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_4101 = {
.pdu = send_ss_4101,
.pdu_len = sizeof(send_ss_4101),
.qualifier = 0x00,
2010-06-13 09:43:12 +00:00
.alpha_id = "Text Attribute 1",
.ss = {
.ton_npi = 0x91,
2010-06-13 09:43:12 +00:00
.ss = "**21*01234567890123456789*10#"
},
2010-06-13 09:43:12 +00:00
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_4102 = {
.pdu = send_ss_4102,
.pdu_len = sizeof(send_ss_4102),
.qualifier = 0x00,
2010-06-13 09:43:12 +00:00
.alpha_id = "Text Attribute 2",
.ss = {
.ton_npi = 0x91,
2010-06-13 09:43:12 +00:00
.ss = "**21*01234567890123456789*10#"
}
};
2010-06-13 09:43:12 +00:00
static struct send_ss_test send_ss_data_511 = {
.pdu = send_ss_511,
.pdu_len = sizeof(send_ss_511),
.qualifier = 0x00,
.alpha_id = "你好",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static struct send_ss_test send_ss_data_611 = {
.pdu = send_ss_611,
.pdu_len = sizeof(send_ss_611),
.qualifier = 0x00,
.alpha_id = "",
.ss = {
.ton_npi = 0x91,
.ss = "**21*01234567890123456789*10#"
}
};
static void test_send_ss(gconstpointer data)
{
2010-06-13 09:43:12 +00:00
const struct send_ss_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
2010-06-13 09:43:12 +00:00
g_assert(command->type == STK_COMMAND_TYPE_SEND_SS);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
2010-06-13 09:43:12 +00:00
check_alpha_id(command->send_ss.alpha_id, test->alpha_id);
check_ss(&command->send_ss.ss, &test->ss);
check_icon_id(&command->send_ss.icon_id, &test->icon_id);
check_text_attr(&command->send_ss.text_attr, &test->text_attr);
check_frame_id(&command->send_ss.frame_id, &test->frame_id);
stk_command_free(command);
}
2010-06-17 10:35:07 +00:00
struct send_ussd_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
char *ussd;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char send_ussd_111[] = { 0xD0, 0x50, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x37, 0x2D, 0x62,
0x69, 0x74, 0x20, 0x55, 0x53,
0x53, 0x44, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60 };
static unsigned char send_ussd_121[] = { 0xD0, 0x58, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x38, 0x2D, 0x62,
0x69, 0x74, 0x20, 0x55, 0x53,
0x53, 0x44, 0x8A, 0x41, 0x44,
0x41, 0x42, 0x43, 0x44, 0x45,
0x46, 0x47, 0x48, 0x49, 0x4A,
0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
0x50, 0x51, 0x52, 0x53, 0x54,
0x55, 0x56, 0x57, 0x58, 0x59,
0x5A, 0x2D, 0x61, 0x62, 0x63,
0x64, 0x65, 0x66, 0x67, 0x68,
0x69, 0x6A, 0x6B, 0x6C, 0x6D,
0x6E, 0x6F, 0x70, 0x71, 0x72,
0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7A, 0x2D, 0x31,
0x32, 0x33, 0x34, 0x35, 0x36,
0x37, 0x38, 0x39, 0x30 };
static unsigned char send_ussd_131[] = { 0xD0, 0x2F, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x09, 0x55, 0x43, 0x53,
0x32, 0x20, 0x55, 0x53, 0x53,
0x44, 0x8A, 0x19, 0x48, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20,
0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04,
0x22, 0x04, 0x15 };
static unsigned char send_ussd_161[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x12, 0x00, 0x82, 0x02, 0x81,
0x83, 0x85, 0x81, 0xB6, 0x6F,
0x6E, 0x63, 0x65, 0x20, 0x61,
0x20, 0x52, 0x45, 0x4C, 0x45,
0x41, 0x53, 0x45, 0x20, 0x43,
0x4F, 0x4D, 0x50, 0x4C, 0x45,
0x54, 0x45, 0x20, 0x6D, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65,
0x20, 0x63, 0x6F, 0x6E, 0x74,
0x61, 0x69, 0x6E, 0x69, 0x6E,
0x67, 0x20, 0x74, 0x68, 0x65,
0x20, 0x55, 0x53, 0x53, 0x44,
0x20, 0x52, 0x65, 0x74, 0x75,
0x72, 0x6E, 0x20, 0x52, 0x65,
0x73, 0x75, 0x6C, 0x74, 0x20,
0x6D, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x20, 0x6E, 0x6F,
0x74, 0x20, 0x63, 0x6F, 0x6E,
0x74, 0x61, 0x69, 0x6E, 0x69,
0x6E, 0x67, 0x20, 0x61, 0x6E,
0x20, 0x65, 0x72, 0x72, 0x6F,
0x72, 0x20, 0x68, 0x61, 0x73,
0x20, 0x62, 0x65, 0x65, 0x6E,
0x20, 0x72, 0x65, 0x63, 0x65,
0x69, 0x76, 0x65, 0x64, 0x20,
0x66, 0x72, 0x6F, 0x6D, 0x20,
0x74, 0x68, 0x65, 0x20, 0x6E,
0x65, 0x74, 0x77, 0x6F, 0x72,
0x6B, 0x2C, 0x20, 0x74, 0x68,
0x65, 0x20, 0x4D, 0x45, 0x20,
0x73, 0x68, 0x61, 0x6C, 0x6C,
0x20, 0x69, 0x6E, 0x66, 0x6F,
0x72, 0x6D, 0x20, 0x74, 0x68,
0x65, 0x20, 0x53, 0x49, 0x4D,
0x20, 0x74, 0x68, 0x61, 0x74,
0x20, 0x74, 0x68, 0x65, 0x20,
0x63, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x68, 0x61,
0x73, 0x8A, 0x39, 0xF0, 0x41,
0xE1, 0x90, 0x58, 0x34, 0x1E,
0x91, 0x49, 0xE5, 0x92, 0xD9,
0x74, 0x3E, 0xA1, 0x51, 0xE9,
0x94, 0x5A, 0xB5, 0x5E, 0xB1,
0x59, 0x6D, 0x2B, 0x2C, 0x1E,
0x93, 0xCB, 0xE6, 0x33, 0x3A,
0xAD, 0x5E, 0xB3, 0xDB, 0xEE,
0x37, 0x3C, 0x2E, 0x9F, 0xD3,
0xEB, 0xF6, 0x3B, 0x3E, 0xAF,
0x6F, 0xC5, 0x64, 0x33, 0x5A,
0xCD, 0x76, 0xC3, 0xE5, 0x60 };
static unsigned char send_ussd_171[] = { 0xD0, 0x44, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x8A, 0x39, 0xF0, 0x41, 0xE1,
0x90, 0x58, 0x34, 0x1E, 0x91,
0x49, 0xE5, 0x92, 0xD9, 0x74,
0x3E, 0xA1, 0x51, 0xE9, 0x94,
0x5A, 0xB5, 0x5E, 0xB1, 0x59,
0x6D, 0x2B, 0x2C, 0x1E, 0x93,
0xCB, 0xE6, 0x33, 0x3A, 0xAD,
0x5E, 0xB3, 0xDB, 0xEE, 0x37,
0x3C, 0x2E, 0x9F, 0xD3, 0xEB,
0xF6, 0x3B, 0x3E, 0xAF, 0x6F,
0xC5, 0x64, 0x33, 0x5A, 0xCD,
0x76, 0xC3, 0xE5, 0x60 };
static unsigned char send_ussd_181[] = { 0xD0, 0x46, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x00, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60 };
static unsigned char send_ussd_211[] = { 0xD0, 0x54, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x42, 0x61, 0x73,
0x69, 0x63, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60, 0x9E, 0x02, 0x00, 0x01 };
static unsigned char send_ussd_221[] = { 0xD0, 0x54, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x43, 0x6F, 0x6C,
0x6F, 0x72, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60, 0x9E, 0x02, 0x00, 0x02 };
static unsigned char send_ussd_231[] = { 0xD0, 0x54, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x42, 0x61, 0x73,
0x69, 0x63, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60, 0x9E, 0x02, 0x01, 0x01 };
static unsigned char send_ussd_241[] = { 0xD0, 0x48, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x8A, 0x39, 0xF0, 0x41, 0xE1,
0x90, 0x58, 0x34, 0x1E, 0x91,
0x49, 0xE5, 0x92, 0xD9, 0x74,
0x3E, 0xA1, 0x51, 0xE9, 0x94,
0x5A, 0xB5, 0x5E, 0xB1, 0x59,
0x6D, 0x2B, 0x2C, 0x1E, 0x93,
0xCB, 0xE6, 0x33, 0x3A, 0xAD,
0x5E, 0xB3, 0xDB, 0xEE, 0x37,
0x3C, 0x2E, 0x9F, 0xD3, 0xEB,
0xF6, 0x3B, 0x3E, 0xAF, 0x6F,
0xC5, 0x64, 0x33, 0x5A, 0xCD,
0x76, 0xC3, 0xE5, 0x60, 0x9E,
0x02, 0x01, 0x01 };
static unsigned char send_ussd_311[] = { 0xD0, 0x5F, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60 };
static unsigned char send_ussd_411[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_412[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_421[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x01, 0xB4 };
static unsigned char send_ussd_422[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_431[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x02, 0xB4 };
static unsigned char send_ussd_432[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_441[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x04, 0xB4 };
static unsigned char send_ussd_442[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_443[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_451[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x08, 0xB4 };
static unsigned char send_ussd_452[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_453[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_461[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x10, 0xB4 };
static unsigned char send_ussd_462[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_463[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_471[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x20, 0xB4 };
static unsigned char send_ussd_472[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_473[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_481[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x40, 0xB4 };
static unsigned char send_ussd_482[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_483[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_491[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x80, 0xB4 };
static unsigned char send_ussd_492[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_493[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x33, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_4101[] = { 0xD0, 0x5C, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x31, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60, 0xD0, 0x04, 0x00,
0x10, 0x00, 0xB4 };
static unsigned char send_ussd_4102[] = { 0xD0, 0x56, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x10, 0x54, 0x65, 0x78,
0x74, 0x20, 0x41, 0x74, 0x74,
0x72, 0x69, 0x62, 0x75, 0x74,
0x65, 0x20, 0x32, 0x8A, 0x39,
0xF0, 0x41, 0xE1, 0x90, 0x58,
0x34, 0x1E, 0x91, 0x49, 0xE5,
0x92, 0xD9, 0x74, 0x3E, 0xA1,
0x51, 0xE9, 0x94, 0x5A, 0xB5,
0x5E, 0xB1, 0x59, 0x6D, 0x2B,
0x2C, 0x1E, 0x93, 0xCB, 0xE6,
0x33, 0x3A, 0xAD, 0x5E, 0xB3,
0xDB, 0xEE, 0x37, 0x3C, 0x2E,
0x9F, 0xD3, 0xEB, 0xF6, 0x3B,
0x3E, 0xAF, 0x6F, 0xC5, 0x64,
0x33, 0x5A, 0xCD, 0x76, 0xC3,
0xE5, 0x60 };
static unsigned char send_ussd_511[] = { 0xD0, 0x4B, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x4F, 0x60,
0x59, 0x7D, 0x8A, 0x39, 0xF0,
0x41, 0xE1, 0x90, 0x58, 0x34,
0x1E, 0x91, 0x49, 0xE5, 0x92,
0xD9, 0x74, 0x3E, 0xA1, 0x51,
0xE9, 0x94, 0x5A, 0xB5, 0x5E,
0xB1, 0x59, 0x6D, 0x2B, 0x2C,
0x1E, 0x93, 0xCB, 0xE6, 0x33,
0x3A, 0xAD, 0x5E, 0xB3, 0xDB,
0xEE, 0x37, 0x3C, 0x2E, 0x9F,
0xD3, 0xEB, 0xF6, 0x3B, 0x3E,
0xAF, 0x6F, 0xC5, 0x64, 0x33,
0x5A, 0xCD, 0x76, 0xC3, 0xE5,
0x60 };
static unsigned char send_ussd_611[] = { 0xD0, 0x49, 0x81, 0x03, 0x01, 0x12,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x03, 0x80, 0x30, 0xEB,
0x8A, 0x39, 0xF0, 0x41, 0xE1,
0x90, 0x58, 0x34, 0x1E, 0x91,
0x49, 0xE5, 0x92, 0xD9, 0x74,
0x3E, 0xA1, 0x51, 0xE9, 0x94,
0x5A, 0xB5, 0x5E, 0xB1, 0x59,
0x6D, 0x2B, 0x2C, 0x1E, 0x93,
0xCB, 0xE6, 0x33, 0x3A, 0xAD,
0x5E, 0xB3, 0xDB, 0xEE, 0x37,
0x3C, 0x2E, 0x9F, 0xD3, 0xEB,
0xF6, 0x3B, 0x3E, 0xAF, 0x6F,
0xC5, 0x64, 0x33, 0x5A, 0xCD,
0x76, 0xC3, 0xE5, 0x60 };
static struct send_ussd_test send_ussd_data_111 = {
.pdu = send_ussd_111,
.pdu_len = sizeof(send_ussd_111),
.qualifier = 0x00,
.alpha_id = "7-bit USSD",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_121 = {
.pdu = send_ussd_121,
.pdu_len = sizeof(send_ussd_121),
.qualifier = 0x00,
.alpha_id = "8-bit USSD",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_131 = {
.pdu = send_ussd_131,
.pdu_len = sizeof(send_ussd_131),
.qualifier = 0x00,
.alpha_id = "UCS2 USSD",
.ussd = "ЗДРАВСТВУЙТЕ"
};
static struct send_ussd_test send_ussd_data_161 = {
.pdu = send_ussd_161,
.pdu_len = sizeof(send_ussd_161),
.qualifier = 0x00,
.alpha_id = "once a RELEASE COMPLETE message containing the USSD "
"Return Result message not containing an error has been "
"received from the network, the ME shall inform the SIM "
"that the command has",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_171 = {
.pdu = send_ussd_171,
.pdu_len = sizeof(send_ussd_171),
.qualifier = 0x00,
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_181 = {
.pdu = send_ussd_181,
.pdu_len = sizeof(send_ussd_181),
.qualifier = 0x00,
.alpha_id = "",
2010-06-17 10:35:07 +00:00
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_211 = {
.pdu = send_ussd_211,
.pdu_len = sizeof(send_ussd_211),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_ussd_test send_ussd_data_221 = {
.pdu = send_ussd_221,
.pdu_len = sizeof(send_ussd_221),
.qualifier = 0x00,
.alpha_id = "Color Icon",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct send_ussd_test send_ussd_data_231 = {
.pdu = send_ussd_231,
.pdu_len = sizeof(send_ussd_231),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_ussd_test send_ussd_data_241 = {
.pdu = send_ussd_241,
.pdu_len = sizeof(send_ussd_241),
.qualifier = 0x00,
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
/* The ussd is not complete in spec */
static struct send_ussd_test send_ussd_data_311 = {
.pdu = send_ussd_311,
.pdu_len = sizeof(send_ussd_311),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_411 = {
.pdu = send_ussd_411,
.pdu_len = sizeof(send_ussd_411),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_412 = {
.pdu = send_ussd_412,
.pdu_len = sizeof(send_ussd_412),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_421 = {
.pdu = send_ussd_421,
.pdu_len = sizeof(send_ussd_421),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_422 = {
.pdu = send_ussd_422,
.pdu_len = sizeof(send_ussd_422),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_431 = {
.pdu = send_ussd_431,
.pdu_len = sizeof(send_ussd_431),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_432 = {
.pdu = send_ussd_432,
.pdu_len = sizeof(send_ussd_432),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_441 = {
.pdu = send_ussd_441,
.pdu_len = sizeof(send_ussd_441),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_442 = {
.pdu = send_ussd_442,
.pdu_len = sizeof(send_ussd_442),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_443 = {
.pdu = send_ussd_443,
.pdu_len = sizeof(send_ussd_443),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_451 = {
.pdu = send_ussd_451,
.pdu_len = sizeof(send_ussd_451),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_452 = {
.pdu = send_ussd_452,
.pdu_len = sizeof(send_ussd_452),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_453 = {
.pdu = send_ussd_453,
.pdu_len = sizeof(send_ussd_453),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_461 = {
.pdu = send_ussd_461,
.pdu_len = sizeof(send_ussd_461),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_462 = {
.pdu = send_ussd_462,
.pdu_len = sizeof(send_ussd_462),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_463 = {
.pdu = send_ussd_463,
.pdu_len = sizeof(send_ussd_463),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_471 = {
.pdu = send_ussd_471,
.pdu_len = sizeof(send_ussd_471),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_472 = {
.pdu = send_ussd_472,
.pdu_len = sizeof(send_ussd_472),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_473 = {
.pdu = send_ussd_473,
.pdu_len = sizeof(send_ussd_473),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_481 = {
.pdu = send_ussd_481,
.pdu_len = sizeof(send_ussd_481),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_482 = {
.pdu = send_ussd_482,
.pdu_len = sizeof(send_ussd_482),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_483 = {
.pdu = send_ussd_483,
.pdu_len = sizeof(send_ussd_483),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_491 = {
.pdu = send_ussd_491,
.pdu_len = sizeof(send_ussd_491),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_492 = {
.pdu = send_ussd_492,
.pdu_len = sizeof(send_ussd_492),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_493 = {
.pdu = send_ussd_493,
.pdu_len = sizeof(send_ussd_493),
.qualifier = 0x00,
.alpha_id = "Text Attribute 3",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_4101 = {
.pdu = send_ussd_4101,
.pdu_len = sizeof(send_ussd_4101),
.qualifier = 0x00,
.alpha_id = "Text Attribute 1",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct send_ussd_test send_ussd_data_4102 = {
.pdu = send_ussd_4102,
.pdu_len = sizeof(send_ussd_4102),
.qualifier = 0x00,
.alpha_id = "Text Attribute 2",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_511 = {
.pdu = send_ussd_511,
.pdu_len = sizeof(send_ussd_511),
.qualifier = 0x00,
.alpha_id = "你好",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static struct send_ussd_test send_ussd_data_611 = {
.pdu = send_ussd_611,
.pdu_len = sizeof(send_ussd_611),
.qualifier = 0x00,
.alpha_id = "",
.ussd = "ABCDEFGHIJKLMNOPQRSTUVWXYZ-abcdefghijklmnopqrstuvwxyz-"
"1234567890"
};
static void test_send_ussd(gconstpointer data)
{
const struct send_ussd_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
2010-06-17 10:35:07 +00:00
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SEND_USSD);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
check_alpha_id(command->send_ussd.alpha_id, test->alpha_id);
check_ussd(&command->send_ussd.ussd_string, test->ussd);
check_icon_id(&command->send_ussd.icon_id, &test->icon_id);
check_text_attr(&command->send_ussd.text_attr, &test->text_attr);
check_frame_id(&command->send_ussd.frame_id, &test->frame_id);
stk_command_free(command);
}
struct setup_call_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id_usr_cfm;
struct stk_address addr;
struct stk_ccp ccp;
struct stk_subaddress subaddr;
struct stk_duration duration;
struct stk_icon_id icon_id_usr_cfm;
char *alpha_id_call_setup;
struct stk_icon_id icon_id_call_setup;
struct stk_text_attribute text_attr_usr_cfm;
struct stk_text_attribute text_attr_call_setup;
struct stk_frame_id frame_id;
};
static unsigned char setup_call_111[] = { 0xD0, 0x1E, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x08, 0x4E, 0x6F, 0x74,
0x20, 0x62, 0x75, 0x73, 0x79,
0x86, 0x09, 0x91, 0x10, 0x32,
0x04, 0x21, 0x43, 0x65, 0x1C,
0x2C };
static unsigned char setup_call_141[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x10,
0x02, 0x82, 0x02, 0x81, 0x83,
0x85, 0x07, 0x4F, 0x6E, 0x20,
0x68, 0x6F, 0x6C, 0x64, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C };
static unsigned char setup_call_151[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x10,
0x04, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x44, 0x69, 0x73,
0x63, 0x6F, 0x6E, 0x6E, 0x65,
0x63, 0x74, 0x86, 0x09, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65, 0x1C, 0x2C };
static unsigned char setup_call_181[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x11, 0x43, 0x61, 0x70,
0x61, 0x62, 0x69, 0x6C, 0x69,
0x74, 0x79, 0x20, 0x63, 0x6F,
0x6E, 0x66, 0x69, 0x67, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x87, 0x02, 0x01, 0xA0 };
static unsigned char setup_call_191[] = { 0xD0, 0x1C, 0x81, 0x03, 0x01, 0x10,
0x01, 0x82, 0x02, 0x81, 0x83,
0x86, 0x11, 0x91, 0x10, 0x32,
0x54, 0x76, 0x98, 0x10, 0x32,
0x54, 0x76, 0x98, 0x10, 0x32,
0x54, 0x76, 0x98, 0x10 };
static unsigned char setup_call_1101[] = { 0xD0, 0x81, 0xFD, 0x81, 0x03, 0x01,
0x10, 0x01, 0x82, 0x02, 0x81,
0x83, 0x85, 0x81, 0xED, 0x54,
0x68, 0x72, 0x65, 0x65, 0x20,
0x74, 0x79, 0x70, 0x65, 0x73,
0x20, 0x61, 0x72, 0x65, 0x20,
0x64, 0x65, 0x66, 0x69, 0x6E,
0x65, 0x64, 0x3A, 0x20, 0x2D,
0x20, 0x73, 0x65, 0x74, 0x20,
0x75, 0x70, 0x20, 0x61, 0x20,
0x63, 0x61, 0x6C, 0x6C, 0x2C,
0x20, 0x62, 0x75, 0x74, 0x20,
0x6F, 0x6E, 0x6C, 0x79, 0x20,
0x69, 0x66, 0x20, 0x6E, 0x6F,
0x74, 0x20, 0x63, 0x75, 0x72,
0x72, 0x65, 0x6E, 0x74, 0x6C,
0x79, 0x20, 0x62, 0x75, 0x73,
0x79, 0x20, 0x6F, 0x6E, 0x20,
0x61, 0x6E, 0x6F, 0x74, 0x68,
0x65, 0x72, 0x20, 0x63, 0x61,
0x6C, 0x6C, 0x3B, 0x20, 0x2D,
0x20, 0x73, 0x65, 0x74, 0x20,
0x75, 0x70, 0x20, 0x61, 0x20,
0x63, 0x61, 0x6C, 0x6C, 0x2C,
0x20, 0x70, 0x75, 0x74, 0x74,
0x69, 0x6E, 0x67, 0x20, 0x61,
0x6C, 0x6C, 0x20, 0x6F, 0x74,
0x68, 0x65, 0x72, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x73, 0x20,
0x28, 0x69, 0x66, 0x20, 0x61,
0x6E, 0x79, 0x29, 0x20, 0x6F,
0x6E, 0x20, 0x68, 0x6F, 0x6C,
0x64, 0x3B, 0x20, 0x2D, 0x20,
0x73, 0x65, 0x74, 0x20, 0x75,
0x70, 0x20, 0x61, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x2C, 0x20,
0x64, 0x69, 0x73, 0x63, 0x6F,
0x6E, 0x6E, 0x65, 0x63, 0x74,
0x69, 0x6E, 0x67, 0x20, 0x61,
0x6C, 0x6C, 0x20, 0x6F, 0x74,
0x68, 0x65, 0x72, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x73, 0x20,
0x28, 0x69, 0x66, 0x20, 0x61,
0x6E, 0x79, 0x29, 0x20, 0x66,
0x69, 0x72, 0x73, 0x74, 0x2E,
0x20, 0x46, 0x6F, 0x72, 0x20,
0x65, 0x61, 0x63, 0x68, 0x20,
0x6F, 0x66, 0x20, 0x74, 0x68,
0x65, 0x73, 0x65, 0x20, 0x74,
0x79, 0x70, 0x65, 0x73, 0x2C,
0x20, 0x86, 0x02, 0x91, 0x10 };
static unsigned char setup_call_1111[] = { 0xD0, 0x2B, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0C, 0x43, 0x61, 0x6C,
0x6C, 0x65, 0x64, 0x20, 0x70,
0x61, 0x72, 0x74, 0x79, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x88, 0x07, 0x80, 0x50, 0x95,
0x95, 0x95, 0x95, 0x95 };
static unsigned char setup_call_1121[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x10,
0x01, 0x82, 0x02, 0x81, 0x83,
0x85, 0x08, 0x44, 0x75, 0x72,
0x61, 0x74, 0x69, 0x6F, 0x6E,
0x86, 0x09, 0x91, 0x10, 0x32,
0x04, 0x21, 0x43, 0x65, 0x1C,
0x2C, 0x84, 0x02, 0x01, 0x0A };
static unsigned char setup_call_211[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0C, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x85, 0x04, 0x43, 0x41, 0x4C,
0x4C };
static unsigned char setup_call_311[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x31, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x01, 0x01 };
static unsigned char setup_call_321[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x32, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x00, 0x01 };
static unsigned char setup_call_331[] = { 0xD0, 0x30, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x33, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x01, 0x02 };
static unsigned char setup_call_341[] = { 0xD0, 0x4C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x16, 0x53, 0x65, 0x74,
0x20, 0x75, 0x70, 0x20, 0x63,
0x61, 0x6C, 0x6C, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0x20, 0x33,
0x2E, 0x34, 0x2E, 0x31, 0x86,
0x09, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x1C, 0x2C,
0x9E, 0x02, 0x00, 0x01, 0x85,
0x16, 0x53, 0x65, 0x74, 0x20,
0x75, 0x70, 0x20, 0x63, 0x61,
0x6C, 0x6C, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0x20, 0x33, 0x2E,
0x34, 0x2E, 0x32, 0x9E, 0x02,
0x00, 0x01 };
static unsigned char setup_call_411[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_412[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_421[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x01,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x01, 0xB4 };
static unsigned char setup_call_422[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_431[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x02,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x02, 0xB4 };
static unsigned char setup_call_432[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_441[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x04,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x04, 0xB4 };
static unsigned char setup_call_442[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_443[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_451[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x08,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x08, 0xB4 };
static unsigned char setup_call_452[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_453[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_461[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x10,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x10, 0xB4 };
static unsigned char setup_call_462[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_463[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_471[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x20,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x20, 0xB4 };
static unsigned char setup_call_472[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_473[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_481[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x40,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x40, 0xB4 };
static unsigned char setup_call_482[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_483[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_491[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x80,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x80, 0xB4 };
static unsigned char setup_call_492[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0xB4 };
static unsigned char setup_call_493[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x33, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x33 };
static unsigned char setup_call_4101[] = { 0xD0, 0x38, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x31, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x31,
0xD0, 0x04, 0x00, 0x0E, 0x00,
0xB4, 0xD0, 0x04, 0x00, 0x06,
0x00, 0x4B };
static unsigned char setup_call_4102[] = { 0xD0, 0x2C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0E, 0x43, 0x4F, 0x4E,
0x46, 0x49, 0x52, 0x4D, 0x41,
0x54, 0x49, 0x4F, 0x4E, 0x20,
0x32, 0x86, 0x09, 0x91, 0x10,
0x32, 0x04, 0x21, 0x43, 0x65,
0x1C, 0x2C, 0x85, 0x06, 0x43,
0x41, 0x4C, 0x4C, 0x20, 0x32 };
static unsigned char setup_call_511[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65 };
static unsigned char setup_call_521[] = { 0xD0, 0x4C, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x1B, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0x00, 0x31, 0x86,
0x07, 0x91, 0x10, 0x32, 0x04,
0x21, 0x43, 0x65, 0x85, 0x1B,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15,
0x00, 0x32 };
static unsigned char setup_call_611[] = { 0xD0, 0x19, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x4E, 0x0D,
0x5F, 0xD9, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65 };
static unsigned char setup_call_621[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x78, 0x6E,
0x5B, 0x9A, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65, 0x85, 0x07, 0x80, 0x62,
0x53, 0x75, 0x35, 0x8B, 0xDD };
static unsigned char setup_call_711[] = { 0xD0, 0x17, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x03, 0x80, 0x30, 0xEB,
0x86, 0x07, 0x91, 0x10, 0x32,
0x04, 0x21, 0x43, 0x65 };
static unsigned char setup_call_721[] = { 0xD0, 0x20, 0x81, 0x03, 0x01, 0x10,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x30, 0xEB,
0x00, 0x31, 0x86, 0x07, 0x91,
0x10, 0x32, 0x04, 0x21, 0x43,
0x65, 0x85, 0x05, 0x80, 0x30,
0xEB, 0x00, 0x32 };
static struct setup_call_test setup_call_data_111 = {
.pdu = setup_call_111,
.pdu_len = sizeof(setup_call_111),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Not busy",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
}
};
static struct setup_call_test setup_call_data_141 = {
.pdu = setup_call_141,
.pdu_len = sizeof(setup_call_141),
.qualifier = 0x02,
.alpha_id_usr_cfm = "On hold",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
}
};
static struct setup_call_test setup_call_data_151 = {
.pdu = setup_call_151,
.pdu_len = sizeof(setup_call_151),
.qualifier = 0x04,
.alpha_id_usr_cfm = "Disconnect",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
}
};
static struct setup_call_test setup_call_data_181 = {
.pdu = setup_call_181,
.pdu_len = sizeof(setup_call_181),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Capability config",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.ccp = {
.len = 0x02,
.ccp = { 0x01, 0xA0 }
}
};
static struct setup_call_test setup_call_data_191 = {
.pdu = setup_call_191,
.pdu_len = sizeof(setup_call_191),
.qualifier = 0x01,
.addr = {
.ton_npi = 0x91,
.number = "01234567890123456789012345678901"
}
};
static struct setup_call_test setup_call_data_1101 = {
.pdu = setup_call_1101,
.pdu_len = sizeof(setup_call_1101),
.qualifier = 0x01,
.alpha_id_usr_cfm = "Three types are defined: - set up a call, but "
"only if not currently busy on another call; - set "
"up a call, putting all other calls (if any) on hold; "
"- set up a call, disconnecting all other calls (if "
"any) first. For each of these types, ",
.addr = {
.ton_npi = 0x91,
.number = "01"
}
};
static struct setup_call_test setup_call_data_1111 = {
.pdu = setup_call_1111,
.pdu_len = sizeof(setup_call_1111),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Called party",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.subaddr = {
.len = 0x07,
.subaddr = { 0x80, 0x50, 0x95, 0x95, 0x95, 0x95, 0x95 }
}
};
static struct setup_call_test setup_call_data_1121 = {
.pdu = setup_call_1121,
.pdu_len = sizeof(setup_call_1121),
.qualifier = 0x01,
.alpha_id_usr_cfm = "Duration",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 10,
}
};
static struct setup_call_test setup_call_data_211 = {
.pdu = setup_call_211,
.pdu_len = sizeof(setup_call_211),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL"
};
static struct setup_call_test setup_call_data_311 = {
.pdu = setup_call_311,
.pdu_len = sizeof(setup_call_311),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.1.1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_call_test setup_call_data_321 = {
.pdu = setup_call_321,
.pdu_len = sizeof(setup_call_321),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.2.1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_call_test setup_call_data_331 = {
.pdu = setup_call_331,
.pdu_len = sizeof(setup_call_331),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.3.1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct setup_call_test setup_call_data_341 = {
.pdu = setup_call_341,
.pdu_len = sizeof(setup_call_341),
.qualifier = 0x00,
.alpha_id_usr_cfm = "Set up call Icon 3.4.1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.icon_id_usr_cfm = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
},
.alpha_id_call_setup = "Set up call Icon 3.4.2",
.icon_id_call_setup = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_call_test setup_call_data_411 = {
.pdu = setup_call_411,
.pdu_len = sizeof(setup_call_411),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_412 = {
.pdu = setup_call_412,
.pdu_len = sizeof(setup_call_412),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_421 = {
.pdu = setup_call_421,
.pdu_len = sizeof(setup_call_421),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x01, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x01, 0xB4 }
}
};
static struct setup_call_test setup_call_data_422 = {
.pdu = setup_call_422,
.pdu_len = sizeof(setup_call_422),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_431 = {
.pdu = setup_call_431,
.pdu_len = sizeof(setup_call_431),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x02, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x02, 0xB4 }
}
};
static struct setup_call_test setup_call_data_432 = {
.pdu = setup_call_432,
.pdu_len = sizeof(setup_call_432),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_441 = {
.pdu = setup_call_441,
.pdu_len = sizeof(setup_call_441),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x04, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x04, 0xB4 }
}
};
static struct setup_call_test setup_call_data_442 = {
.pdu = setup_call_442,
.pdu_len = sizeof(setup_call_442),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_443 = {
.pdu = setup_call_443,
.pdu_len = sizeof(setup_call_443),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_451 = {
.pdu = setup_call_451,
.pdu_len = sizeof(setup_call_451),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x08, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x08, 0xB4 }
}
};
static struct setup_call_test setup_call_data_452 = {
.pdu = setup_call_452,
.pdu_len = sizeof(setup_call_452),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_453 = {
.pdu = setup_call_453,
.pdu_len = sizeof(setup_call_453),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_461 = {
.pdu = setup_call_461,
.pdu_len = sizeof(setup_call_461),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x10, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x10, 0xB4 }
}
};
static struct setup_call_test setup_call_data_462 = {
.pdu = setup_call_462,
.pdu_len = sizeof(setup_call_462),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_463 = {
.pdu = setup_call_463,
.pdu_len = sizeof(setup_call_463),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_471 = {
.pdu = setup_call_471,
.pdu_len = sizeof(setup_call_471),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x20, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x20, 0xB4 }
}
};
static struct setup_call_test setup_call_data_472 = {
.pdu = setup_call_472,
.pdu_len = sizeof(setup_call_472),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_473 = {
.pdu = setup_call_473,
.pdu_len = sizeof(setup_call_473),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_481 = {
.pdu = setup_call_481,
.pdu_len = sizeof(setup_call_481),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x40, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x40, 0xB4 }
}
};
static struct setup_call_test setup_call_data_482 = {
.pdu = setup_call_482,
.pdu_len = sizeof(setup_call_482),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_483 = {
.pdu = setup_call_483,
.pdu_len = sizeof(setup_call_483),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_491 = {
.pdu = setup_call_491,
.pdu_len = sizeof(setup_call_491),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x80, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x80, 0xB4 }
}
};
static struct setup_call_test setup_call_data_492 = {
.pdu = setup_call_492,
.pdu_len = sizeof(setup_call_492),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0xB4 }
}
};
static struct setup_call_test setup_call_data_493 = {
.pdu = setup_call_493,
.pdu_len = sizeof(setup_call_493),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 3",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 3"
};
static struct setup_call_test setup_call_data_4101 = {
.pdu = setup_call_4101,
.pdu_len = sizeof(setup_call_4101),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 1",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 1",
.text_attr_usr_cfm = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
.text_attr_call_setup = {
.len = 4,
.attributes = { 0x00, 0x06, 0x00, 0x4B }
}
};
static struct setup_call_test setup_call_data_4102 = {
.pdu = setup_call_4102,
.pdu_len = sizeof(setup_call_4102),
.qualifier = 0x00,
.alpha_id_usr_cfm = "CONFIRMATION 2",
.addr = {
.ton_npi = 0x91,
2010-05-27 09:24:34 +00:00
.number = "012340123456c1c2"
},
.alpha_id_call_setup = "CALL 2"
};
static struct setup_call_test setup_call_data_511 = {
.pdu = setup_call_511,
.pdu_len = sizeof(setup_call_511),
.qualifier = 0x00,
.alpha_id_usr_cfm = "ЗДРАВСТВУЙТЕ",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
}
};
static struct setup_call_test setup_call_data_521 = {
.pdu = setup_call_521,
.pdu_len = sizeof(setup_call_521),
.qualifier = 0x00,
.alpha_id_usr_cfm = "ЗДРАВСТВУЙТЕ1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
},
.alpha_id_call_setup = "ЗДРАВСТВУЙТЕ2"
};
static struct setup_call_test setup_call_data_611 = {
.pdu = setup_call_611,
.pdu_len = sizeof(setup_call_611),
.qualifier = 0x00,
.alpha_id_usr_cfm = "不忙",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
}
};
static struct setup_call_test setup_call_data_621 = {
.pdu = setup_call_621,
.pdu_len = sizeof(setup_call_621),
.qualifier = 0x00,
.alpha_id_usr_cfm = "确定",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
},
.alpha_id_call_setup = "打电话"
};
static struct setup_call_test setup_call_data_711 = {
.pdu = setup_call_711,
.pdu_len = sizeof(setup_call_711),
.qualifier = 0x00,
.alpha_id_usr_cfm = "",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
}
};
static struct setup_call_test setup_call_data_721 = {
.pdu = setup_call_721,
.pdu_len = sizeof(setup_call_721),
.qualifier = 0x00,
.alpha_id_usr_cfm = "ル1",
.addr = {
.ton_npi = 0x91,
.number = "012340123456"
},
.alpha_id_call_setup = "ル2"
};
static void test_setup_call(gconstpointer data)
{
const struct setup_call_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_CALL);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
check_alpha_id(command->setup_call.alpha_id_usr_cfm,
test->alpha_id_usr_cfm);
check_address(&command->setup_call.addr, &test->addr);
check_ccp(&command->setup_call.ccp, &test->ccp);
check_subaddress(&command->setup_call.subaddr, &test->subaddr);
check_duration(&command->setup_call.duration, &test->duration);
check_icon_id(&command->setup_call.icon_id_usr_cfm,
&test->icon_id_usr_cfm);
check_alpha_id(command->setup_call.alpha_id_call_setup,
test->alpha_id_call_setup);
check_icon_id(&command->setup_call.icon_id_call_setup,
&test->icon_id_call_setup);
check_text_attr(&command->setup_call.text_attr_usr_cfm,
&test->text_attr_usr_cfm);
check_text_attr(&command->setup_call.text_attr_call_setup,
&test->text_attr_call_setup);
check_frame_id(&command->setup_call.frame_id, &test->frame_id);
stk_command_free(command);
}
struct refresh_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
struct stk_file file_list[MAX_ITEM];
struct stk_aid aid;
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char refresh_121[] = { 0xD0, 0x10, 0x81, 0x03, 0x01, 0x01,
0x01, 0x82, 0x02, 0x81, 0x82,
0x92, 0x05, 0x01, 0x3F, 0x00,
0x2F, 0xE2 };
static unsigned char refresh_151[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x01,
0x04, 0x82, 0x02, 0x81, 0x82 };
static struct refresh_test refresh_data_121 = {
.pdu = refresh_121,
.pdu_len = sizeof(refresh_121),
.qualifier = 0x01,
.file_list = {{
.len = 4,
.file = { 0x3F, 0x00, 0x2F, 0xE2 }
}}
};
static struct refresh_test refresh_data_151 = {
.pdu = refresh_151,
.pdu_len = sizeof(refresh_151),
.qualifier = 0x04
};
/* Defined in TS 102.384 Section 27.22.4.7 */
static void test_refresh(gconstpointer data)
{
const struct refresh_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_REFRESH);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_file_list(command->refresh.file_list, test->file_list);
check_aid(&command->refresh.aid, &test->aid);
check_alpha_id(command->refresh.alpha_id, test->alpha_id);
check_icon_id(&command->refresh.icon_id, &test->icon_id);
check_text_attr(&command->refresh.text_attr, &test->text_attr);
check_frame_id(&command->refresh.frame_id, &test->frame_id);
stk_command_free(command);
}
struct polling_off_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char polling_off_112[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x04,
0x00, 0x82, 0x02, 0x81, 0x82 };
static struct polling_off_test polling_off_data_112 = {
.pdu = polling_off_112,
.pdu_len = sizeof(polling_off_112),
.qualifier = 0x00,
};
static void test_polling_off(gconstpointer data)
{
const struct polling_off_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_POLLING_OFF);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct provide_local_info_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char provide_local_info_121[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x01, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_141[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x03, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_151[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x04, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_181[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x07, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_191[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x08, 0x82, 0x02, 0x81,
0x82 };
static unsigned char provide_local_info_1111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x26, 0x0A, 0x82, 0x02, 0x81,
0x82 };
static struct provide_local_info_test provide_local_info_data_121 = {
.pdu = provide_local_info_121,
.pdu_len = sizeof(provide_local_info_121),
.qualifier = 0x01
};
static struct provide_local_info_test provide_local_info_data_141 = {
.pdu = provide_local_info_141,
.pdu_len = sizeof(provide_local_info_141),
.qualifier = 0x03
};
static struct provide_local_info_test provide_local_info_data_151 = {
.pdu = provide_local_info_151,
.pdu_len = sizeof(provide_local_info_151),
.qualifier = 0x04
};
static struct provide_local_info_test provide_local_info_data_181 = {
.pdu = provide_local_info_181,
.pdu_len = sizeof(provide_local_info_181),
.qualifier = 0x07
};
static struct provide_local_info_test provide_local_info_data_191 = {
.pdu = provide_local_info_191,
.pdu_len = sizeof(provide_local_info_191),
.qualifier = 0x08
};
static struct provide_local_info_test provide_local_info_data_1111 = {
.pdu = provide_local_info_1111,
.pdu_len = sizeof(provide_local_info_1111),
.qualifier = 0x0A
};
static void test_provide_local_info(gconstpointer data)
{
const struct provide_local_info_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct setup_event_list_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
struct stk_event_list event_list;
};
static unsigned char setup_event_list_111[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x04 };
static unsigned char setup_event_list_121[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x02, 0x05, 0x07 };
static unsigned char setup_event_list_122[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x07 };
static unsigned char setup_event_list_131[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x07 };
static unsigned char setup_event_list_132[] = { 0xD0, 0x0B, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x00 };
static unsigned char setup_event_list_141[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01,
0x05, 0x00, 0x82, 0x02, 0x81,
0x82, 0x99, 0x01, 0x07 };
static struct setup_event_list_test setup_event_list_data_111 = {
.pdu = setup_event_list_111,
.pdu_len = sizeof(setup_event_list_111),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_USER_ACTIVITY }
}
};
static struct setup_event_list_test setup_event_list_data_121 = {
.pdu = setup_event_list_121,
.pdu_len = sizeof(setup_event_list_121),
.qualifier = 0x00,
.event_list = {
.len = 2,
.list = { STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE,
STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static struct setup_event_list_test setup_event_list_data_122 = {
.pdu = setup_event_list_122,
.pdu_len = sizeof(setup_event_list_122),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static struct setup_event_list_test setup_event_list_data_131 = {
.pdu = setup_event_list_131,
.pdu_len = sizeof(setup_event_list_131),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static struct setup_event_list_test setup_event_list_data_132 = {
.pdu = setup_event_list_132,
.pdu_len = sizeof(setup_event_list_132),
.qualifier = 0x00
};
static struct setup_event_list_test setup_event_list_data_141 = {
.pdu = setup_event_list_141,
.pdu_len = sizeof(setup_event_list_141),
.qualifier = 0x00,
.event_list = {
.len = 1,
.list = { STK_EVENT_TYPE_LANGUAGE_SELECTION }
}
};
static void test_setup_event_list(gconstpointer data)
{
const struct setup_event_list_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_EVENT_LIST);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_event_list(&command->setup_event_list.event_list,
&test->event_list);
stk_command_free(command);
}
struct perform_card_apdu_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
unsigned char dst;
struct stk_c_apdu c_apdu;
};
static unsigned char perform_card_apdu_111[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x3F, 0x00 };
static unsigned char perform_card_apdu_112[] = { 0xD0, 0x10, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x05, 0xA0, 0xC0,
0x00, 0x00, 0x1B };
static unsigned char perform_card_apdu_121[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x7F, 0x20 };
static unsigned char perform_card_apdu_122[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x6F, 0x30 };
static unsigned char perform_card_apdu_123[] = { 0xD0, 0x28, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x1D, 0xA0, 0xD6,
0x00, 0x00, 0x18, 0x00, 0x01,
0x02, 0x03, 0x04, 0x05, 0x06,
0x07, 0x08, 0x09, 0x0A, 0x0B,
0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x17 };
static unsigned char perform_card_apdu_124[] = { 0xD0, 0x10, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x05, 0xA0, 0xB0,
0x00, 0x00, 0x18 };
static unsigned char perform_card_apdu_125[] = { 0xD0, 0x28, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x1D, 0xA0, 0xD6,
0x00, 0x00, 0x18, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF };
static unsigned char perform_card_apdu_151[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x17, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x3F, 0x00 };
static unsigned char perform_card_apdu_211[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x30, 0x00, 0x82, 0x02, 0x81,
0x11, 0xA2, 0x07, 0xA0, 0xA4,
0x00, 0x00, 0x02, 0x3F, 0x00 };
static struct perform_card_apdu_test perform_card_apdu_data_111 = {
.pdu = perform_card_apdu_111,
.pdu_len = sizeof(perform_card_apdu_111),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x3F, 0x00 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_112 = {
.pdu = perform_card_apdu_112,
.pdu_len = sizeof(perform_card_apdu_112),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_GET_RESPONSE,
.p1 = 0x00,
.p2 = 0x00,
.has_le = 1,
.le = 0x1B
}
};
static struct perform_card_apdu_test perform_card_apdu_data_121 = {
.pdu = perform_card_apdu_121,
.pdu_len = sizeof(perform_card_apdu_121),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x7F, 0x20 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_122 = {
.pdu = perform_card_apdu_122,
.pdu_len = sizeof(perform_card_apdu_122),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x6F, 0x30 }
}
};
/* Byte 14 of Data is not correct in spec. */
static struct perform_card_apdu_test perform_card_apdu_data_123 = {
.pdu = perform_card_apdu_123,
.pdu_len = sizeof(perform_card_apdu_123),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_UPDATE_BINARY_D6,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x18,
.data = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_124 = {
.pdu = perform_card_apdu_124,
.pdu_len = sizeof(perform_card_apdu_124),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_READ_BINARY_B0,
.p1 = 0x00,
.p2 = 0x00,
.has_le = 1,
.le = 0x18
}
};
static struct perform_card_apdu_test perform_card_apdu_data_125 = {
.pdu = perform_card_apdu_125,
.pdu_len = sizeof(perform_card_apdu_125),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_UPDATE_BINARY_D6,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x18,
.data = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_151 = {
.pdu = perform_card_apdu_151,
.pdu_len = sizeof(perform_card_apdu_151),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_7,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x3F, 0x00 }
}
};
static struct perform_card_apdu_test perform_card_apdu_data_211 = {
.pdu = perform_card_apdu_211,
.pdu_len = sizeof(perform_card_apdu_211),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CARD_READER_1,
.c_apdu = {
.cla = 0xA0,
.ins = STK_INS_SELECT,
.p1 = 0x00,
.p2 = 0x00,
.lc = 0x02,
.data = { 0x3F, 0x00 }
}
};
static void test_perform_card_apdu(gconstpointer data)
{
const struct perform_card_apdu_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_PERFORM_CARD_APDU);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == test->dst);
check_c_apdu(&command->perform_card_apdu.c_apdu, &test->c_apdu);
stk_command_free(command);
}
struct get_reader_status_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char get_reader_status_111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x33, 0x00, 0x82, 0x02, 0x81,
0x82 };
static struct get_reader_status_test get_reader_status_data_111 = {
.pdu = get_reader_status_111,
.pdu_len = sizeof(get_reader_status_111),
.qualifier = STK_QUALIFIER_TYPE_CARD_READER_STATUS,
};
static void test_get_reader_status(gconstpointer data)
{
const struct get_reader_status_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_READER_STATUS);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
if (command->qualifier == STK_QUALIFIER_TYPE_CARD_READER_STATUS)
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
else
g_assert(command->dst <
STK_DEVICE_IDENTITY_TYPE_CARD_READER_0 ||
command->dst >
STK_DEVICE_IDENTITY_TYPE_CARD_READER_7);
stk_command_free(command);
}
struct timer_mgmt_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
unsigned char timer_id;
struct stk_timer_value timer_value;
};
static unsigned char timer_mgmt_111[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x50, 0x00 };
static unsigned char timer_mgmt_112[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_113[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x10, 0x03 };
static unsigned char timer_mgmt_114[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_121[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02, 0xA5, 0x03,
0x32, 0x95, 0x95 };
static unsigned char timer_mgmt_122[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_123[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02, 0xA5, 0x03,
0x00, 0x10, 0x01 };
static unsigned char timer_mgmt_124[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_131[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08, 0xA5, 0x03,
0x00, 0x02, 0x00 };
static unsigned char timer_mgmt_132[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_133[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08, 0xA5, 0x03,
0x10, 0x00, 0x00 };
static unsigned char timer_mgmt_134[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_141[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_142[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_143[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x03 };
static unsigned char timer_mgmt_144[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x04 };
static unsigned char timer_mgmt_145[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x05 };
static unsigned char timer_mgmt_146[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x06 };
static unsigned char timer_mgmt_147[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x07 };
static unsigned char timer_mgmt_148[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x02, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_151[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01 };
static unsigned char timer_mgmt_152[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02 };
static unsigned char timer_mgmt_153[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x03 };
static unsigned char timer_mgmt_154[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x04 };
static unsigned char timer_mgmt_155[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x05 };
static unsigned char timer_mgmt_156[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x06 };
static unsigned char timer_mgmt_157[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x07 };
static unsigned char timer_mgmt_158[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x27,
0x01, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08 };
static unsigned char timer_mgmt_161[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_162[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x02, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_163[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x03, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_164[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x04, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_165[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x05, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_166[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x06, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_167[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x07, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_168[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x08, 0xA5, 0x03,
0x00, 0x00, 0x50 };
static unsigned char timer_mgmt_211[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x00, 0x01 };
static unsigned char timer_mgmt_221[] = { 0xD0, 0x11, 0x81, 0x03, 0x01, 0x27,
0x00, 0x82, 0x02, 0x81, 0x82,
0xA4, 0x01, 0x01, 0xA5, 0x03,
0x00, 0x00, 0x03 };
static struct timer_mgmt_test timer_mgmt_data_111 = {
.pdu = timer_mgmt_111,
.pdu_len = sizeof(timer_mgmt_111),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.minute = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_112 = {
.pdu = timer_mgmt_112,
.pdu_len = sizeof(timer_mgmt_112),
.qualifier = 0x02,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_113 = {
.pdu = timer_mgmt_113,
.pdu_len = sizeof(timer_mgmt_113),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.minute = 1,
.second = 30
}
};
static struct timer_mgmt_test timer_mgmt_data_114 = {
.pdu = timer_mgmt_114,
.pdu_len = sizeof(timer_mgmt_114),
.qualifier = 0x01,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_121 = {
.pdu = timer_mgmt_121,
.pdu_len = sizeof(timer_mgmt_121),
.qualifier = 0x00,
.timer_id = 2,
.timer_value = {
.hour = 23,
.minute = 59,
.second = 59
}
};
static struct timer_mgmt_test timer_mgmt_data_122 = {
.pdu = timer_mgmt_122,
.pdu_len = sizeof(timer_mgmt_122),
.qualifier = 0x02,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_123 = {
.pdu = timer_mgmt_123,
.pdu_len = sizeof(timer_mgmt_123),
.qualifier = 0x00,
.timer_id = 2,
.timer_value = {
.minute = 1,
.second = 10
}
};
static struct timer_mgmt_test timer_mgmt_data_124 = {
.pdu = timer_mgmt_124,
.pdu_len = sizeof(timer_mgmt_124),
.qualifier = 0x01,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_131 = {
.pdu = timer_mgmt_131,
.pdu_len = sizeof(timer_mgmt_131),
.qualifier = 0x00,
.timer_id = 8,
.timer_value = {
.minute = 20
}
};
static struct timer_mgmt_test timer_mgmt_data_132 = {
.pdu = timer_mgmt_132,
.pdu_len = sizeof(timer_mgmt_132),
.qualifier = 0x02,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_133 = {
.pdu = timer_mgmt_133,
.pdu_len = sizeof(timer_mgmt_133),
.qualifier = 0x00,
.timer_id = 8,
.timer_value = {
.hour = 1
}
};
static struct timer_mgmt_test timer_mgmt_data_134 = {
.pdu = timer_mgmt_134,
.pdu_len = sizeof(timer_mgmt_134),
.qualifier = 0x01,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_141 = {
.pdu = timer_mgmt_141,
.pdu_len = sizeof(timer_mgmt_141),
.qualifier = 0x02,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_142 = {
.pdu = timer_mgmt_142,
.pdu_len = sizeof(timer_mgmt_142),
.qualifier = 0x02,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_143 = {
.pdu = timer_mgmt_143,
.pdu_len = sizeof(timer_mgmt_143),
.qualifier = 0x02,
.timer_id = 3
};
static struct timer_mgmt_test timer_mgmt_data_144 = {
.pdu = timer_mgmt_144,
.pdu_len = sizeof(timer_mgmt_144),
.qualifier = 0x02,
.timer_id = 4
};
static struct timer_mgmt_test timer_mgmt_data_145 = {
.pdu = timer_mgmt_145,
.pdu_len = sizeof(timer_mgmt_145),
.qualifier = 0x02,
.timer_id = 5
};
static struct timer_mgmt_test timer_mgmt_data_146 = {
.pdu = timer_mgmt_146,
.pdu_len = sizeof(timer_mgmt_146),
.qualifier = 0x02,
.timer_id = 6
};
static struct timer_mgmt_test timer_mgmt_data_147 = {
.pdu = timer_mgmt_147,
.pdu_len = sizeof(timer_mgmt_147),
.qualifier = 0x02,
.timer_id = 7
};
static struct timer_mgmt_test timer_mgmt_data_148 = {
.pdu = timer_mgmt_148,
.pdu_len = sizeof(timer_mgmt_148),
.qualifier = 0x02,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_151 = {
.pdu = timer_mgmt_151,
.pdu_len = sizeof(timer_mgmt_151),
.qualifier = 0x01,
.timer_id = 1
};
static struct timer_mgmt_test timer_mgmt_data_152 = {
.pdu = timer_mgmt_152,
.pdu_len = sizeof(timer_mgmt_152),
.qualifier = 0x01,
.timer_id = 2
};
static struct timer_mgmt_test timer_mgmt_data_153 = {
.pdu = timer_mgmt_153,
.pdu_len = sizeof(timer_mgmt_153),
.qualifier = 0x01,
.timer_id = 3
};
static struct timer_mgmt_test timer_mgmt_data_154 = {
.pdu = timer_mgmt_154,
.pdu_len = sizeof(timer_mgmt_154),
.qualifier = 0x01,
.timer_id = 4
};
static struct timer_mgmt_test timer_mgmt_data_155 = {
.pdu = timer_mgmt_155,
.pdu_len = sizeof(timer_mgmt_155),
.qualifier = 0x01,
.timer_id = 5
};
static struct timer_mgmt_test timer_mgmt_data_156 = {
.pdu = timer_mgmt_156,
.pdu_len = sizeof(timer_mgmt_156),
.qualifier = 0x01,
.timer_id = 6
};
static struct timer_mgmt_test timer_mgmt_data_157 = {
.pdu = timer_mgmt_157,
.pdu_len = sizeof(timer_mgmt_157),
.qualifier = 0x01,
.timer_id = 7
};
static struct timer_mgmt_test timer_mgmt_data_158 = {
.pdu = timer_mgmt_158,
.pdu_len = sizeof(timer_mgmt_158),
.qualifier = 0x01,
.timer_id = 8
};
static struct timer_mgmt_test timer_mgmt_data_161 = {
.pdu = timer_mgmt_161,
.pdu_len = sizeof(timer_mgmt_161),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_162 = {
.pdu = timer_mgmt_162,
.pdu_len = sizeof(timer_mgmt_162),
.qualifier = 0x00,
.timer_id = 2,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_163 = {
.pdu = timer_mgmt_163,
.pdu_len = sizeof(timer_mgmt_163),
.qualifier = 0x00,
.timer_id = 3,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_164 = {
.pdu = timer_mgmt_164,
.pdu_len = sizeof(timer_mgmt_164),
.qualifier = 0x00,
.timer_id = 4,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_165 = {
.pdu = timer_mgmt_165,
.pdu_len = sizeof(timer_mgmt_165),
.qualifier = 0x00,
.timer_id = 5,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_166 = {
.pdu = timer_mgmt_166,
.pdu_len = sizeof(timer_mgmt_166),
.qualifier = 0x00,
.timer_id = 6,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_167 = {
.pdu = timer_mgmt_167,
.pdu_len = sizeof(timer_mgmt_167),
.qualifier = 0x00,
.timer_id = 7,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_168 = {
.pdu = timer_mgmt_168,
.pdu_len = sizeof(timer_mgmt_168),
.qualifier = 0x00,
.timer_id = 8,
.timer_value = {
.second = 5
}
};
static struct timer_mgmt_test timer_mgmt_data_211 = {
.pdu = timer_mgmt_211,
.pdu_len = sizeof(timer_mgmt_211),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.second = 10
}
};
static struct timer_mgmt_test timer_mgmt_data_221 = {
.pdu = timer_mgmt_221,
.pdu_len = sizeof(timer_mgmt_221),
.qualifier = 0x00,
.timer_id = 1,
.timer_value = {
.second = 30
}
};
static void test_timer_mgmt(gconstpointer data)
{
const struct timer_mgmt_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_TIMER_MANAGEMENT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_timer_id(command->timer_mgmt.timer_id, test->timer_id);
check_timer_value(&command->timer_mgmt.timer_value, &test->timer_value);
stk_command_free(command);
}
struct setup_idle_mode_text_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *text;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
char *html;
enum stk_command_parse_result status;
};
static unsigned char setup_idle_mode_text_111[] = { 0xD0, 0x1A, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x0F, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74 };
static unsigned char setup_idle_mode_text_121[] = { 0xD0, 0x18, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x0D, 0x04,
0x54, 0x6F, 0x6F, 0x6C, 0x6B,
0x69, 0x74, 0x20, 0x54, 0x65,
0x73, 0x74 };
static unsigned char setup_idle_mode_text_131[] = { 0xD0, 0x0B, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x00 };
static unsigned char setup_idle_mode_text_171[] = { 0xD0, 0x81, 0xFD, 0x81,
0x03, 0x01, 0x28, 0x00, 0x82,
0x02, 0x81, 0x82, 0x8D, 0x81,
0xF1, 0x00, 0x54, 0x74, 0x19,
0x34, 0x4D, 0x36, 0x41, 0x73,
0x74, 0x98, 0xCD, 0x06, 0xCD,
0xEB, 0x70, 0x38, 0x3B, 0x0F,
0x0A, 0x83, 0xE8, 0x65, 0x3C,
0x1D, 0x34, 0xA7, 0xCB, 0xD3,
0xEE, 0x33, 0x0B, 0x74, 0x47,
0xA7, 0xC7, 0x68, 0xD0, 0x1C,
0x1D, 0x66, 0xB3, 0x41, 0xE2,
0x32, 0x88, 0x9C, 0x9E, 0xC3,
0xD9, 0xE1, 0x7C, 0x99, 0x0C,
0x12, 0xE7, 0x41, 0x74, 0x74,
0x19, 0xD4, 0x2C, 0x82, 0xC2,
0x73, 0x50, 0xD8, 0x0D, 0x4A,
0x93, 0xD9, 0x65, 0x50, 0xFB,
0x4D, 0x2E, 0x83, 0xE8, 0x65,
0x3C, 0x1D, 0x94, 0x36, 0x83,
0xE8, 0xE8, 0x32, 0xA8, 0x59,
0x04, 0xA5, 0xE7, 0xA0, 0xB0,
0x98, 0x5D, 0x06, 0xD1, 0xDF,
0x20, 0xF2, 0x1B, 0x94, 0xA6,
0xBB, 0xA8, 0xE8, 0x32, 0x08,
0x2E, 0x2F, 0xCF, 0xCB, 0x6E,
0x7A, 0x98, 0x9E, 0x7E, 0xBB,
0x41, 0x73, 0x7A, 0x9E, 0x5D,
0x06, 0xA5, 0xE7, 0x20, 0x76,
0xD9, 0x4C, 0x07, 0x85, 0xE7,
0xA0, 0xB0, 0x1B, 0x94, 0x6E,
0xC3, 0xD9, 0xE5, 0x76, 0xD9,
0x4D, 0x0F, 0xD3, 0xD3, 0x6F,
0x37, 0x88, 0x5C, 0x1E, 0xA7,
0xE7, 0xE9, 0xB7, 0x1B, 0x44,
0x7F, 0x83, 0xE8, 0xE8, 0x32,
0xA8, 0x59, 0x04, 0xB5, 0xC3,
0xEE, 0xBA, 0x39, 0x3C, 0xA6,
0xD7, 0xE5, 0x65, 0xB9, 0x0B,
0x44, 0x45, 0x97, 0x41, 0x69,
0x32, 0xBB, 0x0C, 0x6A, 0xBF,
0xC9, 0x65, 0x10, 0xBD, 0x8C,
0xA7, 0x83, 0xE6, 0xE8, 0x30,
0x9B, 0x0D, 0x12, 0x97, 0x41,
0xE4, 0xF4, 0x1C, 0xCE, 0x0E,
0xE7, 0xCB, 0x64, 0x50, 0xDA,
0x0D, 0x0A, 0x83, 0xDA, 0x61,
0xB7, 0xBB, 0x2C, 0x07, 0xD1,
0xD1, 0x61, 0x3A, 0xA8, 0xEC,
0x9E, 0xD7, 0xE5, 0xE5, 0x39,
0x88, 0x8E, 0x0E, 0xD3, 0x41,
0xEE, 0x32 };
static unsigned char setup_idle_mode_text_211[] = { 0xD0, 0x19, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x0A, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x74, 0x65, 0x78, 0x74, 0x9E,
0x02, 0x00, 0x01 };
static unsigned char setup_idle_mode_text_221[] = { 0xD0, 0x19, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x0A, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x74, 0x65, 0x78, 0x74, 0x9E,
0x02, 0x01, 0x01 };
static unsigned char setup_idle_mode_text_231[] = { 0xD0, 0x19, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x0A, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x74, 0x65, 0x78, 0x74, 0x9E,
0x02, 0x00, 0x02 };
static unsigned char setup_idle_mode_text_241[] = { 0xD0, 0x0F, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x00, 0x9E,
0x02, 0x01, 0x01 };
static unsigned char setup_idle_mode_text_311[] = { 0xD0, 0x24, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x19, 0x08,
0x04, 0x17, 0x04, 0x14, 0x04,
0x20, 0x04, 0x10, 0x04, 0x12,
0x04, 0x21, 0x04, 0x22, 0x04,
0x12, 0x04, 0x23, 0x04, 0x19,
0x04, 0x22, 0x04, 0x15 };
static unsigned char setup_idle_mode_text_411[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_412[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32 };
static unsigned char setup_idle_mode_text_421[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x01, 0xB4 };
static unsigned char setup_idle_mode_text_422[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32 };
static unsigned char setup_idle_mode_text_431[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x02, 0xB4 };
static unsigned char setup_idle_mode_text_432[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32 };
static unsigned char setup_idle_mode_text_441[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x04, 0xB4 };
static unsigned char setup_idle_mode_text_442[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_443[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x33 };
static unsigned char setup_idle_mode_text_451[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x08, 0xB4 };
static unsigned char setup_idle_mode_text_452[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_453[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x33 };
static unsigned char setup_idle_mode_text_461[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x10, 0xB4 };
static unsigned char setup_idle_mode_text_462[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_463[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x33 };
static unsigned char setup_idle_mode_text_471[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x20, 0xB4 };
static unsigned char setup_idle_mode_text_472[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_473[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x33 };
static unsigned char setup_idle_mode_text_481[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x40, 0xB4 };
static unsigned char setup_idle_mode_text_482[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_483[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x33 };
static unsigned char setup_idle_mode_text_491[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x80, 0xB4 };
static unsigned char setup_idle_mode_text_492[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_493[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x33 };
static unsigned char setup_idle_mode_text_4101[] = { 0xD0, 0x22, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x31, 0xD0, 0x04, 0x00, 0x10,
0x00, 0xB4 };
static unsigned char setup_idle_mode_text_4102[] = { 0xD0, 0x1C, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x11, 0x04,
0x49, 0x64, 0x6C, 0x65, 0x20,
0x4D, 0x6F, 0x64, 0x65, 0x20,
0x54, 0x65, 0x78, 0x74, 0x20,
0x32 };
static unsigned char setup_idle_mode_text_511[] = { 0xD0, 0x10, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x05, 0x08,
0x4F, 0x60, 0x59, 0x7D };
static unsigned char setup_idle_mode_text_611[] = { 0xD0, 0x14, 0x81, 0x03,
0x01, 0x28, 0x00, 0x82, 0x02,
0x81, 0x82, 0x8D, 0x09, 0x08,
0x00, 0x38, 0x00, 0x30, 0x30,
0xEB, 0x00, 0x30 };
static struct setup_idle_mode_text_test setup_idle_mode_text_data_111 = {
.pdu = setup_idle_mode_text_111,
.pdu_len = sizeof(setup_idle_mode_text_111),
.qualifier = 0x00,
.text = "Idle Mode Text"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_121 = {
.pdu = setup_idle_mode_text_121,
.pdu_len = sizeof(setup_idle_mode_text_121),
.qualifier = 0x00,
.text = "Toolkit Test"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_131 = {
.pdu = setup_idle_mode_text_131,
.pdu_len = sizeof(setup_idle_mode_text_131),
2010-12-10 16:26:09 +00:00
.qualifier = 0x00,
.text = ""
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_171 = {
.pdu = setup_idle_mode_text_171,
.pdu_len = sizeof(setup_idle_mode_text_171),
.qualifier = 0x00,
.text = "The SIM shall supply a text string, which shall be displayed "
"by the ME as an idle mode text if the ME is able to do it."
"The presentation style is left as an implementation decision "
"to the ME manufacturer. The idle mode text shall be displayed "
"in a manner that ensures that ne"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_211 = {
.pdu = setup_idle_mode_text_211,
.pdu_len = sizeof(setup_idle_mode_text_211),
.qualifier = 0x00,
.text = "Idle text",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_221 = {
.pdu = setup_idle_mode_text_221,
.pdu_len = sizeof(setup_idle_mode_text_221),
.qualifier = 0x00,
.text = "Idle text",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_231 = {
.pdu = setup_idle_mode_text_231,
.pdu_len = sizeof(setup_idle_mode_text_231),
.qualifier = 0x00,
.text = "Idle text",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_241 = {
.pdu = setup_idle_mode_text_241,
.pdu_len = sizeof(setup_idle_mode_text_241),
.qualifier = 0x00,
2010-12-10 16:26:09 +00:00
.text = "",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
},
.status = STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_311 = {
.pdu = setup_idle_mode_text_311,
.pdu_len = sizeof(setup_idle_mode_text_311),
.qualifier = 0x00,
.text = "ЗДРАВСТВУЙТЕ"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_411 = {
.pdu = setup_idle_mode_text_411,
.pdu_len = sizeof(setup_idle_mode_text_411),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 1</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_412 = {
.pdu = setup_idle_mode_text_412,
.pdu_len = sizeof(setup_idle_mode_text_412),
.qualifier = 0x00,
.text = "Idle Mode Text 2"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_421 = {
.pdu = setup_idle_mode_text_421,
.pdu_len = sizeof(setup_idle_mode_text_421),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
},
.html = "<div style=\"text-align: center;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 1</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_422 = {
.pdu = setup_idle_mode_text_422,
.pdu_len = sizeof(setup_idle_mode_text_422),
.qualifier = 0x00,
.text = "Idle Mode Text 2"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_431 = {
.pdu = setup_idle_mode_text_431,
.pdu_len = sizeof(setup_idle_mode_text_431),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
},
.html = "<div style=\"text-align: right;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 1</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_432 = {
.pdu = setup_idle_mode_text_432,
.pdu_len = sizeof(setup_idle_mode_text_432),
.qualifier = 0x00,
.text = "Idle Mode Text 2"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_441 = {
.pdu = setup_idle_mode_text_441,
.pdu_len = sizeof(setup_idle_mode_text_441),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"big;color: #347235;background-color: #FFFF00;\">"
"Idle Mode Text 1</span></div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_442 = {
.pdu = setup_idle_mode_text_442,
.pdu_len = sizeof(setup_idle_mode_text_442),
.qualifier = 0x00,
.text = "Idle Mode Text 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 2</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_443 = {
.pdu = setup_idle_mode_text_443,
.pdu_len = sizeof(setup_idle_mode_text_443),
.qualifier = 0x00,
.text = "Idle Mode Text 3"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_451 = {
.pdu = setup_idle_mode_text_451,
.pdu_len = sizeof(setup_idle_mode_text_451),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-size: "
"small;color: #347235;background-color: #FFFF00;\">"
"Idle Mode Text 1</span></div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_452 = {
.pdu = setup_idle_mode_text_452,
.pdu_len = sizeof(setup_idle_mode_text_452),
.qualifier = 0x00,
.text = "Idle Mode Text 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 2</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_453 = {
.pdu = setup_idle_mode_text_453,
.pdu_len = sizeof(setup_idle_mode_text_453),
.qualifier = 0x00,
.text = "Idle Mode Text 3"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_461 = {
.pdu = setup_idle_mode_text_461,
.pdu_len = sizeof(setup_idle_mode_text_461),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-weight: "
"bold;color: #347235;background-color: #FFFF00;\">"
"Idle Mode Text 1</span></div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_462 = {
.pdu = setup_idle_mode_text_462,
.pdu_len = sizeof(setup_idle_mode_text_462),
.qualifier = 0x00,
.text = "Idle Mode Text 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 2</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_463 = {
.pdu = setup_idle_mode_text_463,
.pdu_len = sizeof(setup_idle_mode_text_463),
.qualifier = 0x00,
.text = "Idle Mode Text 3"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_471 = {
.pdu = setup_idle_mode_text_471,
.pdu_len = sizeof(setup_idle_mode_text_471),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"font-style: "
"italic;color: #347235;background-color: #FFFF00;\">"
"Idle Mode Text 1</span></div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_472 = {
.pdu = setup_idle_mode_text_472,
.pdu_len = sizeof(setup_idle_mode_text_472),
.qualifier = 0x00,
.text = "Idle Mode Text 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 2</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_473 = {
.pdu = setup_idle_mode_text_473,
.pdu_len = sizeof(setup_idle_mode_text_473),
.qualifier = 0x00,
.text = "Idle Mode Text 3"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_481 = {
.pdu = setup_idle_mode_text_481,
.pdu_len = sizeof(setup_idle_mode_text_481),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: underline;color: #347235;"
"background-color: #FFFF00;\">Idle Mode Text 1</span></div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_482 = {
.pdu = setup_idle_mode_text_482,
.pdu_len = sizeof(setup_idle_mode_text_482),
.qualifier = 0x00,
.text = "Idle Mode Text 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 2</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_483 = {
.pdu = setup_idle_mode_text_483,
.pdu_len = sizeof(setup_idle_mode_text_483),
.qualifier = 0x00,
.text = "Idle Mode Text 3"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_491 = {
.pdu = setup_idle_mode_text_491,
.pdu_len = sizeof(setup_idle_mode_text_491),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span "
"style=\"text-decoration: line-through;color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 1</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_492 = {
.pdu = setup_idle_mode_text_492,
.pdu_len = sizeof(setup_idle_mode_text_492),
.qualifier = 0x00,
.text = "Idle Mode Text 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 2</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_493 = {
.pdu = setup_idle_mode_text_493,
.pdu_len = sizeof(setup_idle_mode_text_493),
.qualifier = 0x00,
.text = "Idle Mode Text 3"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_4101 = {
.pdu = setup_idle_mode_text_4101,
.pdu_len = sizeof(setup_idle_mode_text_4101),
.qualifier = 0x00,
.text = "Idle Mode Text 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
},
.html = "<div style=\"text-align: left;\"><span style=\"color: "
"#347235;background-color: #FFFF00;\">Idle Mode Text 1</span>"
"</div>",
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_4102 = {
.pdu = setup_idle_mode_text_4102,
.pdu_len = sizeof(setup_idle_mode_text_4102),
.qualifier = 0x00,
.text = "Idle Mode Text 2"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_511 = {
.pdu = setup_idle_mode_text_511,
.pdu_len = sizeof(setup_idle_mode_text_511),
.qualifier = 0x00,
.text = "你好"
};
static struct setup_idle_mode_text_test setup_idle_mode_text_data_611 = {
.pdu = setup_idle_mode_text_611,
.pdu_len = sizeof(setup_idle_mode_text_611),
.qualifier = 0x00,
.text = "80ル0"
};
static void test_setup_idle_mode_text(gconstpointer data)
{
const struct setup_idle_mode_text_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == test->status);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_text(command->setup_idle_mode_text.text, test->text);
check_icon_id(&command->setup_idle_mode_text.icon_id, &test->icon_id);
check_text_attr(&command->setup_idle_mode_text.text_attr,
&test->text_attr);
check_text_attr_html(&command->setup_idle_mode_text.text_attr,
command->setup_idle_mode_text.text, test->html);
check_frame_id(&command->setup_idle_mode_text.frame_id,
&test->frame_id);
stk_command_free(command);
}
struct run_at_command_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
char *at_command;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
enum stk_command_parse_result status;
};
static unsigned char run_at_command_111[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0xA8, 0x07, 0x41, 0x54,
0x2B, 0x43, 0x47, 0x4D, 0x49 };
static unsigned char run_at_command_121[] = { 0xD0, 0x14, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x00, 0xA8, 0x07,
0x41, 0x54, 0x2B, 0x43, 0x47,
0x4D, 0x49 };
static unsigned char run_at_command_131[] = { 0xD0, 0x22, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0E, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0xA8, 0x07, 0x41,
0x54, 0x2B, 0x43, 0x47, 0x4D,
0x49 };
static unsigned char run_at_command_211[] = { 0xD0, 0x22, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x42, 0x61,
0x73, 0x69, 0x63, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0xA8, 0x07,
0x41, 0x54, 0x2B, 0x43, 0x47,
0x4D, 0x49, 0x9E, 0x02, 0x00,
0x01 };
/* The 12th byte should be 0x85, instead of 0xA8 */
static unsigned char run_at_command_221[] = { 0xD0, 0x23, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0B, 0x43, 0x6F,
0x6C, 0x6F, 0x75, 0x72, 0x20,
0x49, 0x63, 0x6F, 0x6E, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0x9E, 0x02,
0x00, 0x02 };
static unsigned char run_at_command_231[] = { 0xD0, 0x22, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0A, 0x42, 0x61,
0x73, 0x69, 0x63, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0xA8, 0x07,
0x41, 0x54, 0x2B, 0x43, 0x47,
0x4D, 0x49, 0x9E, 0x02, 0x01,
0x01 };
static unsigned char run_at_command_241[] = { 0xD0, 0x23, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x0B, 0x43, 0x6F,
0x6C, 0x6F, 0x75, 0x72, 0x20,
0x49, 0x63, 0x6F, 0x6E, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0x9E, 0x02,
0x01, 0x02 };
static unsigned char run_at_command_251[] = { 0xD0, 0x16, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0xA8, 0x07, 0x41, 0x54,
0x2B, 0x43, 0x47, 0x4D, 0x49,
0x9E, 0x02, 0x01, 0x01 };
static unsigned char run_at_command_311[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_312[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_321[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x01, 0xB4 };
static unsigned char run_at_command_322[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_331[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x02, 0xB4 };
static unsigned char run_at_command_332[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_341[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x04, 0xB4 };
static unsigned char run_at_command_342[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_343[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x33, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_351[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x08, 0xB4 };
static unsigned char run_at_command_352[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_353[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x33, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_361[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x10, 0xB4 };
static unsigned char run_at_command_362[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_363[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x33, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_371[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x20, 0xB4 };
static unsigned char run_at_command_372[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_373[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x33, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_381[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x40, 0xB4 };
static unsigned char run_at_command_382[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_383[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x33, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_391[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x80, 0xB4 };
static unsigned char run_at_command_392[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_393[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x33, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
static unsigned char run_at_command_3101[] = { 0xD0, 0x2A, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x31, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49, 0xD0, 0x04,
0x00, 0x10, 0x00, 0xB4 };
static unsigned char run_at_command_3102[] = { 0xD0, 0x24, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x10, 0x52, 0x75,
0x6E, 0x20, 0x41, 0x54, 0x20,
0x43, 0x6F, 0x6D, 0x6D, 0x61,
0x6E, 0x64, 0x20, 0x32, 0xA8,
0x07, 0x41, 0x54, 0x2B, 0x43,
0x47, 0x4D, 0x49 };
/* The 2nd byte (total size) should be 0x2D, instead of 0x21 */
static unsigned char run_at_command_411[] = { 0xD0, 0x2D, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x19, 0x80, 0x04,
0x17, 0x04, 0x14, 0x04, 0x20,
0x04, 0x10, 0x04, 0x12, 0x04,
0x21, 0x04, 0x22, 0x04, 0x12,
0x04, 0x23, 0x04, 0x19, 0x04,
0x22, 0x04, 0x15, 0xA8, 0x07,
0x41, 0x54, 0x2B, 0x43, 0x47,
0x4D, 0x49 };
static unsigned char run_at_command_511[] = { 0xD0, 0x19, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x05, 0x80, 0x4F,
0x60, 0x59, 0x7D, 0xA8, 0x07,
0x41, 0x54, 0x2B, 0x43, 0x47,
0x4D, 0x49 };
static unsigned char run_at_command_611[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01,
0x34, 0x00, 0x82, 0x02, 0x81,
0x82, 0x85, 0x07, 0x80, 0x00,
0x38, 0x00, 0x30, 0x30, 0xEB,
0xA8, 0x07, 0x41, 0x54, 0x2B,
0x43, 0x47, 0x4D, 0x49 };
static struct run_at_command_test run_at_command_data_111 = {
.pdu = run_at_command_111,
.pdu_len = sizeof(run_at_command_111),
.qualifier = 0x00,
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_121 = {
.pdu = run_at_command_121,
.pdu_len = sizeof(run_at_command_121),
.qualifier = 0x00,
.alpha_id = "",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_131 = {
.pdu = run_at_command_131,
.pdu_len = sizeof(run_at_command_131),
.qualifier = 0x00,
.alpha_id = "Run AT Command",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_211 = {
.pdu = run_at_command_211,
.pdu_len = sizeof(run_at_command_211),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
.at_command = "AT+CGMI",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct run_at_command_test run_at_command_data_221 = {
.pdu = run_at_command_221,
.pdu_len = sizeof(run_at_command_221),
.qualifier = 0x00,
.alpha_id = "Colour Icon",
.at_command = "AT+CGMI",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct run_at_command_test run_at_command_data_231 = {
.pdu = run_at_command_231,
.pdu_len = sizeof(run_at_command_231),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
.at_command = "AT+CGMI",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
/* The qualifier of icon_id should be non self-explanatory */
static struct run_at_command_test run_at_command_data_241 = {
.pdu = run_at_command_241,
.pdu_len = sizeof(run_at_command_241),
.qualifier = 0x00,
.alpha_id = "Colour Icon",
.at_command = "AT+CGMI",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct run_at_command_test run_at_command_data_251 = {
.pdu = run_at_command_251,
.pdu_len = sizeof(run_at_command_251),
.qualifier = 0x00,
.at_command = "AT+CGMI",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
},
.status = STK_PARSE_RESULT_DATA_NOT_UNDERSTOOD
};
static struct run_at_command_test run_at_command_data_311 = {
.pdu = run_at_command_311,
.pdu_len = sizeof(run_at_command_311),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_312 = {
.pdu = run_at_command_312,
.pdu_len = sizeof(run_at_command_312),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_321 = {
.pdu = run_at_command_321,
.pdu_len = sizeof(run_at_command_321),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x01, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_322 = {
.pdu = run_at_command_322,
.pdu_len = sizeof(run_at_command_322),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_331 = {
.pdu = run_at_command_331,
.pdu_len = sizeof(run_at_command_331),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x02, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_332 = {
.pdu = run_at_command_332,
.pdu_len = sizeof(run_at_command_332),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_341 = {
.pdu = run_at_command_341,
.pdu_len = sizeof(run_at_command_341),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x04, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_342 = {
.pdu = run_at_command_342,
.pdu_len = sizeof(run_at_command_342),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_343 = {
.pdu = run_at_command_343,
.pdu_len = sizeof(run_at_command_343),
.qualifier = 0x00,
.alpha_id = "Run AT Command 3",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_351 = {
.pdu = run_at_command_351,
.pdu_len = sizeof(run_at_command_351),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x08, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_352 = {
.pdu = run_at_command_352,
.pdu_len = sizeof(run_at_command_352),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_353 = {
.pdu = run_at_command_353,
.pdu_len = sizeof(run_at_command_353),
.qualifier = 0x00,
.alpha_id = "Run AT Command 3",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_361 = {
.pdu = run_at_command_361,
.pdu_len = sizeof(run_at_command_361),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x10, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_362 = {
.pdu = run_at_command_362,
.pdu_len = sizeof(run_at_command_362),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_363 = {
.pdu = run_at_command_363,
.pdu_len = sizeof(run_at_command_363),
.qualifier = 0x00,
.alpha_id = "Run AT Command 3",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_371 = {
.pdu = run_at_command_371,
.pdu_len = sizeof(run_at_command_371),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x20, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_372 = {
.pdu = run_at_command_372,
.pdu_len = sizeof(run_at_command_372),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_373 = {
.pdu = run_at_command_373,
.pdu_len = sizeof(run_at_command_373),
.qualifier = 0x00,
.alpha_id = "Run AT Command 3",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_381 = {
.pdu = run_at_command_381,
.pdu_len = sizeof(run_at_command_381),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x40, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_382 = {
.pdu = run_at_command_382,
.pdu_len = sizeof(run_at_command_382),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_383 = {
.pdu = run_at_command_383,
.pdu_len = sizeof(run_at_command_383),
.qualifier = 0x00,
.alpha_id = "Run AT Command 3",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_391 = {
.pdu = run_at_command_391,
.pdu_len = sizeof(run_at_command_391),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x80, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_392 = {
.pdu = run_at_command_392,
.pdu_len = sizeof(run_at_command_392),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_393 = {
.pdu = run_at_command_393,
.pdu_len = sizeof(run_at_command_393),
.qualifier = 0x00,
.alpha_id = "Run AT Command 3",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_3101 = {
.pdu = run_at_command_3101,
.pdu_len = sizeof(run_at_command_3101),
.qualifier = 0x00,
.alpha_id = "Run AT Command 1",
.at_command = "AT+CGMI",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x10, 0x00, 0xB4 }
}
};
static struct run_at_command_test run_at_command_data_3102 = {
.pdu = run_at_command_3102,
.pdu_len = sizeof(run_at_command_3102),
.qualifier = 0x00,
.alpha_id = "Run AT Command 2",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_411 = {
.pdu = run_at_command_411,
.pdu_len = sizeof(run_at_command_411),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_511 = {
.pdu = run_at_command_511,
.pdu_len = sizeof(run_at_command_511),
.qualifier = 0x00,
.alpha_id = "你好",
.at_command = "AT+CGMI"
};
static struct run_at_command_test run_at_command_data_611 = {
.pdu = run_at_command_611,
.pdu_len = sizeof(run_at_command_611),
.qualifier = 0x00,
.alpha_id = "80ル",
.at_command = "AT+CGMI"
};
static void test_run_at_command(gconstpointer data)
{
const struct run_at_command_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == test->status);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_RUN_AT_COMMAND);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_alpha_id(command->run_at_command.alpha_id, test->alpha_id);
check_at_command(command->run_at_command.at_command, test->at_command);
check_icon_id(&command->run_at_command.icon_id, &test->icon_id);
check_text_attr(&command->run_at_command.text_attr, &test->text_attr);
check_frame_id(&command->run_at_command.frame_id, &test->frame_id);
stk_command_free(command);
}
struct send_dtmf_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
char *dtmf;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char send_dtmf_111[] = { 0xD0, 0x0D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0xAC, 0x02, 0xC1, 0xF2 };
static unsigned char send_dtmf_121[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x09, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0xAC, 0x05, 0x21, 0x43,
0x65, 0x87, 0x09 };
static unsigned char send_dtmf_131[] = { 0xD0, 0x13, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x00, 0xAC, 0x06, 0xC1,
0xCC, 0xCC, 0xCC, 0xCC, 0x2C };
static unsigned char send_dtmf_211[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0A, 0x42, 0x61, 0x73,
0x69, 0x63, 0x20, 0x49, 0x63,
0x6F, 0x6E, 0xAC, 0x02, 0xC1,
0xF2, 0x9E, 0x02, 0x00, 0x01 };
static unsigned char send_dtmf_221[] = { 0xD0, 0x1E, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x43, 0x6F, 0x6C,
0x6F, 0x75, 0x72, 0x20, 0x49,
0x63, 0x6F, 0x6E, 0xAC, 0x02,
0xC1, 0xF2, 0x9E, 0x02, 0x00,
0x02 };
static unsigned char send_dtmf_231[] = { 0xD0, 0x1C, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x09, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0xAC, 0x02, 0xC1, 0xF2,
0x9E, 0x02, 0x01, 0x01 };
static unsigned char send_dtmf_311[] = { 0xD0, 0x28, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x19, 0x80, 0x04, 0x17,
0x04, 0x14, 0x04, 0x20, 0x04,
0x10, 0x04, 0x12, 0x04, 0x21,
0x04, 0x22, 0x04, 0x12, 0x04,
0x23, 0x04, 0x19, 0x04, 0x22,
0x04, 0x15, 0xAC, 0x02, 0xC1,
0xF2 };
static unsigned char send_dtmf_411[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_412[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_421[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x01,
0xB4 };
static unsigned char send_dtmf_422[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_431[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0xB0, 0x02,
0xB4 };
static unsigned char send_dtmf_432[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_441[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x04,
0xB4 };
static unsigned char send_dtmf_442[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_443[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x33, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_451[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x08,
0xB4 };
static unsigned char send_dtmf_452[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_453[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x33, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
/* The last 0x00 in spec should be removed. */
static unsigned char send_dtmf_461[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x10,
0xB4 };
static unsigned char send_dtmf_462[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_463[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x33, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_471[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x20,
0xB4 };
static unsigned char send_dtmf_472[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_473[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x33, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_481[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x40,
0xB4 };
static unsigned char send_dtmf_482[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_483[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x33, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
/* The second to the last should be 0x80 */
static unsigned char send_dtmf_491[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x80,
0xB4 };
static unsigned char send_dtmf_492[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_493[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x33, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_4101[] = { 0xD0, 0x23, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x31, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09,
0xD0, 0x04, 0x00, 0x0B, 0x00,
0xB4 };
static unsigned char send_dtmf_4102[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x54, 0x4D,
0x46, 0x20, 0x32, 0xAC, 0x05,
0x21, 0x43, 0x65, 0x87, 0x09 };
static unsigned char send_dtmf_511[] = { 0xD0, 0x14, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x05, 0x80, 0x4F, 0x60,
0x59, 0x7D, 0xAC, 0x02, 0xC1,
0xF2 };
static unsigned char send_dtmf_611[] = { 0xD0, 0x12, 0x81, 0x03, 0x01, 0x14,
0x00, 0x82, 0x02, 0x81, 0x83,
0x85, 0x03, 0x80, 0x30, 0xEB,
0xAC, 0x02, 0xC1, 0xF2 };
static struct send_dtmf_test send_dtmf_data_111 = {
.pdu = send_dtmf_111,
.pdu_len = sizeof(send_dtmf_111),
.qualifier = 0x00,
2010-05-27 09:24:34 +00:00
.dtmf = "1c2"
};
static struct send_dtmf_test send_dtmf_data_121 = {
.pdu = send_dtmf_121,
.pdu_len = sizeof(send_dtmf_121),
.qualifier = 0x00,
.alpha_id = "Send DTMF",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_131 = {
.pdu = send_dtmf_131,
.pdu_len = sizeof(send_dtmf_131),
.qualifier = 0x00,
.alpha_id = "",
2010-05-27 09:24:34 +00:00
.dtmf = "1cccccccccc2"
};
static struct send_dtmf_test send_dtmf_data_211 = {
.pdu = send_dtmf_211,
.pdu_len = sizeof(send_dtmf_211),
.qualifier = 0x00,
.alpha_id = "Basic Icon",
2010-05-27 09:24:34 +00:00
.dtmf = "1c2",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_dtmf_test send_dtmf_data_221 = {
.pdu = send_dtmf_221,
.pdu_len = sizeof(send_dtmf_221),
.qualifier = 0x00,
.alpha_id = "Colour Icon",
2010-05-27 09:24:34 +00:00
.dtmf = "1c2",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x02
}
};
static struct send_dtmf_test send_dtmf_data_231 = {
.pdu = send_dtmf_231,
.pdu_len = sizeof(send_dtmf_231),
.qualifier = 0x00,
.alpha_id = "Send DTMF",
2010-05-27 09:24:34 +00:00
.dtmf = "1c2",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct send_dtmf_test send_dtmf_data_311 = {
.pdu = send_dtmf_311,
.pdu_len = sizeof(send_dtmf_311),
.qualifier = 0x00,
.alpha_id = "ЗДРАВСТВУЙТЕ",
2010-05-27 09:24:34 +00:00
.dtmf = "1c2"
};
static struct send_dtmf_test send_dtmf_data_411 = {
.pdu = send_dtmf_411,
.pdu_len = sizeof(send_dtmf_411),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_412 = {
.pdu = send_dtmf_412,
.pdu_len = sizeof(send_dtmf_412),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_421 = {
.pdu = send_dtmf_421,
.pdu_len = sizeof(send_dtmf_421),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x01, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_422 = {
.pdu = send_dtmf_422,
.pdu_len = sizeof(send_dtmf_422),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_431 = {
.pdu = send_dtmf_431,
.pdu_len = sizeof(send_dtmf_431),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0xB0, 0x02, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_432 = {
.pdu = send_dtmf_432,
.pdu_len = sizeof(send_dtmf_432),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_441 = {
.pdu = send_dtmf_441,
.pdu_len = sizeof(send_dtmf_441),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x04, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_442 = {
.pdu = send_dtmf_442,
.pdu_len = sizeof(send_dtmf_442),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_443 = {
.pdu = send_dtmf_443,
.pdu_len = sizeof(send_dtmf_443),
.qualifier = 0x00,
.alpha_id = "Send DTMF 3",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_451 = {
.pdu = send_dtmf_451,
.pdu_len = sizeof(send_dtmf_451),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x08, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_452 = {
.pdu = send_dtmf_452,
.pdu_len = sizeof(send_dtmf_452),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_453 = {
.pdu = send_dtmf_453,
.pdu_len = sizeof(send_dtmf_453),
.qualifier = 0x00,
.alpha_id = "Send DTMF 3",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_461 = {
.pdu = send_dtmf_461,
.pdu_len = sizeof(send_dtmf_461),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x10, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_462 = {
.pdu = send_dtmf_462,
.pdu_len = sizeof(send_dtmf_462),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_463 = {
.pdu = send_dtmf_463,
.pdu_len = sizeof(send_dtmf_463),
.qualifier = 0x00,
.alpha_id = "Send DTMF 3",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_471 = {
.pdu = send_dtmf_471,
.pdu_len = sizeof(send_dtmf_471),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x20, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_472 = {
.pdu = send_dtmf_472,
.pdu_len = sizeof(send_dtmf_472),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_473 = {
.pdu = send_dtmf_473,
.pdu_len = sizeof(send_dtmf_473),
.qualifier = 0x00,
.alpha_id = "Send DTMF 3",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_481 = {
.pdu = send_dtmf_481,
.pdu_len = sizeof(send_dtmf_481),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x40, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_482 = {
.pdu = send_dtmf_482,
.pdu_len = sizeof(send_dtmf_482),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_483 = {
.pdu = send_dtmf_483,
.pdu_len = sizeof(send_dtmf_483),
.qualifier = 0x00,
.alpha_id = "Send DTMF 3",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_491 = {
.pdu = send_dtmf_491,
.pdu_len = sizeof(send_dtmf_491),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x80, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_492 = {
.pdu = send_dtmf_492,
.pdu_len = sizeof(send_dtmf_492),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_493 = {
.pdu = send_dtmf_493,
.pdu_len = sizeof(send_dtmf_493),
.qualifier = 0x00,
.alpha_id = "Send DTMF 3",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_4101 = {
.pdu = send_dtmf_4101,
.pdu_len = sizeof(send_dtmf_4101),
.qualifier = 0x00,
.alpha_id = "Send DTMF 1",
.dtmf = "1234567890",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
}
};
static struct send_dtmf_test send_dtmf_data_4102 = {
.pdu = send_dtmf_4102,
.pdu_len = sizeof(send_dtmf_4102),
.qualifier = 0x00,
.alpha_id = "Send DTMF 2",
.dtmf = "1234567890"
};
static struct send_dtmf_test send_dtmf_data_511 = {
.pdu = send_dtmf_511,
.pdu_len = sizeof(send_dtmf_511),
.qualifier = 0x00,
.alpha_id = "你好",
2010-05-27 09:24:34 +00:00
.dtmf = "1c2"
};
static struct send_dtmf_test send_dtmf_data_611 = {
.pdu = send_dtmf_611,
.pdu_len = sizeof(send_dtmf_611),
.qualifier = 0x00,
.alpha_id = "",
2010-05-27 09:24:34 +00:00
.dtmf = "1c2"
};
static void test_send_dtmf(gconstpointer data)
{
const struct send_dtmf_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SEND_DTMF);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_NETWORK);
check_alpha_id(command->send_dtmf.alpha_id, test->alpha_id);
check_dtmf_string(command->send_dtmf.dtmf, test->dtmf);
check_icon_id(&command->send_dtmf.icon_id, &test->icon_id);
check_text_attr(&command->send_dtmf.text_attr, &test->text_attr);
check_frame_id(&command->send_dtmf.frame_id, &test->frame_id);
stk_command_free(command);
}
struct language_notification_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char language[3];
};
static unsigned char language_notification_111[] = { 0xD0, 0x0D, 0x81, 0x03,
0x01, 0x35, 0x01, 0x82, 0x02,
0x81, 0x82, 0xAD, 0x02, 0x73,
0x65 };
static unsigned char language_notification_121[] = { 0xD0, 0x09, 0x81, 0x03,
0x01, 0x35, 0x00, 0x82, 0x02,
0x81, 0x82 };
static struct language_notification_test language_notification_data_111 = {
.pdu = language_notification_111,
.pdu_len = sizeof(language_notification_111),
.qualifier = 0x01,
.language = "se"
};
static struct language_notification_test language_notification_data_121 = {
.pdu = language_notification_121,
.pdu_len = sizeof(language_notification_121),
.qualifier = 0x00
};
static void test_language_notification(gconstpointer data)
{
const struct language_notification_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_LANGUAGE_NOTIFICATION);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_language(command->language_notification.language, test->language);
stk_command_free(command);
}
struct launch_browser_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
unsigned char browser_id;
char *url;
struct stk_common_byte_array bearer;
struct stk_file prov_file_refs[MAX_ITEM];
char *text_gateway_proxy_id;
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
struct stk_common_byte_array network_name;
char *text_usr;
char *text_passwd;
};
static unsigned char launch_browser_111[] = { 0xD0, 0x18, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0B,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C };
static unsigned char launch_browser_121[] = { 0xD0, 0x1F, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x12, 0x68, 0x74,
0x74, 0x70, 0x3A, 0x2F, 0x2F,
0x78, 0x78, 0x78, 0x2E, 0x79,
0x79, 0x79, 0x2E, 0x7A, 0x7A,
0x7A, 0x05, 0x00 };
static unsigned char launch_browser_131[] = { 0xD0, 0x0E, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x30, 0x01, 0x00, 0x31,
0x00 };
static unsigned char launch_browser_141[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x32, 0x01,
0x03, 0x0D, 0x10, 0x04, 0x61,
0x62, 0x63, 0x2E, 0x64, 0x65,
0x66, 0x2E, 0x67, 0x68, 0x69,
0x2E, 0x6A, 0x6B, 0x6C };
static unsigned char launch_browser_211[] = { 0xD0, 0x18, 0x81, 0x03, 0x01,
0x15, 0x02, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0B,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C };
static unsigned char launch_browser_221[] = { 0xD0, 0x18, 0x81, 0x03, 0x01,
0x15, 0x03, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0B,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C };
static unsigned char launch_browser_231[] = { 0xD0, 0x0B, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00 };
static unsigned char launch_browser_311[] = { 0xD0, 0x26, 0x81, 0x03, 0x01,
0x15, 0x02, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x19,
0x80, 0x04, 0x17, 0x04, 0x14,
0x04, 0x20, 0x04, 0x10, 0x04,
0x12, 0x04, 0x21, 0x04, 0x22,
0x04, 0x12, 0x04, 0x23, 0x04,
0x19, 0x04, 0x22, 0x04, 0x15 };
static unsigned char launch_browser_411[] = { 0xD0, 0x21, 0x81, 0x03, 0x01,
0x15, 0x02, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x10,
0x4E, 0x6F, 0x74, 0x20, 0x73,
0x65, 0x6C, 0x66, 0x20, 0x65,
0x78, 0x70, 0x6C, 0x61, 0x6E,
0x2E, 0x1E, 0x02, 0x01, 0x01 };
static unsigned char launch_browser_421[] = { 0xD0, 0x1D, 0x81, 0x03, 0x01,
0x15, 0x02, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0C,
0x53, 0x65, 0x6C, 0x66, 0x20,
0x65, 0x78, 0x70, 0x6C, 0x61,
0x6E, 0x2E, 0x1E, 0x02, 0x00,
0x01 };
static unsigned char launch_browser_511[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_512[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32 };
static unsigned char launch_browser_521[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x01, 0xB4 };
static unsigned char launch_browser_522[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32 };
static unsigned char launch_browser_531[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x02, 0xB4 };
static unsigned char launch_browser_532[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32 };
static unsigned char launch_browser_541[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x04, 0xB4 };
static unsigned char launch_browser_542[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_543[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x33 };
static unsigned char launch_browser_551[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x08, 0xB4 };
static unsigned char launch_browser_552[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_553[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x33 };
static unsigned char launch_browser_561[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x10, 0xB4 };
static unsigned char launch_browser_562[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_563[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x33 };
static unsigned char launch_browser_571[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x20, 0xB4 };
static unsigned char launch_browser_572[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_573[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x33 };
static unsigned char launch_browser_581[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x40, 0xB4 };
static unsigned char launch_browser_582[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_583[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x33 };
static unsigned char launch_browser_591[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x80, 0xB4 };
static unsigned char launch_browser_592[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_593[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x33 };
static unsigned char launch_browser_5101[] = { 0xD0, 0x20, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x31, 0xD0, 0x04,
0x00, 0x0D, 0x00, 0xB4 };
static unsigned char launch_browser_5102[] = { 0xD0, 0x1A, 0x81, 0x03, 0x01,
0x15, 0x00, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x0D,
0x44, 0x65, 0x66, 0x61, 0x75,
0x6C, 0x74, 0x20, 0x55, 0x52,
0x4C, 0x20, 0x32 };
static unsigned char launch_browser_611[] = { 0xD0, 0x12, 0x81, 0x03, 0x01,
0x15, 0x02, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x05,
0x80, 0x4F, 0x60, 0x59, 0x7D };
static unsigned char launch_browser_711[] = { 0xD0, 0x10, 0x81, 0x03, 0x01,
0x15, 0x02, 0x82, 0x02, 0x81,
0x82, 0x31, 0x00, 0x05, 0x03,
0x80, 0x30, 0xEB };
static struct launch_browser_test launch_browser_data_111 = {
.pdu = launch_browser_111,
.pdu_len = sizeof(launch_browser_111),
.qualifier = 0x00,
.alpha_id = "Default URL"
};
static struct launch_browser_test launch_browser_data_121 = {
.pdu = launch_browser_121,
.pdu_len = sizeof(launch_browser_121),
.qualifier = 0x00,
.alpha_id = "",
.url = "http://xxx.yyy.zzz"
};
static struct launch_browser_test launch_browser_data_131 = {
.pdu = launch_browser_131,
.pdu_len = sizeof(launch_browser_131),
.qualifier = 0x00
};
static struct launch_browser_test launch_browser_data_141 = {
.pdu = launch_browser_141,
.pdu_len = sizeof(launch_browser_141),
.qualifier = 0x00,
.bearer = {
.len = 1,
.array = (unsigned char *) "\x03"
},
.text_gateway_proxy_id = "abc.def.ghi.jkl"
};
static struct launch_browser_test launch_browser_data_211 = {
.pdu = launch_browser_211,
.pdu_len = sizeof(launch_browser_211),
.qualifier = 0x02,
.alpha_id = "Default URL"
};
static struct launch_browser_test launch_browser_data_221 = {
.pdu = launch_browser_221,
.pdu_len = sizeof(launch_browser_221),
.qualifier = 0x03,
.alpha_id = "Default URL"
};
static struct launch_browser_test launch_browser_data_231 = {
.pdu = launch_browser_231,
.pdu_len = sizeof(launch_browser_231),
.qualifier = 0x00
};
static struct launch_browser_test launch_browser_data_311 = {
.pdu = launch_browser_311,
.pdu_len = sizeof(launch_browser_311),
.qualifier = 0x02,
.alpha_id = "ЗДРАВСТВУЙТЕ"
};
static struct launch_browser_test launch_browser_data_411 = {
.pdu = launch_browser_411,
.pdu_len = sizeof(launch_browser_411),
.qualifier = 0x02,
.alpha_id = "Not self explan.",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_NON_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct launch_browser_test launch_browser_data_421 = {
.pdu = launch_browser_421,
.pdu_len = sizeof(launch_browser_421),
.qualifier = 0x02,
.alpha_id = "Self explan.",
.icon_id = {
.qualifier = STK_ICON_QUALIFIER_TYPE_SELF_EXPLANATORY,
.id = 0x01
}
};
static struct launch_browser_test launch_browser_data_511 = {
.pdu = launch_browser_511,
.pdu_len = sizeof(launch_browser_511),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_512 = {
.pdu = launch_browser_512,
.pdu_len = sizeof(launch_browser_512),
.qualifier = 0x00,
.alpha_id = "Default URL 2"
};
static struct launch_browser_test launch_browser_data_521 = {
.pdu = launch_browser_521,
.pdu_len = sizeof(launch_browser_521),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x01, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_522 = {
.pdu = launch_browser_522,
.pdu_len = sizeof(launch_browser_522),
.qualifier = 0x00,
.alpha_id = "Default URL 2"
};
static struct launch_browser_test launch_browser_data_531 = {
.pdu = launch_browser_531,
.pdu_len = sizeof(launch_browser_531),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x02, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_532 = {
.pdu = launch_browser_532,
.pdu_len = sizeof(launch_browser_532),
.qualifier = 0x00,
.alpha_id = "Default URL 2"
};
static struct launch_browser_test launch_browser_data_541 = {
.pdu = launch_browser_541,
.pdu_len = sizeof(launch_browser_541),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x04, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_542 = {
.pdu = launch_browser_542,
.pdu_len = sizeof(launch_browser_542),
.qualifier = 0x00,
.alpha_id = "Default URL 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_543 = {
.pdu = launch_browser_543,
.pdu_len = sizeof(launch_browser_543),
.qualifier = 0x00,
.alpha_id = "Default URL 3"
};
static struct launch_browser_test launch_browser_data_551 = {
.pdu = launch_browser_551,
.pdu_len = sizeof(launch_browser_551),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x08, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_552 = {
.pdu = launch_browser_552,
.pdu_len = sizeof(launch_browser_552),
.qualifier = 0x00,
.alpha_id = "Default URL 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_553 = {
.pdu = launch_browser_553,
.pdu_len = sizeof(launch_browser_553),
.qualifier = 0x00,
.alpha_id = "Default URL 3"
};
static struct launch_browser_test launch_browser_data_561 = {
.pdu = launch_browser_561,
.pdu_len = sizeof(launch_browser_561),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x10, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_562 = {
.pdu = launch_browser_562,
.pdu_len = sizeof(launch_browser_562),
.qualifier = 0x00,
.alpha_id = "Default URL 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_563 = {
.pdu = launch_browser_563,
.pdu_len = sizeof(launch_browser_563),
.qualifier = 0x00,
.alpha_id = "Default URL 3"
};
static struct launch_browser_test launch_browser_data_571 = {
.pdu = launch_browser_571,
.pdu_len = sizeof(launch_browser_571),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x20, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_572 = {
.pdu = launch_browser_572,
.pdu_len = sizeof(launch_browser_572),
.qualifier = 0x00,
.alpha_id = "Default URL 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_573 = {
.pdu = launch_browser_573,
.pdu_len = sizeof(launch_browser_573),
.qualifier = 0x00,
.alpha_id = "Default URL 3"
};
static struct launch_browser_test launch_browser_data_581 = {
.pdu = launch_browser_581,
.pdu_len = sizeof(launch_browser_581),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x40, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_582 = {
.pdu = launch_browser_582,
.pdu_len = sizeof(launch_browser_582),
.qualifier = 0x00,
.alpha_id = "Default URL 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_583 = {
.pdu = launch_browser_583,
.pdu_len = sizeof(launch_browser_583),
.qualifier = 0x00,
.alpha_id = "Default URL 3"
};
static struct launch_browser_test launch_browser_data_591 = {
.pdu = launch_browser_591,
.pdu_len = sizeof(launch_browser_591),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x80, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_592 = {
.pdu = launch_browser_592,
.pdu_len = sizeof(launch_browser_592),
.qualifier = 0x00,
.alpha_id = "Default URL 2",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_593 = {
.pdu = launch_browser_593,
.pdu_len = sizeof(launch_browser_593),
.qualifier = 0x00,
.alpha_id = "Default URL 3"
};
static struct launch_browser_test launch_browser_data_5101 = {
.pdu = launch_browser_5101,
.pdu_len = sizeof(launch_browser_5101),
.qualifier = 0x00,
.alpha_id = "Default URL 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0D, 0x00, 0xB4 }
}
};
static struct launch_browser_test launch_browser_data_5102 = {
.pdu = launch_browser_5102,
.pdu_len = sizeof(launch_browser_5102),
.qualifier = 0x00,
.alpha_id = "Default URL 2"
};
static struct launch_browser_test launch_browser_data_611 = {
.pdu = launch_browser_611,
.pdu_len = sizeof(launch_browser_611),
.qualifier = 0x02,
.alpha_id = "你好"
};
static struct launch_browser_test launch_browser_data_711 = {
.pdu = launch_browser_711,
.pdu_len = sizeof(launch_browser_711),
.qualifier = 0x02,
.alpha_id = ""
};
static void test_launch_browser(gconstpointer data)
{
const struct launch_browser_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_LAUNCH_BROWSER);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_browser_id(command->launch_browser.browser_id, test->browser_id);
check_url(command->launch_browser.url, test->url);
check_bearer(&command->launch_browser.bearer, &test->bearer);
check_provisioning_file_references(
command->launch_browser.prov_file_refs, test->prov_file_refs);
check_text(command->launch_browser.text_gateway_proxy_id,
test->text_gateway_proxy_id);
check_alpha_id(command->launch_browser.alpha_id, test->alpha_id);
check_icon_id(&command->launch_browser.icon_id, &test->icon_id);
check_text_attr(&command->launch_browser.text_attr, &test->text_attr);
check_frame_id(&command->launch_browser.frame_id, &test->frame_id);
check_text(command->launch_browser.text_usr, test->text_usr);
check_text(command->launch_browser.text_passwd, test->text_passwd);
stk_command_free(command);
}
struct open_channel_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_bearer_description bearer_desc;
unsigned short buf_size;
char *apn;
struct stk_other_address local_addr;
char *text_usr;
char *text_passwd;
struct stk_uicc_te_interface uti;
struct stk_other_address data_dest_addr;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char open_channel_211[] = { 0xD0, 0x36, 0x81, 0x03, 0x01, 0x40,
0x01, 0x82, 0x02, 0x81, 0x82,
0x35, 0x07, 0x02, 0x03, 0x04,
0x03, 0x04, 0x1F, 0x02, 0x39,
0x02, 0x05, 0x78, 0x0D, 0x08,
0xF4, 0x55, 0x73, 0x65, 0x72,
0x4C, 0x6F, 0x67, 0x0D, 0x08,
0xF4, 0x55, 0x73, 0x65, 0x72,
0x50, 0x77, 0x64, 0x3C, 0x03,
0x01, 0xAD, 0x9C, 0x3E, 0x05,
0x21, 0x01, 0x01, 0x01, 0x01 };
static unsigned char open_channel_221[] = { 0xD0, 0x42, 0x81, 0x03, 0x01, 0x40,
0x01, 0x82, 0x02, 0x81, 0x82,
0x35, 0x07, 0x02, 0x03, 0x04,
0x03, 0x04, 0x1F, 0x02, 0x39,
0x02, 0x05, 0x78, 0x47, 0x0A,
0x06, 0x54, 0x65, 0x73, 0x74,
0x47, 0x70, 0x02, 0x72, 0x73,
0x0D, 0x08, 0xF4, 0x55, 0x73,
0x65, 0x72, 0x4C, 0x6F, 0x67,
0x0D, 0x08, 0xF4, 0x55, 0x73,
0x65, 0x72, 0x50, 0x77, 0x64,
0x3C, 0x03, 0x01, 0xAD, 0x9C,
0x3E, 0x05, 0x21, 0x01, 0x01,
0x01, 0x01 };
static unsigned char open_channel_231[] = { 0xD0, 0x4B, 0x81, 0x03, 0x01, 0x40,
0x01, 0x82, 0x02, 0x81, 0x82,
0x05, 0x07, 0x4F, 0x70, 0x65,
0x6E, 0x20, 0x49, 0x44, 0x35,
0x07, 0x02, 0x03, 0x04, 0x03,
0x04, 0x1F, 0x02, 0x39, 0x02,
0x05, 0x78, 0x47, 0x0A, 0x06,
0x54, 0x65, 0x73, 0x74, 0x47,
0x70, 0x02, 0x72, 0x73, 0x0D,
0x08, 0xF4, 0x55, 0x73, 0x65,
0x72, 0x4C, 0x6F, 0x67, 0x0D,
0x08, 0xF4, 0x55, 0x73, 0x65,
0x72, 0x50, 0x77, 0x64, 0x3C,
0x03, 0x01, 0xAD, 0x9C, 0x3E,
0x05, 0x21, 0x01, 0x01, 0x01,
0x01 };
static unsigned char open_channel_241[] = { 0xD0, 0x44, 0x81, 0x03, 0x01, 0x40,
0x01, 0x82, 0x02, 0x81, 0x82,
0x05, 0x00, 0x35, 0x07, 0x02,
0x03, 0x04, 0x03, 0x04, 0x1F,
0x02, 0x39, 0x02, 0x05, 0x78,
0x47, 0x0A, 0x06, 0x54, 0x65,
0x73, 0x74, 0x47, 0x70, 0x02,
0x72, 0x73, 0x0D, 0x08, 0xF4,
0x55, 0x73, 0x65, 0x72, 0x4C,
0x6F, 0x67, 0x0D, 0x08, 0xF4,
0x55, 0x73, 0x65, 0x72, 0x50,
0x77, 0x64, 0x3C, 0x03, 0x01,
0xAD, 0x9C, 0x3E, 0x05, 0x21,
0x01, 0x01, 0x01, 0x01 };
static unsigned char open_channel_511[] = { 0xD0, 0x53, 0x81, 0x03, 0x01, 0x40,
0x01, 0x82, 0x02, 0x81, 0x82,
0x05, 0x09, 0x4F, 0x70, 0x65,
0x6E, 0x20, 0x49, 0x44, 0x20,
0x31, 0x35, 0x07, 0x02, 0x03,
0x04, 0x03, 0x04, 0x1F, 0x02,
0x39, 0x02, 0x05, 0x78, 0x47,
0x0A, 0x06, 0x54, 0x65, 0x73,
0x74, 0x47, 0x70, 0x02, 0x72,
0x73, 0x0D, 0x08, 0xF4, 0x55,
0x73, 0x65, 0x72, 0x4C, 0x6F,
0x67, 0x0D, 0x08, 0xF4, 0x55,
0x73, 0x65, 0x72, 0x50, 0x77,
0x64, 0x3C, 0x03, 0x01, 0xAD,
0x9C, 0x3E, 0x05, 0x21, 0x01,
0x01, 0x01, 0x01, 0xD0, 0x04,
0x00, 0x09, 0x00, 0xB4 };
static struct open_channel_test open_channel_data_211 = {
/*
* OPEN CHANNEL, immediate link establishment, GPRS, no local address
* no alpha identifier, no network access name
*/
.pdu = open_channel_211,
.pdu_len = sizeof(open_channel_211),
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
.text_usr = "UserLog",
.text_passwd = "UserPwd",
.uti = {
.protocol = STK_TRANSPORT_PROTOCOL_UDP_CLIENT_REMOTE,
.port = 44444,
},
.data_dest_addr = {
.type = STK_ADDRESS_IPV4,
.addr = {
.ipv4 = 0x01010101,
},
},
};
static struct open_channel_test open_channel_data_221 = {
/*
* OPEN CHANNEL, immediate link establishment GPRS,
* no alpha identifier, with network access name
*/
.pdu = open_channel_221,
.pdu_len = sizeof(open_channel_221),
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
.apn = "TestGp.rs",
.text_usr = "UserLog",
.text_passwd = "UserPwd",
.uti = {
.protocol = STK_TRANSPORT_PROTOCOL_UDP_CLIENT_REMOTE,
.port = 44444,
},
.data_dest_addr = {
.type = STK_ADDRESS_IPV4,
.addr = {
.ipv4 = 0x01010101,
},
},
};
static struct open_channel_test open_channel_data_231 = {
/*
* OPEN CHANNEL, immediate link establishment, GPRS
* with alpha identifier
*/
.pdu = open_channel_231,
.pdu_len = sizeof(open_channel_231),
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.alpha_id = "Open ID",
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
.apn = "TestGp.rs",
.text_usr = "UserLog",
.text_passwd = "UserPwd",
.uti = {
.protocol = STK_TRANSPORT_PROTOCOL_UDP_CLIENT_REMOTE,
.port = 44444,
},
.data_dest_addr = {
.type = STK_ADDRESS_IPV4,
.addr = {
.ipv4 = 0x01010101,
},
},
};
static struct open_channel_test open_channel_data_241 = {
/*
* OPEN CHANNEL, immediate link establishment, GPRS,
* with null alpha identifier
*/
.pdu = open_channel_241,
.pdu_len = sizeof(open_channel_241),
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.alpha_id = "",
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
.apn = "TestGp.rs",
.text_usr = "UserLog",
.text_passwd = "UserPwd",
.uti = {
.protocol = STK_TRANSPORT_PROTOCOL_UDP_CLIENT_REMOTE,
.port = 44444,
},
.data_dest_addr = {
.type = STK_ADDRESS_IPV4,
.addr = {
.ipv4 = 0x01010101,
},
},
};
static struct open_channel_test open_channel_data_511 = {
/*
* OPEN CHANNEL, immediate link establishment, GPRS
* Text Attribute Left Alignment
*/
.pdu = open_channel_511,
.pdu_len = sizeof(open_channel_511),
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.alpha_id = "Open ID 1",
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
.apn = "TestGp.rs",
.text_usr = "UserLog",
.text_passwd = "UserPwd",
.uti = {
.protocol = STK_TRANSPORT_PROTOCOL_UDP_CLIENT_REMOTE,
.port = 44444,
},
.data_dest_addr = {
.type = STK_ADDRESS_IPV4,
.addr = {
.ipv4 = 0x01010101,
},
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x09, 0x00, 0xB4 }
},
};
static void test_open_channel(gconstpointer data)
{
const struct open_channel_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_OPEN_CHANNEL);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
check_alpha_id(command->open_channel.alpha_id, test->alpha_id);
check_icon_id(&command->open_channel.icon_id, &test->icon_id);
check_bearer_desc(&command->open_channel.bearer_desc,
&test->bearer_desc);
g_assert(command->open_channel.buf_size == test->buf_size);
check_network_access_name(command->open_channel.apn, test->apn);
check_other_address(&command->open_channel.local_addr,
&test->local_addr);
check_text(command->open_channel.text_usr, test->text_usr);
check_text(command->open_channel.text_passwd, test->text_passwd);
check_uicc_te_interface(&command->open_channel.uti, &test->uti);
check_other_address(&command->open_channel.data_dest_addr,
&test->data_dest_addr);
check_text_attr(&command->open_channel.text_attr, &test->text_attr);
check_frame_id(&command->open_channel.frame_id, &test->frame_id);
stk_command_free(command);
}
struct close_channel_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
enum stk_device_identity_type dst;
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char close_channel_111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01, 0x41,
0x00, 0x82, 0x02, 0x81, 0x21 };
static struct close_channel_test close_channel_data_111 = {
.pdu = close_channel_111,
.pdu_len = sizeof(close_channel_111),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
};
static unsigned char close_channel_211[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x41,
0x00, 0x82, 0x02, 0x81, 0x21,
0x85, 0x0A, 0x43, 0x6C, 0x6F,
0x73, 0x65, 0x20, 0x49, 0x44,
0x20, 0x31, 0xD0, 0x04, 0x00,
0x0A, 0x00, 0xB4,
};
static struct close_channel_test close_channel_data_211 = {
.pdu = close_channel_211,
.pdu_len = sizeof(close_channel_211),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
.alpha_id = "Close ID 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0A, 0x00, 0xB4 }
},
};
static void test_close_channel(gconstpointer data)
{
const struct close_channel_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_CLOSE_CHANNEL);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == test->dst);
check_alpha_id(command->close_channel.alpha_id, test->alpha_id);
check_icon_id(&command->close_channel.icon_id, &test->icon_id);
check_text_attr(&command->close_channel.text_attr, &test->text_attr);
check_frame_id(&command->close_channel.frame_id, &test->frame_id);
stk_command_free(command);
}
struct receive_data_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
enum stk_device_identity_type dst;
char *alpha_id;
struct stk_icon_id icon_id;
unsigned char data_len;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char receive_data_111[] = { 0xD0, 0x0C, 0x81, 0x03, 0x01, 0x42,
0x00, 0x82, 0x02, 0x81, 0x21,
0xB7, 0x01, 0xC8 };
static struct receive_data_test receive_data_data_111 = {
.pdu = receive_data_111,
.pdu_len = sizeof(receive_data_111),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
.data_len = 200,
};
static unsigned char receive_data_211[] = { 0xD0, 0x22, 0x81, 0x03, 0x01, 0x42,
0x00, 0x82, 0x02, 0x81, 0x21,
0x85, 0x0E, 0x52, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x20,
0x44, 0x61, 0x74, 0x61, 0x20,
0x31, 0xB7, 0x01, 0xC8, 0xD0,
0x04, 0x00, 0x0E, 0x00, 0xB4 };
static struct receive_data_test receive_data_data_211 = {
.pdu = receive_data_211,
.pdu_len = sizeof(receive_data_211),
.qualifier = 0x00,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
.data_len = 200,
.alpha_id = "Receive Data 1",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0E, 0x00, 0xB4 }
},
};
static void test_receive_data(gconstpointer data)
{
const struct receive_data_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_RECEIVE_DATA);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == test->dst);
check_alpha_id(command->receive_data.alpha_id, test->alpha_id);
check_icon_id(&command->receive_data.icon_id, &test->icon_id);
check_common_byte(command->receive_data.data_len, test->data_len);
check_text_attr(&command->receive_data.text_attr, &test->text_attr);
check_frame_id(&command->receive_data.frame_id, &test->frame_id);
stk_command_free(command);
}
struct send_data_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
enum stk_device_identity_type dst;
char *alpha_id;
struct stk_icon_id icon_id;
struct stk_common_byte_array data;
struct stk_text_attribute text_attr;
struct stk_frame_id frame_id;
};
static unsigned char send_data_111[] = { 0xD0, 0x13, 0x81, 0x03, 0x01, 0x43,
0x01, 0x82, 0x02, 0x81, 0x21,
0xB6, 0x08, 0x00, 0x01, 0x02,
0x03, 0x04, 0x05, 0x06, 0x07 };
static struct send_data_test send_data_data_111 = {
.pdu = send_data_111,
.pdu_len = sizeof(send_data_111),
.qualifier = STK_SEND_DATA_IMMEDIATELY,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
.data = {
.array = (unsigned char[8]) {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
},
.len = 8,
},
};
static unsigned char send_data_121[] = {
0xD0, 0x81, 0xD4, 0x81, 0x03, 0x01, 0x43, 0x00,
0x82, 0x02, 0x81, 0x21, 0xB6, 0x81, 0xC8, 0x00,
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20,
0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28,
0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40,
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60,
0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68,
0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80,
0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88,
0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90,
0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98,
0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0,
0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0,
0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8,
0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0,
0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7 };
static struct send_data_test send_data_data_121 = {
.pdu = send_data_121,
.pdu_len = sizeof(send_data_121),
.qualifier = STK_SEND_DATA_STORE_DATA,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
.data = {
.array = (unsigned char[200]) {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f,
0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
},
.len = 200,
},
};
static unsigned char send_data_211[] = {
0xD0, 0x26, 0x81, 0x03, 0x01, 0x43, 0x01, 0x82,
0x02, 0x81, 0x21, 0x85, 0x0B, 0x53, 0x65, 0x6E,
0x64, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x31,
0xB6, 0x08, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05,
0x06, 0x07, 0xD0, 0x04, 0x00, 0x0B, 0x00, 0xB4,
};
static struct send_data_test send_data_data_211 = {
.pdu = send_data_211,
.pdu_len = sizeof(send_data_211),
.qualifier = STK_SEND_DATA_IMMEDIATELY,
.dst = STK_DEVICE_IDENTITY_TYPE_CHANNEL_1,
.alpha_id = "Send Data 1",
.data = {
.array = (unsigned char[8]) {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07
},
.len = 8,
},
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x0B, 0x00, 0xB4 }
},
};
static void test_send_data(gconstpointer data)
{
const struct send_data_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_SEND_DATA);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == test->dst);
check_alpha_id(command->send_data.alpha_id, test->alpha_id);
check_icon_id(&command->send_data.icon_id, &test->icon_id);
check_channel_data(&command->send_data.data, &test->data);
check_text_attr(&command->send_data.text_attr, &test->text_attr);
check_frame_id(&command->send_data.frame_id, &test->frame_id);
stk_command_free(command);
}
struct get_channel_status_test {
const unsigned char *pdu;
unsigned int pdu_len;
unsigned char qualifier;
};
static unsigned char get_channel_status_111[] = { 0xD0, 0x09, 0x81, 0x03, 0x01,
0x44, 0x00, 0x82, 0x02,
0x81, 0x82 };
static struct get_channel_status_test get_channel_status_data_111 = {
.pdu = get_channel_status_111,
.pdu_len = sizeof(get_channel_status_111),
.qualifier = 0x00,
};
static void test_get_channel_status(gconstpointer data)
{
const struct get_channel_status_test *test = data;
struct stk_command *command;
command = stk_command_new_from_pdu(test->pdu, test->pdu_len);
g_assert(command);
g_assert(command->status == STK_PARSE_RESULT_OK);
g_assert(command->number == 1);
g_assert(command->type == STK_COMMAND_TYPE_GET_CHANNEL_STATUS);
g_assert(command->qualifier == test->qualifier);
g_assert(command->src == STK_DEVICE_IDENTITY_TYPE_UICC);
g_assert(command->dst == STK_DEVICE_IDENTITY_TYPE_TERMINAL);
stk_command_free(command);
}
struct terminal_response_test {
const unsigned char *pdu;
unsigned int pdu_len;
struct stk_response response;
};
static void test_terminal_response_encoding(gconstpointer data)
{
const struct terminal_response_test *test = data;
const unsigned char *pdu;
unsigned int pdu_len;
pdu = stk_pdu_from_response(&test->response, &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 struct terminal_response_test display_text_response_data_111 = {
.pdu = display_text_response_111,
.pdu_len = sizeof(display_text_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const struct terminal_response_test display_text_response_data_121 = {
.pdu = display_text_response_121,
.pdu_len = sizeof(display_text_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* Screen is busy */
.additional = (unsigned char *) "\1",
},
},
};
static const struct terminal_response_test display_text_response_data_131 = {
.pdu = display_text_response_131,
.pdu_len = sizeof(display_text_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x81, /* Wait for user to clear, High priority */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const struct terminal_response_test display_text_response_data_151 = {
.pdu = display_text_response_151,
.pdu_len = sizeof(display_text_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const struct terminal_response_test display_text_response_data_171 = {
.pdu = display_text_response_171,
.pdu_len = sizeof(display_text_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const struct terminal_response_test display_text_response_data_181 = {
.pdu = display_text_response_181,
.pdu_len = sizeof(display_text_response_181),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const struct terminal_response_test display_text_response_data_191 = {
.pdu = display_text_response_191,
.pdu_len = sizeof(display_text_response_191),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_DATA_NOT_UNDERSTOOD,
},
},
};
static const struct terminal_response_test display_text_response_data_211 = {
.pdu = display_text_response_211,
.pdu_len = sizeof(display_text_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const struct terminal_response_test display_text_response_data_511b = {
.pdu = display_text_response_511b,
.pdu_len = sizeof(display_text_response_511b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_DISPLAY_TEXT,
.qualifier = 0x80, /* Wait for user to clear */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const struct terminal_response_test get_inkey_response_data_111 = {
.pdu = get_inkey_response_111,
.pdu_len = sizeof(get_inkey_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "+",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_121 = {
.pdu = get_inkey_response_121,
.pdu_len = sizeof(get_inkey_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "0",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_131 = {
.pdu = get_inkey_response_131,
.pdu_len = sizeof(get_inkey_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const struct terminal_response_test get_inkey_response_data_141 = {
.pdu = get_inkey_response_141,
.pdu_len = sizeof(get_inkey_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const struct terminal_response_test get_inkey_response_data_151 = {
.pdu = get_inkey_response_151,
.pdu_len = sizeof(get_inkey_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x01, /* SMS alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "q",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_161 = {
.pdu = get_inkey_response_161,
.pdu_len = sizeof(get_inkey_response_161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x01, /* SMS alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "x",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_211 = {
.pdu = get_inkey_response_211,
.pdu_len = sizeof(get_inkey_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const struct terminal_response_test get_inkey_response_data_411 = {
.pdu = get_inkey_response_411,
.pdu_len = sizeof(get_inkey_response_411),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x03, /* UCS2 alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "Д",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_511 = {
.pdu = get_inkey_response_511,
.pdu_len = sizeof(get_inkey_response_511),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x04, /* Yes/No response */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "Yes",
.yesno = TRUE,
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_512 = {
.pdu = get_inkey_response_512,
.pdu_len = sizeof(get_inkey_response_512),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x04, /* Yes/No response */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = NULL,
.yesno = TRUE,
},
}},
},
};
static const unsigned char get_inkey_response_611b[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_inkey_response_data_611b = {
.pdu = get_inkey_response_611b,
.pdu_len = sizeof(get_inkey_response_611b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
{ .get_inkey = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_inkey_response_711[] = {
0x81, 0x03, 0x01, 0x22, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x13,
};
static const struct terminal_response_test get_inkey_response_data_711 = {
.pdu = get_inkey_response_711,
.pdu_len = sizeof(get_inkey_response_711),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x80, /* Help information available */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_HELP_REQUESTED,
},
},
};
static const unsigned char get_inkey_response_712[] = {
0x81, 0x03, 0x01, 0x22, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_inkey_response_data_712 = {
.pdu = get_inkey_response_712,
.pdu_len = sizeof(get_inkey_response_712),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x80, /* Help information available */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "+",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_811 = {
.pdu = get_inkey_response_811,
.pdu_len = sizeof(get_inkey_response_811),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
{ .get_inkey = {
.duration = {
.unit = STK_DURATION_TYPE_SECONDS,
2012-10-09 17:48:17 +00:00
.interval = 11,
},
}},
},
};
static const unsigned char get_inkey_response_912[] = {
0x81, 0x03, 0x01, 0x22, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x02, 0x04, 0x23,
};
static const struct terminal_response_test get_inkey_response_data_912 = {
.pdu = get_inkey_response_912,
.pdu_len = sizeof(get_inkey_response_912),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "#",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_1111 = {
.pdu = get_inkey_response_1111,
.pdu_len = sizeof(get_inkey_response_1111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x03, /* UCS2 alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "",
},
}},
},
};
static const struct terminal_response_test get_inkey_response_data_1311 = {
.pdu = get_inkey_response_1311,
.pdu_len = sizeof(get_inkey_response_1311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INKEY,
.qualifier = 0x03, /* UCS2 alphabet */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_inkey = {
.text = {
.text = "",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_111 = {
.pdu = get_input_response_111,
.pdu_len = sizeof(get_input_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "12345",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_121 = {
.pdu = get_input_response_121,
.pdu_len = sizeof(get_input_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x08, /* Input is packed */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "67*#+",
.packed = TRUE,
},
}},
},
};
static const struct terminal_response_test get_input_response_data_131 = {
.pdu = get_input_response_131,
.pdu_len = sizeof(get_input_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x01, /* Allow all SMS characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "AbCdE",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_141 = {
.pdu = get_input_response_141,
.pdu_len = sizeof(get_input_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x04, /* Hide text */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "2345678",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_151 = {
.pdu = get_input_response_151,
.pdu_len = sizeof(get_input_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "12345678901234567890",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_161 = {
.pdu = get_input_response_161,
.pdu_len = sizeof(get_input_response_161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const struct terminal_response_test get_input_response_data_171 = {
.pdu = get_input_response_171,
.pdu_len = sizeof(get_input_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const struct terminal_response_test get_input_response_data_181 = {
.pdu = get_input_response_181,
.pdu_len = sizeof(get_input_response_181),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "***1111111111###***2222222222###"
"***3333333333###***4444444444###"
"***5555555555###***6666666666###"
"***7777777777###***8888888888###"
"***9999999999###***0000000000###",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_191 = {
/* Either get_input_response_191a or get_input_response_191b is ok */
.pdu = get_input_response_191a,
.pdu_len = sizeof(get_input_response_191a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00, /* Allow all SMS characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_211 = {
.pdu = get_input_response_211,
.pdu_len = sizeof(get_input_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const struct terminal_response_test get_input_response_data_311 = {
.pdu = get_input_response_311,
.pdu_len = sizeof(get_input_response_311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x01, /* Allow all SMS characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "HELLO",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_411 = {
.pdu = get_input_response_411,
.pdu_len = sizeof(get_input_response_411),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ЗДРАВСТВУЙТЕ",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_421 = {
.pdu = get_input_response_421,
.pdu_len = sizeof(get_input_response_421),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙТЕ"
"ЗДРАВСТВУЙТЕЗДРАВСТВУЙ",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_611a = {
.pdu = get_input_response_611a,
.pdu_len = sizeof(get_input_response_611a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_input_response_611b[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04, 0x8d, 0x02, 0x04, 0x2b,
};
static const struct terminal_response_test get_input_response_data_611b = {
.pdu = get_input_response_611b,
.pdu_len = sizeof(get_input_response_611b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
{ .get_input = {
.text = {
.text = "+",
},
}},
},
};
static const unsigned char get_input_response_711[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x13,
};
static const struct terminal_response_test get_input_response_data_711 = {
.pdu = get_input_response_711,
.pdu_len = sizeof(get_input_response_711),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_HELP_REQUESTED,
},
},
};
static const unsigned char get_input_response_812[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x32,
0x32, 0x32, 0x32, 0x32,
};
static const struct terminal_response_test get_input_response_data_812 = {
.pdu = get_input_response_812,
.pdu_len = sizeof(get_input_response_812),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "22222",
},
}},
},
};
static const unsigned char get_input_response_843[] = {
0x81, 0x03, 0x01, 0x23, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x8d, 0x06, 0x04, 0x33,
0x33, 0x33, 0x33, 0x33,
};
static const struct terminal_response_test get_input_response_data_843 = {
.pdu = get_input_response_843,
.pdu_len = sizeof(get_input_response_843),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "33333",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_1011 = {
.pdu = get_input_response_1011,
.pdu_len = sizeof(get_input_response_1011),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "你好",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_1021 = {
.pdu = get_input_response_1021,
.pdu_len = sizeof(get_input_response_1021),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好你好"
"你好你好你好你好你好",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_1211 = {
.pdu = get_input_response_1211,
.pdu_len = sizeof(get_input_response_1211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ルル",
},
}},
},
};
static const struct terminal_response_test get_input_response_data_1221 = {
.pdu = get_input_response_1221,
.pdu_len = sizeof(get_input_response_1221),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_INPUT,
.qualifier = 0x03, /* Allow all UCS2 characters */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .get_input = {
.text = {
.text = "ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルルルル"
"ルルルルルルルルルル",
},
}},
},
};
static const struct terminal_response_test more_time_response_data_111 = {
.pdu = more_time_response_111,
.pdu_len = sizeof(more_time_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_MORE_TIME,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char send_sms_response_111[] = {
0x81, 0x03, 0x01, 0x13, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test send_sms_response_data_111 = {
.pdu = send_sms_response_111,
.pdu_len = sizeof(send_sms_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_SMS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char send_sms_response_121[] = {
0x81, 0x03, 0x01, 0x13, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test send_sms_response_data_121 = {
.pdu = send_sms_response_121,
.pdu_len = sizeof(send_sms_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_SMS,
.qualifier = 0x01, /* Packing required */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char send_sms_response_311b[] = {
0x81, 0x03, 0x01, 0x13, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test send_sms_response_data_311b = {
.pdu = send_sms_response_311b,
.pdu_len = sizeof(send_sms_response_311b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_SMS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const struct terminal_response_test play_tone_response_data_111 = {
.pdu = play_tone_response_111,
.pdu_len = sizeof(play_tone_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char play_tone_response_119b[] = {
0x81, 0x03, 0x01, 0x20, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x30,
};
static const struct terminal_response_test play_tone_response_data_119b = {
.pdu = play_tone_response_119b,
.pdu_len = sizeof(play_tone_response_119b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NOT_CAPABLE,
},
},
};
static const struct terminal_response_test play_tone_response_data_1114 = {
.pdu = play_tone_response_1114,
.pdu_len = sizeof(play_tone_response_1114),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const unsigned char play_tone_response_311b[] = {
0x81, 0x03, 0x01, 0x20, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test play_tone_response_data_311b = {
.pdu = play_tone_response_311b,
.pdu_len = sizeof(play_tone_response_311b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PLAY_TONE,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const struct terminal_response_test poll_interval_response_data_111 = {
.pdu = poll_interval_response_111,
.pdu_len = sizeof(poll_interval_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_POLL_INTERVAL,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .poll_interval = {
.max_interval = {
.unit = STK_DURATION_TYPE_SECONDS,
.interval = 20,
},
}},
},
};
/* 3GPP TS 31.124 */
static const unsigned char poll_interval_response_111a[] = {
0x81, 0x03, 0x01, 0x03, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x84, 0x02, 0x00, 0x01,
};
static const struct terminal_response_test poll_interval_response_data_111a = {
/* Either poll_interval_response_111a or b is ok */
.pdu = poll_interval_response_111a,
.pdu_len = sizeof(poll_interval_response_111a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_POLL_INTERVAL,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .poll_interval = {
.max_interval = {
.unit = STK_DURATION_TYPE_MINUTES,
.interval = 1,
},
}},
},
};
static const unsigned char refresh_response_111a[] = {
0x81, 0x03, 0x01, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_111a = {
.pdu = refresh_response_111a,
.pdu_len = sizeof(refresh_response_111a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x03, /* USIM Initialization */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_111b[] = {
0x81, 0x03, 0x01, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_111b = {
.pdu = refresh_response_111b,
.pdu_len = sizeof(refresh_response_111b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x03, /* USIM Initialization */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_121a[] = {
0x81, 0x03, 0x01, 0x01, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_121a = {
.pdu = refresh_response_121a,
.pdu_len = sizeof(refresh_response_121a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x01, /* File Change Notification */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_121b[] = {
0x81, 0x03, 0x01, 0x01, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_121b = {
.pdu = refresh_response_121b,
.pdu_len = sizeof(refresh_response_121b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x01, /* File Change Notification */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_131a[] = {
0x81, 0x03, 0x01, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_131a = {
.pdu = refresh_response_131a,
.pdu_len = sizeof(refresh_response_131a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x02, /* USIM Initialization & File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_141a[] = {
0x81, 0x03, 0x01, 0x01, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_141a = {
.pdu = refresh_response_141a,
.pdu_len = sizeof(refresh_response_141a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x00, /* USIM Initialization & Full File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_141b[] = {
0x81, 0x03, 0x01, 0x01, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x03,
};
static const struct terminal_response_test refresh_response_data_141b = {
.pdu = refresh_response_141b,
.pdu_len = sizeof(refresh_response_141b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x00, /* USIM Initialization & Full File Change */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_REFRESH_WITH_EFS,
},
},
};
static const unsigned char refresh_response_171[] = {
0x81, 0x03, 0x01, 0x01, 0x05, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_171 = {
.pdu = refresh_response_171,
.pdu_len = sizeof(refresh_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x05, /* USIM Application Reset */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char refresh_response_241a[] = {
0x81, 0x03, 0x01, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x02,
};
static const struct terminal_response_test refresh_response_data_241a = {
.pdu = refresh_response_241a,
.pdu_len = sizeof(refresh_response_241a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x06, /* 3G Session Reset */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* ME currently busy on call */
.additional = (unsigned char *) "\2",
},
},
};
static const unsigned char refresh_response_241b[] = {
0x81, 0x03, 0x01, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x01,
};
static const struct terminal_response_test refresh_response_data_241b = {
.pdu = refresh_response_241b,
.pdu_len = sizeof(refresh_response_241b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x06, /* 3G Session Reset */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* Screen is busy */
.additional = (unsigned char *) "\1",
},
},
};
static const unsigned char refresh_response_311[] = {
0x81, 0x03, 0x01, 0x01, 0x07, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x20,
};
static const struct terminal_response_test refresh_response_data_311 = {
.pdu = refresh_response_311,
.pdu_len = sizeof(refresh_response_311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x07, /* Steering of roaming */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
},
},
};
static const unsigned char refresh_response_312[] = {
0x81, 0x03, 0x01, 0x01, 0x07, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test refresh_response_data_312 = {
.pdu = refresh_response_312,
.pdu_len = sizeof(refresh_response_312),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_REFRESH,
.qualifier = 0x07, /* Steering of roaming */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_menu_response_111[] = {
0x81, 0x03, 0x01, 0x25, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test set_up_menu_response_data_111 = {
.pdu = set_up_menu_response_111,
.pdu_len = sizeof(set_up_menu_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_MENU,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_menu_response_411b[] = {
0x81, 0x03, 0x01, 0x25, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test set_up_menu_response_data_411b = {
.pdu = set_up_menu_response_411b,
.pdu_len = sizeof(set_up_menu_response_411b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_MENU,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char set_up_menu_response_511[] = {
0x81, 0x03, 0x01, 0x25, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test set_up_menu_response_data_511 = {
.pdu = set_up_menu_response_511,
.pdu_len = sizeof(set_up_menu_response_511),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_MENU,
.qualifier = 0x01, /* Soft key selection preferred */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char select_item_response_111[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x02,
};
static const struct terminal_response_test select_item_response_data_111 = {
.pdu = select_item_response_111,
.pdu_len = sizeof(select_item_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 2,
}},
},
};
static const unsigned char select_item_response_121[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x3d,
};
static const struct terminal_response_test select_item_response_data_121 = {
.pdu = select_item_response_121,
.pdu_len = sizeof(select_item_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 61,
}},
},
};
static const unsigned char select_item_response_131[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0xfb,
};
static const struct terminal_response_test select_item_response_data_131 = {
.pdu = select_item_response_131,
.pdu_len = sizeof(select_item_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 251,
}},
},
};
static const unsigned char select_item_response_141[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x11,
};
static const struct terminal_response_test select_item_response_data_141 = {
/* The response can be select_item_response_141 or it can optionally
* have an ITEM_ID data object appended with any id (90 01 XX). */
.pdu = select_item_response_141,
.pdu_len = sizeof(select_item_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_GO_BACK,
},
},
};
static const unsigned char select_item_response_142[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x10,
};
static const struct terminal_response_test select_item_response_data_142 = {
/* The response can be select_item_response_142 or it can optionally
* have an ITEM_ID data object appended with any id (90 01 XX). */
.pdu = select_item_response_142,
.pdu_len = sizeof(select_item_response_142),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_TERMINATED,
},
},
};
static const unsigned char select_item_response_151[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x01,
};
static const struct terminal_response_test select_item_response_data_151 = {
.pdu = select_item_response_151,
.pdu_len = sizeof(select_item_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 1,
}},
},
};
static const unsigned char select_item_response_311[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x03,
};
static const struct terminal_response_test select_item_response_data_311 = {
.pdu = select_item_response_311,
.pdu_len = sizeof(select_item_response_311),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 3,
}},
},
};
static const unsigned char select_item_response_411[] = {
0x81, 0x03, 0x01, 0x24, 0x80, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x13, 0x90, 0x01, 0x01,
};
static const struct terminal_response_test select_item_response_data_411 = {
.pdu = select_item_response_411,
.pdu_len = sizeof(select_item_response_411),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x80, /* Help information available */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_HELP_REQUESTED,
},
{ .select_item = {
.item_id = 1,
}},
},
};
static const unsigned char select_item_response_511b[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04, 0x90, 0x01, 0x01,
};
static const struct terminal_response_test select_item_response_data_511b = {
.pdu = select_item_response_511b,
.pdu_len = sizeof(select_item_response_511b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
{ .select_item = {
.item_id = 1,
}},
},
};
static const unsigned char select_item_response_611[] = {
0x81, 0x03, 0x01, 0x24, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x01,
};
static const struct terminal_response_test select_item_response_data_611 = {
.pdu = select_item_response_611,
.pdu_len = sizeof(select_item_response_611),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x03, /* Choice of navigation options */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 1,
}},
},
};
static const unsigned char select_item_response_621[] = {
0x81, 0x03, 0x01, 0x24, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x01,
};
static const struct terminal_response_test select_item_response_data_621 = {
.pdu = select_item_response_621,
.pdu_len = sizeof(select_item_response_621),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x01, /* Choice of data values presentation */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 1,
}},
},
};
static const unsigned char select_item_response_711[] = {
0x81, 0x03, 0x01, 0x24, 0x04, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x90, 0x01, 0x01,
};
static const struct terminal_response_test select_item_response_data_711 = {
.pdu = select_item_response_711,
.pdu_len = sizeof(select_item_response_711),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x04, /* Selection using soft keys preferred */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .select_item = {
.item_id = 1,
}},
},
};
static const unsigned char select_item_response_811[] = {
0x81, 0x03, 0x01, 0x24, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x12,
};
static const struct terminal_response_test select_item_response_data_811 = {
.pdu = select_item_response_811,
.pdu_len = sizeof(select_item_response_811),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SELECT_ITEM,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_RESPONSE,
},
},
};
static const unsigned char set_up_call_response_111[] = {
0x81, 0x03, 0x01, 0x10, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test set_up_call_response_data_111 = {
.pdu = set_up_call_response_111,
.pdu_len = sizeof(set_up_call_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x00, /* Only if not busy on another call */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_call_response_121[] = {
0x81, 0x03, 0x01, 0x10, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x22,
};
static const struct terminal_response_test set_up_call_response_data_121 = {
.pdu = set_up_call_response_121,
.pdu_len = sizeof(set_up_call_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x00, /* Only if not busy on another call */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_REJECT,
},
},
};
static const unsigned char set_up_call_response_141[] = {
0x81, 0x03, 0x01, 0x10, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test set_up_call_response_data_141 = {
.pdu = set_up_call_response_141,
.pdu_len = sizeof(set_up_call_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x02, /* Put all other calls on hold */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_call_response_151[] = {
0x81, 0x03, 0x01, 0x10, 0x04, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test set_up_call_response_data_151 = {
.pdu = set_up_call_response_151,
.pdu_len = sizeof(set_up_call_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x04, /* Disconnect all other calls */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_call_response_161[] = {
0x81, 0x03, 0x01, 0x10, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x02,
};
static const struct terminal_response_test set_up_call_response_data_161 = {
.pdu = set_up_call_response_161,
.pdu_len = sizeof(set_up_call_response_161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x00, /* Only if not busy on another call */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* ME currently busy on call */
.additional = (unsigned char[1]) { 0x02 },
},
},
};
static const unsigned char set_up_call_response_171a[] = {
0x81, 0x03, 0x01, 0x10, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x21, 0x00,
};
static const struct terminal_response_test set_up_call_response_data_171a = {
.pdu = set_up_call_response_171a,
.pdu_len = sizeof(set_up_call_response_171a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x02, /* Put all other calls on hold */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NETWORK_UNAVAILABLE,
.additional_len = 1, /* No specific cause given */
.additional = (unsigned char[1]) { 0x00 },
},
},
};
static const unsigned char set_up_call_response_171b[] = {
0x81, 0x03, 0x01, 0x10, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x21, 0x9d,
};
static const struct terminal_response_test set_up_call_response_data_171b = {
.pdu = set_up_call_response_171b,
.pdu_len = sizeof(set_up_call_response_171b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x02, /* Put all other calls on hold */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NETWORK_UNAVAILABLE,
.additional_len = 1, /* Facility rejected */
.additional = (unsigned char[1]) { 0x9d },
},
},
};
static const unsigned char set_up_call_response_1101[] = {
0x81, 0x03, 0x01, 0x10, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test set_up_call_response_data_1101 = {
.pdu = set_up_call_response_1101,
.pdu_len = sizeof(set_up_call_response_1101),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x01, /* Only if not busy, with redial */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_call_response_1111b[] = {
0x81, 0x03, 0x01, 0x10, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x30,
};
static const struct terminal_response_test set_up_call_response_data_1111b = {
.pdu = set_up_call_response_1111b,
.pdu_len = sizeof(set_up_call_response_1111b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x00, /* Only if not busy on another call */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NOT_CAPABLE,
},
},
};
static const unsigned char set_up_call_response_1121[] = {
0x81, 0x03, 0x01, 0x10, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x21, 0x91,
};
static const struct terminal_response_test set_up_call_response_data_1121 = {
.pdu = set_up_call_response_1121,
.pdu_len = sizeof(set_up_call_response_1121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x01, /* Only if not busy, with redial */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NETWORK_UNAVAILABLE,
.additional_len = 1, /* User busy */
.additional = (unsigned char[1]) { 0x91 },
},
},
};
static const unsigned char set_up_call_response_311b[] = {
0x81, 0x03, 0x01, 0x10, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test set_up_call_response_data_311b = {
.pdu = set_up_call_response_311b,
.pdu_len = sizeof(set_up_call_response_311b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_CALL,
.qualifier = 0x00, /* Only if not busy on another call */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char polling_off_response_112[] = {
0x81, 0x03, 0x01, 0x04, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test polling_off_response_data_112 = {
.pdu = polling_off_response_112,
.pdu_len = sizeof(polling_off_response_112),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_POLLING_OFF,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char provide_local_info_response_111a[] = {
0x81, 0x03, 0x01, 0x26, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x93, 0x07, 0x00, 0xf1,
0x10, 0x00, 0x01, 0x00, 0x01,
};
static const struct terminal_response_test
provide_local_info_response_data_111a = {
.pdu = provide_local_info_response_111a,
.pdu_len = sizeof(provide_local_info_response_111a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x00, /* Location information (MCC MNC LAC CI) */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .location = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
}},
}},
},
};
static const unsigned char provide_local_info_response_111b[] = {
0x81, 0x03, 0x01, 0x26, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x93, 0x07, 0x00, 0x11,
0x10, 0x00, 0x01, 0x00, 0x01,
};
static const struct terminal_response_test
provide_local_info_response_data_111b = {
.pdu = provide_local_info_response_111b,
.pdu_len = sizeof(provide_local_info_response_111b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x00, /* Location information (MCC MNC LAC CI) */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .location = {
.mcc = "001",
.mnc = "011",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
}},
}},
},
};
static const unsigned char provide_local_info_response_121[] = {
0x81, 0x03, 0x01, 0x26, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x94, 0x08, 0x1a, 0x32,
0x54, 0x76, 0x98, 0x10, 0x32, 0x54, /* Typo in TS 102 384? */
};
static const struct terminal_response_test
provide_local_info_response_data_121 = {
.pdu = provide_local_info_response_121,
.pdu_len = sizeof(provide_local_info_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x01, /* IMEI of the Terminal */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .imei = "123456789012345", }
}},
},
};
static const unsigned char provide_local_info_response_131[] = {
0x81, 0x03, 0x01, 0x26, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x96, 0x10, 0x34, 0x34,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x0d,
0x8c, 0x63, 0x58, 0xe2, 0x39, 0x8f, 0x63, 0xf9,
0x06, 0x45, 0x91, 0xa4, 0x90,
};
static const struct terminal_response_test
provide_local_info_response_data_131 = {
.pdu = provide_local_info_response_131,
.pdu_len = sizeof(provide_local_info_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x02, /* Network Measurement Results */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .nmr = {
.nmr = {
/* RXLEV-FULL-SERVING-CELL=52, no BA,
* no DTX */
.array = (unsigned char[16]) {
0x34, 0x34, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
},
.len = 16,
},
.bcch_ch_list = {
.channels = {
561, 565, 568, 569, 573,
575, 577, 581, 582, 585,
},
.num = 10,
.has_list = TRUE,
},
}},
}},
},
};
static const unsigned char provide_local_info_response_141[] = {
0x81, 0x03, 0x01, 0x26, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa6, 0x07, 0x20, 0x50,
0x70, 0x41, 0x80, 0x71, 0xff,
};
static const struct terminal_response_test
provide_local_info_response_data_141 = {
.pdu = provide_local_info_response_141,
.pdu_len = sizeof(provide_local_info_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x03, /* Date Time and Time Zone */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .datetime = {
.year = 2, /* 2002 - 1900 - 100 */
.month = 5,
.day = 7,
.hour = 14,
.minute = 8,
.second = 17,
.timezone = 0xff, /* No information */
}},
}},
},
};
static const unsigned char provide_local_info_response_151[] = {
0x81, 0x03, 0x01, 0x26, 0x04, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xad, 0x02, 0x65, 0x6e,
};
static const struct terminal_response_test
provide_local_info_response_data_151 = {
.pdu = provide_local_info_response_151,
.pdu_len = sizeof(provide_local_info_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x04, /* Language setting */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .language = "en", }
}},
},
};
static const unsigned char provide_local_info_response_161[] = {
0x81, 0x03, 0x01, 0x26, 0x05, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xae, 0x02, 0x00, 0x00,
};
static const struct terminal_response_test
provide_local_info_response_data_161 = {
.pdu = provide_local_info_response_161,
.pdu_len = sizeof(provide_local_info_response_161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x05, /* Timing Advance */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .tadv = {
.status = STK_ME_STATUS_IDLE,
.advance = 0,
}},
}},
},
};
static const unsigned char provide_local_info_response_171[] = {
0x81, 0x03, 0x01, 0x26, 0x06, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x3f, 0x01, 0x03,
};
static const struct terminal_response_test
provide_local_info_response_data_171 = {
.pdu = provide_local_info_response_171,
.pdu_len = sizeof(provide_local_info_response_171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x06, /* Access technology */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .access_technology = STK_ACCESS_TECHNOLOGY_UTRAN, }
}},
},
};
static const unsigned char provide_local_info_response_181[] = {
0x81, 0x03, 0x01, 0x26, 0x07, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xc6, 0x04, 0x01, 0x02,
0x03, 0x04,
};
static const struct terminal_response_test
provide_local_info_response_data_181 = {
.pdu = provide_local_info_response_181,
.pdu_len = sizeof(provide_local_info_response_181),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x07, /* ESN of the terminal */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .esn = 0x01020304, }
}},
},
};
static const unsigned char provide_local_info_response_191[] = {
0x81, 0x03, 0x01, 0x26, 0x08, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xe2, 0x09, 0x13, 0x32,
0x54, 0x76, 0x98, 0x10, 0x32, 0x54, 0xf6,
};
static const struct terminal_response_test
provide_local_info_response_data_191 = {
.pdu = provide_local_info_response_191,
.pdu_len = sizeof(provide_local_info_response_191),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x08, /* IMEISV of the terminal */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .imeisv = "1234567890123456", }
}},
},
};
static const unsigned char provide_local_info_response_1111[] = {
0x81, 0x03, 0x01, 0x26, 0x0a, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xe3, 0x01, 0x04,
};
static const struct terminal_response_test
provide_local_info_response_data_1111 = {
.pdu = provide_local_info_response_1111,
.pdu_len = sizeof(provide_local_info_response_1111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x0a, /* Charge state of the battery */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .battery_charge = STK_BATTERY_FULL, }
}},
},
};
static const unsigned char provide_local_info_response_1121[] = {
0x81, 0x03, 0x01, 0x26, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x96, 0x02, 0x80, 0x00,
/* Intra-frequency UTRAN Measurement report in ASN.1 goes here */
/* "The remaining bytes shall not be verified" */
};
static const struct terminal_response_test
provide_local_info_response_data_1121 = {
.pdu = provide_local_info_response_1121,
.pdu_len = sizeof(provide_local_info_response_1121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x02, /* Network Measurement Results */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .nmr = {
.nmr = {
.array = (unsigned char[2])
{ 0x80, 0x00 },
.len = 2,
},
}},
}},
},
};
static const unsigned char provide_local_info_response_1131[] = {
0x81, 0x03, 0x01, 0x26, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x96, 0x02, 0x80, 0x11,
/* Inter-frequency UTRAN Measurement report in ASN.1 goes here */
/* "The remaining bytes shall not be verified" */
};
static const struct terminal_response_test
provide_local_info_response_data_1131 = {
.pdu = provide_local_info_response_1131,
.pdu_len = sizeof(provide_local_info_response_1131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x02, /* Network Measurement Results */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .nmr = {
.nmr = {
.array = (unsigned char[2])
{ 0x80, 0x11},
.len = 2,
},
}},
}},
},
};
static const unsigned char provide_local_info_response_1141[] = {
0x81, 0x03, 0x01, 0x26, 0x06, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x3f, 0x01, 0x08,
};
static const struct terminal_response_test
provide_local_info_response_data_1141 = {
.pdu = provide_local_info_response_1141,
.pdu_len = sizeof(provide_local_info_response_1141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x06, /* Access technology */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .access_technology = STK_ACCESS_TECHNOLOGY_EUTRAN, }
}},
},
};
static const unsigned char provide_local_info_response_1151[] = {
0x81, 0x03, 0x01, 0x26, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x96, 0x02, 0x80, 0x00,
/* Intra-frequency E-UTRAN Measurement report in ASN.1 goes here */
/* "The remaining bytes shall not be verified" */
};
static const struct terminal_response_test
provide_local_info_response_data_1151 = {
.pdu = provide_local_info_response_1151,
.pdu_len = sizeof(provide_local_info_response_1151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x02, /* Network Measurement Results */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .nmr = {
.nmr = {
.array = (unsigned char[2])
{ 0x80, 0x00},
.len = 2,
},
}},
}},
},
};
static const unsigned char provide_local_info_response_1161[] = {
0x81, 0x03, 0x01, 0x26, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x96, 0x02, 0x80, 0x11,
/* Inter-frequency E-UTRAN Measurement report in ASN.1 goes here */
/* "The remaining bytes shall not be verified" */
};
static const struct terminal_response_test
provide_local_info_response_data_1161 = {
.pdu = provide_local_info_response_1161,
.pdu_len = sizeof(provide_local_info_response_1161),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x02, /* Network Measurement Results */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .nmr = {
.nmr = {
.array = (unsigned char[2])
{ 0x80, 0x11},
.len = 2,
},
}},
}},
},
};
static const unsigned char provide_local_info_response_1171[] = {
0x81, 0x03, 0x01, 0x26, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0x93, 0x09, 0x00, 0xf1,
0x10, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1f,
/* Typo in TS 102 223? Byte 18 changed to 01 here */
};
static const struct terminal_response_test
provide_local_info_response_data_1171 = {
.pdu = provide_local_info_response_1171,
.pdu_len = sizeof(provide_local_info_response_1171),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_PROVIDE_LOCAL_INFO,
.qualifier = 0x00, /* Location information (MCC MNC LAC CI) */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .provide_local_info = {
{ .location = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0001,
.has_eutran_ci = TRUE,
.eutran_ci = 0x0000001,
}},
}},
},
};
static const unsigned char set_up_event_list_response_111[] = {
0x81, 0x03, 0x01, 0x05, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test
set_up_event_list_response_data_111 = {
.pdu = set_up_event_list_response_111,
.pdu_len = sizeof(set_up_event_list_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_EVENT_LIST,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char timer_mgmt_response_111[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x01,
};
static const struct terminal_response_test timer_mgmt_response_data_111 = {
.pdu = timer_mgmt_response_111,
.pdu_len = sizeof(timer_mgmt_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 1,
}},
},
};
static const unsigned char timer_mgmt_response_112[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x01, 0xa5,
0x03, 0x00, 0x30, 0x95,
};
static const struct terminal_response_test timer_mgmt_response_data_112 = {
.pdu = timer_mgmt_response_112,
.pdu_len = sizeof(timer_mgmt_response_112),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 1,
.value = {
.minute = 3,
.second = 59,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_mgmt_response_114[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x01, 0xa5,
0x03, 0x00, 0x00, 0x95,
};
static const struct terminal_response_test timer_mgmt_response_data_114 = {
.pdu = timer_mgmt_response_114,
.pdu_len = sizeof(timer_mgmt_response_114),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 1,
.value = {
.second = 59,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_mgmt_response_121[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x02,
};
static const struct terminal_response_test timer_mgmt_response_data_121 = {
.pdu = timer_mgmt_response_121,
.pdu_len = sizeof(timer_mgmt_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 2,
}},
},
};
static const unsigned char timer_mgmt_response_122[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x02, 0xa5,
0x03, 0x32, 0x85, 0x85,
};
static const struct terminal_response_test timer_mgmt_response_data_122 = {
.pdu = timer_mgmt_response_122,
.pdu_len = sizeof(timer_mgmt_response_122),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 2,
.value = {
.hour = 23,
.minute = 58,
.second = 58,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_mgmt_response_124[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x02, 0xa5,
0x03, 0x00, 0x00, 0x95,
};
static const struct terminal_response_test timer_mgmt_response_data_124 = {
.pdu = timer_mgmt_response_124,
.pdu_len = sizeof(timer_mgmt_response_124),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 2,
.value = {
.second = 59,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_mgmt_response_131[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x08,
};
static const struct terminal_response_test timer_mgmt_response_data_131 = {
.pdu = timer_mgmt_response_131,
.pdu_len = sizeof(timer_mgmt_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 8,
}},
},
};
static const unsigned char timer_mgmt_response_132[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x08, 0xa5,
0x03, 0x00, 0x81, 0x95,
};
static const struct terminal_response_test timer_mgmt_response_data_132 = {
.pdu = timer_mgmt_response_132,
.pdu_len = sizeof(timer_mgmt_response_132),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 8,
.value = {
.minute = 18,
.second = 59,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_mgmt_response_134[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x08, 0xa5,
0x03, 0x00, 0x95, 0x92,
};
static const struct terminal_response_test timer_mgmt_response_data_134 = {
.pdu = timer_mgmt_response_134,
.pdu_len = sizeof(timer_mgmt_response_134),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 8,
.value = {
.minute = 59,
.second = 29,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_mgmt_response_141a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x01,
};
static const struct terminal_response_test timer_mgmt_response_data_141a = {
.pdu = timer_mgmt_response_141a,
.pdu_len = sizeof(timer_mgmt_response_141a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 1,
}},
},
};
static const unsigned char timer_mgmt_response_141b[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24,
};
static const struct terminal_response_test timer_mgmt_response_data_141b = {
.pdu = timer_mgmt_response_141b,
.pdu_len = sizeof(timer_mgmt_response_141b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
},
};
static const unsigned char timer_mgmt_response_142a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x02,
};
static const struct terminal_response_test timer_mgmt_response_data_142a = {
.pdu = timer_mgmt_response_142a,
.pdu_len = sizeof(timer_mgmt_response_142a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 2,
}},
},
};
static const unsigned char timer_mgmt_response_143a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x03,
};
static const struct terminal_response_test timer_mgmt_response_data_143a = {
.pdu = timer_mgmt_response_143a,
.pdu_len = sizeof(timer_mgmt_response_143a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 3,
}},
},
};
static const unsigned char timer_mgmt_response_144a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x04,
};
static const struct terminal_response_test timer_mgmt_response_data_144a = {
.pdu = timer_mgmt_response_144a,
.pdu_len = sizeof(timer_mgmt_response_144a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 4,
}},
},
};
static const unsigned char timer_mgmt_response_145a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x05,
};
static const struct terminal_response_test timer_mgmt_response_data_145a = {
.pdu = timer_mgmt_response_145a,
.pdu_len = sizeof(timer_mgmt_response_145a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 5,
}},
},
};
static const unsigned char timer_mgmt_response_146a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x06,
};
static const struct terminal_response_test timer_mgmt_response_data_146a = {
.pdu = timer_mgmt_response_146a,
.pdu_len = sizeof(timer_mgmt_response_146a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 6,
}},
},
};
static const unsigned char timer_mgmt_response_147a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x07,
};
static const struct terminal_response_test timer_mgmt_response_data_147a = {
.pdu = timer_mgmt_response_147a,
.pdu_len = sizeof(timer_mgmt_response_147a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 7,
}},
},
};
static const unsigned char timer_mgmt_response_148a[] = {
0x81, 0x03, 0x01, 0x27, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x08,
};
static const struct terminal_response_test timer_mgmt_response_data_148a = {
.pdu = timer_mgmt_response_148a,
.pdu_len = sizeof(timer_mgmt_response_148a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x02, /* Get the current value of the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 8,
}},
},
};
static const unsigned char timer_mgmt_response_151a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x01,
};
static const struct terminal_response_test timer_mgmt_response_data_151a = {
.pdu = timer_mgmt_response_151a,
.pdu_len = sizeof(timer_mgmt_response_151a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 1,
}},
},
};
static const unsigned char timer_mgmt_response_151b[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24,
};
static const struct terminal_response_test timer_mgmt_response_data_151b = {
.pdu = timer_mgmt_response_151b,
.pdu_len = sizeof(timer_mgmt_response_151b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
},
};
static const unsigned char timer_mgmt_response_152a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x02,
};
static const struct terminal_response_test timer_mgmt_response_data_152a = {
.pdu = timer_mgmt_response_152a,
.pdu_len = sizeof(timer_mgmt_response_152a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 2,
}},
},
};
static const unsigned char timer_mgmt_response_153a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x03,
};
static const struct terminal_response_test timer_mgmt_response_data_153a = {
.pdu = timer_mgmt_response_153a,
.pdu_len = sizeof(timer_mgmt_response_153a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 3,
}},
},
};
static const unsigned char timer_mgmt_response_154a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x04,
};
static const struct terminal_response_test timer_mgmt_response_data_154a = {
.pdu = timer_mgmt_response_154a,
.pdu_len = sizeof(timer_mgmt_response_154a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 4,
}},
},
};
static const unsigned char timer_mgmt_response_155a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x05,
};
static const struct terminal_response_test timer_mgmt_response_data_155a = {
.pdu = timer_mgmt_response_155a,
.pdu_len = sizeof(timer_mgmt_response_155a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 5,
}},
},
};
static const unsigned char timer_mgmt_response_156a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x06,
};
static const struct terminal_response_test timer_mgmt_response_data_156a = {
.pdu = timer_mgmt_response_156a,
.pdu_len = sizeof(timer_mgmt_response_156a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 6,
}},
},
};
static const unsigned char timer_mgmt_response_157a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x07,
};
static const struct terminal_response_test timer_mgmt_response_data_157a = {
.pdu = timer_mgmt_response_157a,
.pdu_len = sizeof(timer_mgmt_response_157a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 7,
}},
},
};
static const unsigned char timer_mgmt_response_158a[] = {
0x81, 0x03, 0x01, 0x27, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x24, 0xa4, 0x01, 0x08,
};
static const struct terminal_response_test timer_mgmt_response_data_158a = {
.pdu = timer_mgmt_response_158a,
.pdu_len = sizeof(timer_mgmt_response_158a),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x01, /* Deactivate the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TIMER_CONFLICT,
},
{ .timer_mgmt = {
.id = 8,
}},
},
};
static const unsigned char timer_mgmt_response_163[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x03,
};
static const struct terminal_response_test timer_mgmt_response_data_163 = {
.pdu = timer_mgmt_response_163,
.pdu_len = sizeof(timer_mgmt_response_163),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 3,
}},
},
};
static const unsigned char timer_mgmt_response_164[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x04,
};
static const struct terminal_response_test timer_mgmt_response_data_164 = {
.pdu = timer_mgmt_response_164,
.pdu_len = sizeof(timer_mgmt_response_164),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 4,
}},
},
};
static const unsigned char timer_mgmt_response_165[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x05,
};
static const struct terminal_response_test timer_mgmt_response_data_165 = {
.pdu = timer_mgmt_response_165,
.pdu_len = sizeof(timer_mgmt_response_165),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 5,
}},
},
};
static const unsigned char timer_mgmt_response_166[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x06,
};
static const struct terminal_response_test timer_mgmt_response_data_166 = {
.pdu = timer_mgmt_response_166,
.pdu_len = sizeof(timer_mgmt_response_166),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 6,
}},
},
};
static const unsigned char timer_mgmt_response_167[] = {
0x81, 0x03, 0x01, 0x27, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xa4, 0x01, 0x07,
};
static const struct terminal_response_test timer_mgmt_response_data_167 = {
.pdu = timer_mgmt_response_167,
.pdu_len = sizeof(timer_mgmt_response_167),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_TIMER_MANAGEMENT,
.qualifier = 0x00, /* Start the Timer */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .timer_mgmt = {
.id = 7,
}},
},
};
static const unsigned char set_up_idle_mode_text_response_111[] = {
0x81, 0x03, 0x01, 0x28, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test
set_up_idle_mode_text_response_data_111 = {
.pdu = set_up_idle_mode_text_response_111,
.pdu_len = sizeof(set_up_idle_mode_text_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char set_up_idle_mode_text_response_211b[] = {
0x81, 0x03, 0x01, 0x28, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test
set_up_idle_mode_text_response_data_211b = {
.pdu = set_up_idle_mode_text_response_211b,
.pdu_len = sizeof(set_up_idle_mode_text_response_211b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char set_up_idle_mode_text_response_241[] = {
0x81, 0x03, 0x01, 0x28, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x32,
};
static const struct terminal_response_test
set_up_idle_mode_text_response_data_241 = {
.pdu = set_up_idle_mode_text_response_241,
.pdu_len = sizeof(set_up_idle_mode_text_response_241),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SETUP_IDLE_MODE_TEXT,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_DATA_NOT_UNDERSTOOD,
},
},
};
static const unsigned char run_at_command_response_111[] = {
0x81, 0x03, 0x01, 0x34, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00, 0xA9, 0x05, 0x2b, 0x43,
0x47, 0x4d, 0x49,
};
static const struct terminal_response_test run_at_command_response_data_111 = {
.pdu = run_at_command_response_111,
.pdu_len = sizeof(run_at_command_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_RUN_AT_COMMAND,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .run_at_command = {
.at_response = "+CGMI",
}},
},
};
static const unsigned char run_at_command_response_211b[] = {
0x81, 0x03, 0x01, 0x34, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04, 0xA9, 0x05, 0x2b, 0x43,
0x47, 0x4d, 0x49,
};
static const struct terminal_response_test run_at_command_response_data_211b = {
.pdu = run_at_command_response_211b,
.pdu_len = sizeof(run_at_command_response_211b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_RUN_AT_COMMAND,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
{ .run_at_command = {
.at_response = "+CGMI",
}},
},
};
static const unsigned char run_at_command_response_251[] = {
0x81, 0x03, 0x01, 0x34, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x32,
};
static const struct terminal_response_test run_at_command_response_data_251 = {
.pdu = run_at_command_response_251,
.pdu_len = sizeof(run_at_command_response_251),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_RUN_AT_COMMAND,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_DATA_NOT_UNDERSTOOD,
},
},
};
static const unsigned char send_dtmf_response_111[] = {
0x81, 0x03, 0x01, 0x14, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test send_dtmf_response_data_111 = {
.pdu = send_dtmf_response_111,
.pdu_len = sizeof(send_dtmf_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_DTMF,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char send_dtmf_response_141[] = {
0x81, 0x03, 0x01, 0x14, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x20, 0x07,
};
static const struct terminal_response_test send_dtmf_response_data_141 = {
.pdu = send_dtmf_response_141,
.pdu_len = sizeof(send_dtmf_response_141),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_DTMF,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_TERMINAL_BUSY,
.additional_len = 1, /* Not in speech call */
.additional = (unsigned char[1]) { 0x07 },
},
},
};
static const unsigned char send_dtmf_response_211b[] = {
0x81, 0x03, 0x01, 0x14, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test send_dtmf_response_data_211b = {
.pdu = send_dtmf_response_211b,
.pdu_len = sizeof(send_dtmf_response_211b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_DTMF,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char language_notification_response_111[] = {
0x81, 0x03, 0x01, 0x35, 0x01, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test
language_notification_response_data_111 = {
.pdu = language_notification_response_111,
.pdu_len = sizeof(language_notification_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LANGUAGE_NOTIFICATION,
.qualifier = 0x01,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char language_notification_response_121[] = {
0x81, 0x03, 0x01, 0x35, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test
language_notification_response_data_121 = {
.pdu = language_notification_response_121,
.pdu_len = sizeof(language_notification_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LANGUAGE_NOTIFICATION,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char launch_browser_response_111[] = {
0x81, 0x03, 0x01, 0x15, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test launch_browser_response_data_111 = {
.pdu = launch_browser_response_111,
.pdu_len = sizeof(launch_browser_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LAUNCH_BROWSER,
.qualifier = 0x00, /* Launch browser, if not running */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char launch_browser_response_211[] = {
0x81, 0x03, 0x01, 0x15, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test launch_browser_response_data_211 = {
.pdu = launch_browser_response_211,
.pdu_len = sizeof(launch_browser_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LAUNCH_BROWSER,
.qualifier = 0x02, /* Use the existing browser */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char launch_browser_response_221[] = {
0x81, 0x03, 0x01, 0x15, 0x03, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x00,
};
static const struct terminal_response_test launch_browser_response_data_221 = {
.pdu = launch_browser_response_221,
.pdu_len = sizeof(launch_browser_response_221),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LAUNCH_BROWSER,
.qualifier = 0x03, /* Re-start browser session */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
},
};
static const unsigned char launch_browser_response_231[] = {
0x81, 0x03, 0x01, 0x15, 0x00, 0x82, 0x02, 0x82,
0x81, 0x83, 0x02, 0x26, 0x02,
};
static const struct terminal_response_test launch_browser_response_data_231 = {
.pdu = launch_browser_response_231,
.pdu_len = sizeof(launch_browser_response_231),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LAUNCH_BROWSER,
.qualifier = 0x00, /* Launch browser, if not running */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_BROWSER_TEMPORARY,
.additional_len = 1, /* Browser unavailable */
.additional = (unsigned char[1]) { 0x02 },
},
},
};
static const unsigned char launch_browser_response_411b[] = {
0x81, 0x03, 0x01, 0x15, 0x02, 0x82, 0x02, 0x82,
0x81, 0x83, 0x01, 0x04,
};
static const struct terminal_response_test launch_browser_response_data_411b = {
.pdu = launch_browser_response_411b,
.pdu_len = sizeof(launch_browser_response_411b),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_LAUNCH_BROWSER,
.qualifier = 0x02, /* Use the existing browser */
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_NO_ICON,
},
},
};
static const unsigned char open_channel_response_211[] = {
0x81, 0x03, 0x01, 0x40, 0x01, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0x38, 0x02, 0x81, 0x00, 0x35, 0x07, 0x02, 0x03,
0x04, 0x03, 0x04, 0x1F, 0x02, 0x39, 0x02, 0x05, 0x78,
};
static const struct terminal_response_test open_channel_response_data_211 = {
.pdu = open_channel_response_211,
.pdu_len = sizeof(open_channel_response_211),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_OPEN_CHANNEL,
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .open_channel = {
.channel = {
.id = 1,
.status = STK_CHANNEL_PACKET_DATA_SERVICE_ACTIVATED,
},
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
} },
},
};
static const unsigned char open_channel_response_271[] = {
0x81, 0x03, 0x01, 0x40, 0x01, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x22, 0x35, 0x07, 0x02, 0x03, 0x04, 0x03, 0x04, 0x1F,
0x02, 0x39, 0x02, 0x05, 0x78,
};
static const struct terminal_response_test open_channel_response_data_271 = {
.pdu = open_channel_response_271,
.pdu_len = sizeof(open_channel_response_271),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_OPEN_CHANNEL,
.qualifier = STK_OPEN_CHANNEL_FLAG_IMMEDIATE,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_USER_REJECT,
},
{ .open_channel = {
.bearer_desc = {
.type = STK_BEARER_TYPE_GPRS_UTRAN,
.gprs = {
.precedence = 3,
.delay = 4,
.reliability = 3,
.peak = 4,
.mean = 31,
.pdp_type = 2,
},
},
.buf_size = 1400,
} },
},
};
static const unsigned char close_channel_response_121[] = {
0x81, 0x03, 0x01, 0x41, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x02, 0x3A, 0x03,
};
static const struct terminal_response_test close_channel_response_data_121 = {
.pdu = close_channel_response_121,
.pdu_len = sizeof(close_channel_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_CLOSE_CHANNEL,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_BIP_ERROR,
.additional_len = 1, /* Channel identifier not valid */
.additional = (unsigned char[1]) { 0x03 },
},
},
};
static const unsigned char close_channel_response_131[] = {
0x81, 0x03, 0x01, 0x41, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x02, 0x3A, 0x02,
};
static const struct terminal_response_test close_channel_response_data_131 = {
.pdu = close_channel_response_131,
.pdu_len = sizeof(close_channel_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_CLOSE_CHANNEL,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_BIP_ERROR,
.additional_len = 1, /* Channel already closed */
.additional = (unsigned char[1]) { 0x02 },
},
},
};
static const unsigned char receive_data_response_111[] = {
0x81, 0x03, 0x01, 0x42, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0xB6, 0x81, 0xC8, 0xc8, 0xc9, 0xca, 0xcb, 0xcc,
0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, 0xe0,
0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea,
0xeb, 0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, 0xf4,
0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe,
0xff, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12,
0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c,
0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26,
0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30,
0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a,
0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44,
0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e,
0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 0x62,
0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c,
0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
0x77, 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80,
0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0xB7, 0x01, 0xFF,
};
static const struct terminal_response_test receive_data_response_data_111 = {
.pdu = receive_data_response_111,
.pdu_len = sizeof(receive_data_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_RECEIVE_DATA,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .receive_data = {
.rx_data = {
.array = (unsigned char[200]) {
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd,
0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3,
0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9,
0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5,
0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,
0xec, 0xed, 0xee, 0xef, 0xf0, 0xf1,
0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd,
0xfe, 0xff, 0x00, 0x01, 0x02, 0x03,
0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15,
0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b,
0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21,
0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d,
0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33,
0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45,
0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b,
0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51,
0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d,
0x5e, 0x5f, 0x60, 0x61, 0x62, 0x63,
0x64, 0x65, 0x66, 0x67, 0x68, 0x69,
0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
0x76, 0x77, 0x78, 0x79, 0x7a, 0x7b,
0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81,
0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d,
0x8e, 0x8f,
},
.len = 200,
},
.rx_remaining = 0xFF,
} },
},
};
static const unsigned char send_data_response_111[] = {
0x81, 0x03, 0x01, 0x43, 0x01, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0xB7, 0x01, 0xFF,
};
static const struct terminal_response_test send_data_response_data_111 = {
.pdu = send_data_response_111,
.pdu_len = sizeof(send_data_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_DATA,
.qualifier = STK_SEND_DATA_IMMEDIATELY,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .send_data = {
/* More than 255 bytes of space available */
.tx_avail = 0xFF,
} },
},
};
static const unsigned char send_data_response_121[] = {
0x81, 0x03, 0x01, 0x43, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0xB7, 0x01, 0xFF,
};
static const struct terminal_response_test send_data_response_data_121 = {
.pdu = send_data_response_121,
.pdu_len = sizeof(send_data_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_DATA,
.qualifier = STK_SEND_DATA_STORE_DATA,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .send_data = {
/* More than 255 bytes of space available */
.tx_avail = 0xFF,
} },
},
};
static const unsigned char send_data_response_151[] = {
0x81, 0x03, 0x01, 0x43, 0x01, 0x82, 0x02, 0x82, 0x81, 0x83,
0x02, 0x3A, 0x03,
};
static const struct terminal_response_test send_data_response_data_151 = {
.pdu = send_data_response_151,
.pdu_len = sizeof(send_data_response_151),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_SEND_DATA,
.qualifier = STK_SEND_DATA_IMMEDIATELY,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_BIP_ERROR,
.additional_len = 1, /* Channel identifier not valid */
.additional = (unsigned char[1]) { 0x03 },
},
},
};
static const unsigned char get_channel_status_response_111[] = {
0x81, 0x03, 0x01, 0x44, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0xB8, 0x02, 0x00, 0x00,
};
static const struct terminal_response_test
get_channel_status_response_data_111 = {
.pdu = get_channel_status_response_111,
.pdu_len = sizeof(get_channel_status_response_111),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_CHANNEL_STATUS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .channel_status = {
/*
* No Channel available, link not established or
* PDP context not activated
*/
.channel = {
.id = 0,
.status =
STK_CHANNEL_PACKET_DATA_SERVICE_NOT_ACTIVATED,
}
} },
},
};
static const unsigned char get_channel_status_response_121[] = {
0x81, 0x03, 0x01, 0x44, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0xB8, 0x02, 0x81, 0x00,
};
static const struct terminal_response_test
get_channel_status_response_data_121 = {
.pdu = get_channel_status_response_121,
.pdu_len = sizeof(get_channel_status_response_121),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_CHANNEL_STATUS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .channel_status = {
/* Channel 1 open, link established or PDP context activated */
.channel = {
.id = 1,
.status =
STK_CHANNEL_PACKET_DATA_SERVICE_ACTIVATED,
},
} },
},
};
static const unsigned char get_channel_status_response_131[] = {
0x81, 0x03, 0x01, 0x44, 0x00, 0x82, 0x02, 0x82, 0x81, 0x83,
0x01, 0x00, 0xB8, 0x02, 0x01, 0x05,
};
static const struct terminal_response_test
get_channel_status_response_data_131 = {
.pdu = get_channel_status_response_131,
.pdu_len = sizeof(get_channel_status_response_131),
.response = {
.number = 1,
.type = STK_COMMAND_TYPE_GET_CHANNEL_STATUS,
.qualifier = 0x00,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
.result = {
.type = STK_RESULT_TYPE_SUCCESS,
},
{ .channel_status = {
/* Channel 1, link dropped */
.channel = {
.id = 1,
.status = STK_CHANNEL_LINK_DROPPED,
},
} },
},
};
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,
.has_timezone = TRUE,
.timezone = 0,
},
.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,
.has_timezone = TRUE,
.timezone = 0,
},
.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,
.has_timezone = TRUE,
.timezone = 0,
},
.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,
},
},
}},
},
};
static const unsigned char cbs_pp_data_download_11[] = {
0xd2, 0x5e, 0x82, 0x02, 0x83, 0x81, 0x8c, 0x58,
0xc0, 0x11, 0x10, 0x01, 0x01, 0x11, 0xc3, 0x32,
0x9b, 0x0d, 0x12, 0xca, 0xdf, 0x61, 0xf2, 0x38,
0x3c, 0xa7, 0x83, 0x40, 0x20, 0x10, 0x08, 0x04,
0x02, 0x81, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
0x81, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x81,
0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x81, 0x40,
0x20, 0x10, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20,
0x10, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10,
0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x08,
0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x08, 0x04,
0x02, 0x81, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
};
static const struct envelope_test cbs_pp_data_download_data_11 = {
.pdu = cbs_pp_data_download_11,
.pdu_len = sizeof(cbs_pp_data_download_11),
.envelope = {
.type = STK_ENVELOPE_TYPE_CBS_PP_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .cbs_pp_download = {
.page = {
.gs = CBS_GEO_SCOPE_CELL_NORMAL,
.message_code = 1,
.update_number = 1,
.message_identifier = 0x1001,
.dcs = CBS_LANGUAGE_ENGLISH, /* GSM 7-bit */
.max_pages = 1,
.page = 1,
.ud = {
/* 7-bit "Cell Broadcast " repeated */
0xc3, 0x32, 0x9b, 0x0d, 0x12, 0xca,
0xdf, 0x61, 0xf2, 0x38, 0x3c, 0xa7,
0x83, 0x40, 0x20, 0x10, 0x08, 0x04,
0x02, 0x81, 0x40, 0x20, 0x10, 0x08,
0x04, 0x02, 0x81, 0x40, 0x20, 0x10,
0x08, 0x04, 0x02, 0x81, 0x40, 0x20,
0x10, 0x08, 0x04, 0x02, 0x81, 0x40,
0x20, 0x10, 0x08, 0x04, 0x02, 0x81,
0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
0x81, 0x40, 0x20, 0x10, 0x08, 0x04,
0x02, 0x81, 0x40, 0x20, 0x10, 0x08,
0x04, 0x02, 0x81, 0x40, 0x20, 0x10,
0x08, 0x04, 0x02, 0x81, 0x40, 0x20,
0x10, 0x08, 0x04, 0x02,
},
},
}},
},
};
static const unsigned char cbs_pp_data_download_17[] = {
0xd2, 0x5e, 0x82, 0x02, 0x83, 0x81, 0x8c, 0x58,
0xc0, 0x11, 0x10, 0x01, 0x96, 0x11, 0x02, 0x70,
0x00, 0x00, 0x4d, 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, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
};
static const struct envelope_test cbs_pp_data_download_data_17 = {
.pdu = cbs_pp_data_download_17,
.pdu_len = sizeof(cbs_pp_data_download_17),
.envelope = {
.type = STK_ENVELOPE_TYPE_CBS_PP_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .cbs_pp_download = {
.page = {
.gs = CBS_GEO_SCOPE_CELL_NORMAL,
.message_code = 1,
.update_number = 1,
.message_identifier = 0x1001,
.dcs = SMS_CLASS_2 | (SMS_CHARSET_8BIT << 2) |
(9 << 4), /* UDHI present */
.max_pages = 1,
.page = 1,
.ud = {
/* Secured User Header */
0x02, 0x70, 0x00, 0x00, 0x4d, 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,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
0xdc, 0xdc, 0xdc, 0xdc,
},
},
}},
},
};
static const unsigned char menu_selection_111[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x02,
};
static const struct envelope_test menu_selection_data_111 = {
.pdu = menu_selection_111,
.pdu_len = sizeof(menu_selection_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x2,
}},
},
};
static const unsigned char menu_selection_112[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x12,
};
static const struct envelope_test menu_selection_data_112 = {
.pdu = menu_selection_112,
.pdu_len = sizeof(menu_selection_112),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x12,
}},
},
};
static const unsigned char menu_selection_121[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x3d,
};
static const struct envelope_test menu_selection_data_121 = {
.pdu = menu_selection_121,
.pdu_len = sizeof(menu_selection_121),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x3d,
}},
},
};
static const unsigned char menu_selection_122[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0xfb,
};
static const struct envelope_test menu_selection_data_122 = {
.pdu = menu_selection_122,
.pdu_len = sizeof(menu_selection_122),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0xfb,
}},
},
};
static const unsigned char menu_selection_123[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x01,
};
static const struct envelope_test menu_selection_data_123 = {
.pdu = menu_selection_123,
.pdu_len = sizeof(menu_selection_123),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x1,
}},
},
};
static const unsigned char menu_selection_211[] = {
0xd3, 0x09, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x02, 0x15, 0x00,
};
static const struct envelope_test menu_selection_data_211 = {
.pdu = menu_selection_211,
.pdu_len = sizeof(menu_selection_211),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x2,
.help_request = TRUE,
}},
},
};
static const unsigned char menu_selection_612[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x05,
};
static const struct envelope_test menu_selection_data_612 = {
.pdu = menu_selection_612,
.pdu_len = sizeof(menu_selection_612),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x5,
}},
},
};
static const unsigned char menu_selection_641[] = {
0xd3, 0x07, 0x82, 0x02, 0x01, 0x81, 0x90, 0x01,
0x08,
};
static const struct envelope_test menu_selection_data_641 = {
.pdu = menu_selection_641,
.pdu_len = sizeof(menu_selection_641),
.envelope = {
.type = STK_ENVELOPE_TYPE_MENU_SELECTION,
.src = STK_DEVICE_IDENTITY_TYPE_KEYPAD,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .menu_selection = {
.item_id = 0x8,
}},
},
};
static const unsigned char call_control_111a[] = {
0xd4, 0x25, 0x82, 0x02, 0x82, 0x81, 0x86, 0x0b,
0x91, 0x10, 0x32, 0x54, 0x76, 0x98, 0x10, 0x32,
0x54, 0x76, 0x98, 0x07, 0x07, 0x06, 0x60, 0x04,
0x02, 0x00, 0x05, 0x81, 0x13, 0x09, 0x00, 0xf1,
0x10, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
};
static const struct envelope_test call_control_data_111a = {
.pdu = call_control_111a,
.pdu_len = sizeof(call_control_111a),
.envelope = {
.type = STK_ENVELOPE_TYPE_CALL_CONTROL,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .call_control = {
.type = STK_CC_TYPE_CALL_SETUP,
{ .address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "01234567890123456789",
}},
.ccp1 = {
.ccp = {
0x60, 0x04, 0x02, 0x00, 0x05, 0x81,
},
.len = 6,
},
.location = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
.has_ext_ci = TRUE,
.ext_ci = 0x0001,
},
}},
},
};
static const unsigned char call_control_111b[] = {
0xd4, 0x23, 0x82, 0x02, 0x82, 0x81, 0x86, 0x0b,
0x91, 0x10, 0x32, 0x54, 0x76, 0x98, 0x10, 0x32,
0x54, 0x76, 0x98, 0x07, 0x07, 0x06, 0x60, 0x04,
0x02, 0x00, 0x05, 0x81, 0x13, 0x07, 0x00, 0x11,
0x10, 0x00, 0x01, 0x00, 0x01,
};
static const struct envelope_test call_control_data_111b = {
.pdu = call_control_111b,
.pdu_len = sizeof(call_control_111b),
.envelope = {
.type = STK_ENVELOPE_TYPE_CALL_CONTROL,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .call_control = {
.type = STK_CC_TYPE_CALL_SETUP,
{ .address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "01234567890123456789",
}},
.ccp1 = {
.ccp = {
0x60, 0x04, 0x02, 0x00, 0x05, 0x81,
},
.len = 6,
},
.location = {
.mcc = "001",
.mnc = "011",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
},
}},
},
};
static const unsigned char call_control_131a[] = {
0xd4, 0x18, 0x82, 0x02, 0x82, 0x81, 0x86, 0x07,
0x91, 0x10, 0x32, 0x04, 0x21, 0x43, 0x65, 0x13,
0x09, 0x00, 0xf1, 0x10, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01,
/*
* Byte 3 changed to 0x82 and byte 7 changed to 0x86 (Comprehension
* Required should be set according to TS 102 223 7.3.1.6)
*/
};
static const struct envelope_test call_control_data_131a = {
.pdu = call_control_131a,
.pdu_len = sizeof(call_control_131a),
.envelope = {
.type = STK_ENVELOPE_TYPE_CALL_CONTROL,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .call_control = {
.type = STK_CC_TYPE_CALL_SETUP,
{ .address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "012340123456",
}},
.location = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
.has_ext_ci = TRUE,
.ext_ci = 0x0001,
},
}},
},
};
static const unsigned char call_control_131b[] = {
0xd4, 0x16, 0x82, 0x02, 0x82, 0x81, 0x86, 0x07,
0x91, 0x10, 0x32, 0x04, 0x21, 0x43, 0x65, 0x13,
0x07, 0x00, 0x11, 0x10, 0x00, 0x01, 0x00, 0x01,
/*
* Byte 3 changed to 0x82 and byte 7 changed to 0x86 (Comprehension
* Required should be set according to TS 102 223 7.3.1.6)
*/
};
static const struct envelope_test call_control_data_131b = {
.pdu = call_control_131b,
.pdu_len = sizeof(call_control_131b),
.envelope = {
.type = STK_ENVELOPE_TYPE_CALL_CONTROL,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .call_control = {
.type = STK_CC_TYPE_CALL_SETUP,
{ .address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "012340123456",
}},
.location = {
.mcc = "001",
.mnc = "011",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
},
}},
},
};
static const unsigned char mo_short_message_control_111a[] = {
0xd5, 0x22, 0x02, 0x02, 0x82, 0x81, 0x06, 0x09,
0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0xf8, 0x06, 0x06, 0x91, 0x10, 0x32, 0x54, 0x76,
0xf8, 0x13, 0x09, 0x00, 0xf1, 0x10, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01,
};
static const struct envelope_test mo_short_message_control_data_111a = {
.pdu = mo_short_message_control_111a,
.pdu_len = sizeof(mo_short_message_control_111a),
.envelope = {
.type = STK_ENVELOPE_TYPE_MO_SMS_CONTROL,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .sms_mo_control = {
.sc_address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "112233445566778",
},
.dest_address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "012345678",
},
.location = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
.has_ext_ci = TRUE,
.ext_ci = 0x0001,
},
}},
},
};
static const unsigned char mo_short_message_control_111b[] = {
0xd5, 0x20, 0x02, 0x02, 0x82, 0x81, 0x06, 0x09,
0x91, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
0xf8, 0x06, 0x06, 0x91, 0x10, 0x32, 0x54, 0x76,
0xf8, 0x13, 0x07, 0x00, 0x11, 0x10, 0x00, 0x01,
0x00, 0x01,
};
static const struct envelope_test mo_short_message_control_data_111b = {
.pdu = mo_short_message_control_111b,
.pdu_len = sizeof(mo_short_message_control_111b),
.envelope = {
.type = STK_ENVELOPE_TYPE_MO_SMS_CONTROL,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .sms_mo_control = {
.sc_address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "112233445566778",
},
.dest_address = {
.ton_npi = 0x91, /* Intl, ISDN */
.number = "012345678",
},
.location = {
.mcc = "001",
.mnc = "011",
.lac_tac = 0x0001,
.has_ci = TRUE,
.ci = 0x0001,
},
}},
},
};
static const unsigned char event_download_mt_call_111[] = {
0xd6, 0x0a, 0x99, 0x01, 0x00, 0x82, 0x02, 0x83,
0x81, 0x9c, 0x01, 0x00,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c (Comprehension
* Required should be set according to TS 102 223 7.5.1.2)
*/
};
static const struct envelope_test event_download_mt_call_data_111 = {
.pdu = event_download_mt_call_111,
.pdu_len = sizeof(event_download_mt_call_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_MT_CALL,
{ .mt_call = {
.transaction_id = 0,
}},
}},
},
};
static const unsigned char event_download_mt_call_112[] = {
0xd6, 0x0f, 0x99, 0x01, 0x00, 0x82, 0x02, 0x83,
0x81, 0x9c, 0x01, 0x00, 0x06, 0x03, 0x81, 0x89,
0x67,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 0x06 (Comprehension Required should be set according to
* TS 102 223 7.5.1.2)
*/
};
static const struct envelope_test event_download_mt_call_data_112 = {
.pdu = event_download_mt_call_112,
.pdu_len = sizeof(event_download_mt_call_112),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_MT_CALL,
{ .mt_call = {
.transaction_id = 0,
.caller_address = {
.ton_npi = 0x81, /* Unknown, ISDN */
.number = "9876",
},
}},
}},
},
};
static const unsigned char event_download_call_connected_111[] = {
0xd6, 0x0a, 0x99, 0x01, 0x01, 0x82, 0x02, 0x82,
0x81, 0x9c, 0x01, 0x80,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c (Comprehension
* Required should be set according to TS 102 223 7.5.2.2)
*/
};
static const struct envelope_test event_download_call_connected_data_111 = {
.pdu = event_download_call_connected_111,
.pdu_len = sizeof(event_download_call_connected_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_CONNECTED,
{ .call_connected = {
.transaction_id = 0x80,
}},
}},
},
};
static const unsigned char event_download_call_connected_112[] = {
0xd6, 0x0a, 0x99, 0x01, 0x01, 0x82, 0x02, 0x83,
0x81, 0x9c, 0x01, 0x80,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c (Comprehension
* Required should be set according to TS 102 223 7.5.2.2)
*/
};
static const struct envelope_test event_download_call_connected_data_112 = {
.pdu = event_download_call_connected_112,
.pdu_len = sizeof(event_download_call_connected_112),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_CONNECTED,
{ .call_connected = {
.transaction_id = 0x80,
}},
}},
},
};
static const unsigned char event_download_call_disconnected_111[] = {
0xd6, 0x0a, 0x99, 0x01, 0x02, 0x82, 0x02, 0x83,
0x81, 0x9c, 0x01, 0x80,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c (Comprehension
* Required should be set according to TS 102 223 7.5.3.2)
*/
};
static const struct envelope_test event_download_call_disconnected_data_111 = {
.pdu = event_download_call_disconnected_111,
.pdu_len = sizeof(event_download_call_disconnected_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0x80 },
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_112a[] = {
0xd6, 0x0a, 0x99, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x9c, 0x01, 0x80,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c (Comprehension
* Required should be set according to TS 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_112a = {
.pdu = event_download_call_disconnected_112a,
.pdu_len = sizeof(event_download_call_disconnected_112a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0x80 },
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_112b[] = {
0xd6, 0x0e, 0x99, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x9c, 0x01, 0x80, 0x1a, 0x02, 0x60, 0x90,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 1a (Comprehension Required should be set according to TS
* 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_112b = {
.pdu = event_download_call_disconnected_112b,
.pdu_len = sizeof(event_download_call_disconnected_112b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0x80 },
},
.cause = {
.has_cause = TRUE,
.len = 2,
/* Normal call clearing */
.cause = { 0x60, 0x90 },
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_112c[] = {
0xd6, 0x0e, 0x99, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x9c, 0x01, 0x80, 0x1a, 0x02, 0xe0, 0x90,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 1a (Comprehension Required should be set according to TS
* 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_112c = {
.pdu = event_download_call_disconnected_112c,
.pdu_len = sizeof(event_download_call_disconnected_112c),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0x80 },
},
.cause = {
.has_cause = TRUE,
.len = 2,
/* Normal call clearing */
.cause = { 0xe0, 0x90 },
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_113a[] = {
0xd6, 0x0e, 0x99, 0x01, 0x02, 0x82, 0x02, 0x83,
0x81, 0x9c, 0x01, 0x00, 0x1a, 0x02, 0x60, 0x90,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 1a (Comprehension Required should be set according to TS
* 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_113a = {
.pdu = event_download_call_disconnected_113a,
.pdu_len = sizeof(event_download_call_disconnected_113a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0 },
},
.cause = {
.has_cause = TRUE,
.len = 2,
/* Normal call clearing */
.cause = { 0x60, 0x90 },
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_113b[] = {
0xd6, 0x0e, 0x99, 0x01, 0x02, 0x82, 0x02, 0x83,
0x81, 0x9c, 0x01, 0x00, 0x1a, 0x02, 0xe0, 0x90,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 1a (Comprehension Required should be set according to TS
* 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_113b = {
.pdu = event_download_call_disconnected_113b,
.pdu_len = sizeof(event_download_call_disconnected_113b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0 },
},
.cause = {
.has_cause = TRUE,
.len = 2,
/* Normal call clearing */
.cause = { 0xe0, 0x90 },
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_114a[] = {
0xd6, 0x0c, 0x99, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x9c, 0x01, 0x80, 0x1a, 0x00,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 1a (Comprehension Required should be set according to TS
* 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_114a = {
.pdu = event_download_call_disconnected_114a,
.pdu_len = sizeof(event_download_call_disconnected_114a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0x80 },
},
.cause = {
.has_cause = TRUE,
/* Radio link failure */
},
}},
}},
},
};
static const unsigned char event_download_call_disconnected_114b[] = {
0xd6, 0x0c, 0x99, 0x01, 0x02, 0x82, 0x02, 0x82,
0x81, 0x9c, 0x01, 0x00, 0x1a, 0x00,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9c and byte 13 to
* 1a (Comprehension Required should be set according to TS
* 102 223 7.5.3.2)
*/
};
static const struct envelope_test
event_download_call_disconnected_data_114b = {
.pdu = event_download_call_disconnected_114b,
.pdu_len = sizeof(event_download_call_disconnected_114b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CALL_DISCONNECTED,
{ .call_disconnected = {
.transaction_ids = {
.len = 1,
.list = { 0 },
},
.cause = {
.has_cause = TRUE,
/* Radio link failure */
},
}},
}},
},
};
static const unsigned char event_download_location_status_111[] = {
0xd6, 0x0a, 0x99, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x9b, 0x01, 0x02,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9b (Comprehension
* Required should be set according to TS 102 223 7.5.4.2)
*/
};
static const struct envelope_test
event_download_location_status_data_111 = {
.pdu = event_download_location_status_111,
.pdu_len = sizeof(event_download_location_status_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_LOCATION_STATUS,
{ .location_status = {
.state = STK_NO_SERVICE,
}},
}},
},
};
static const unsigned char event_download_location_status_112a[] = {
0xd6, 0x15, 0x99, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x9b, 0x01, 0x00, 0x13, 0x09, 0x00, 0xf1,
0x10, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9b (Comprehension
* Required should be set according to TS 102 223 7.5.4.2)
*/
};
static const struct envelope_test
event_download_location_status_data_112a = {
.pdu = event_download_location_status_112a,
.pdu_len = sizeof(event_download_location_status_112a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_LOCATION_STATUS,
{ .location_status = {
.state = STK_NORMAL_SERVICE,
.info = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0002,
.has_ci = TRUE,
.ci = 0x0002,
.has_ext_ci = TRUE,
.ext_ci = 0x0001,
},
}},
}},
},
};
static const unsigned char event_download_location_status_112b[] = {
0xd6, 0x13, 0x99, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x9b, 0x01, 0x00, 0x13, 0x07, 0x00, 0x11,
0x10, 0x00, 0x02, 0x00, 0x02,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9b (Comprehension
* Required should be set according to TS 102 223 7.5.4.2)
*/
};
static const struct envelope_test
event_download_location_status_data_112b = {
.pdu = event_download_location_status_112b,
.pdu_len = sizeof(event_download_location_status_112b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_LOCATION_STATUS,
{ .location_status = {
.state = STK_NORMAL_SERVICE,
.info = {
.mcc = "001",
.mnc = "011",
.lac_tac = 0x0002,
.has_ci = TRUE,
.ci = 0x0002,
},
}},
}},
},
};
static const unsigned char event_download_location_status_122[] = {
0xd6, 0x15, 0x99, 0x01, 0x03, 0x82, 0x02, 0x82,
0x81, 0x9b, 0x01, 0x00, 0x13, 0x09, 0x00, 0xf1,
0x10, 0x00, 0x02, 0x00, 0x00, 0x00, 0x2f,
/*
* Byte 3 changed to 0x99 and byte 10 to 0x9b (Comprehension
* Required should be set according to TS 102 223 7.5.4.2)
*/
};
static const struct envelope_test
event_download_location_status_data_122 = {
.pdu = event_download_location_status_122,
.pdu_len = sizeof(event_download_location_status_122),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_LOCATION_STATUS,
{ .location_status = {
.state = STK_NORMAL_SERVICE,
.info = {
.mcc = "001",
.mnc = "01",
.lac_tac = 0x0002,
.has_eutran_ci = TRUE,
.eutran_ci = 0x0000002,
},
}},
}},
},
};
/*
* This is from 27.22.7.5. The ENVELOPE given in 27.22.4.16.1.1 seems to
* have invalid length value (2nd byte), but in turn the Comprehension
* Required bit is set correctly..
*/
static const unsigned char event_download_user_activity_111[] = {
0xd6, 0x07, 0x99, 0x01, 0x04, 0x82, 0x02, 0x82,
0x81,
/*
* Byte 3 changed to 0x99 (Comprehension Required should be
* set according to TS 102 223 7.5.5.2)
*/
};
static const struct envelope_test event_download_user_activity_data_111 = {
.pdu = event_download_user_activity_111,
.pdu_len = sizeof(event_download_user_activity_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_USER_ACTIVITY,
}},
},
};
static const unsigned char event_download_idle_screen_available_111[] = {
0xd6, 0x07, 0x99, 0x01, 0x05, 0x82, 0x02, 0x02,
0x81,
/*
* Byte 3 changed to 0x99 (Comprehension Required should be
* set according to TS 102 223 7.5.6.2)
*/
};
static const struct envelope_test
event_download_idle_screen_available_data_111 = {
.pdu = event_download_idle_screen_available_111,
.pdu_len = sizeof(event_download_idle_screen_available_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_DISPLAY,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_IDLE_SCREEN_AVAILABLE,
}},
},
};
static const unsigned char event_download_card_reader_status_111a[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x79,
};
static const struct envelope_test
event_download_card_reader_status_data_111a = {
.pdu = event_download_card_reader_status_111a,
.pdu_len = sizeof(event_download_card_reader_status_111a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = TRUE,
.present = TRUE,
.id1_size = TRUE,
.card_present = TRUE,
.card_powered = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_111b[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x59,
};
static const struct envelope_test
event_download_card_reader_status_data_111b = {
.pdu = event_download_card_reader_status_111b,
.pdu_len = sizeof(event_download_card_reader_status_111b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = TRUE,
.present = TRUE,
.id1_size = FALSE,
.card_present = TRUE,
.card_powered = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_111c[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x71,
};
static const struct envelope_test
event_download_card_reader_status_data_111c = {
.pdu = event_download_card_reader_status_111c,
.pdu_len = sizeof(event_download_card_reader_status_111c),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = FALSE,
.present = TRUE,
.id1_size = TRUE,
.card_present = TRUE,
.card_powered = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_111d[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x51,
};
static const struct envelope_test
event_download_card_reader_status_data_111d = {
.pdu = event_download_card_reader_status_111d,
.pdu_len = sizeof(event_download_card_reader_status_111d),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = FALSE,
.present = TRUE,
.id1_size = FALSE,
.card_present = TRUE,
.card_powered = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_112a[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x39,
};
static const struct envelope_test
event_download_card_reader_status_data_112a = {
.pdu = event_download_card_reader_status_112a,
.pdu_len = sizeof(event_download_card_reader_status_112a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = TRUE,
.present = TRUE,
.id1_size = TRUE,
.card_present = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_112b[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x19,
};
static const struct envelope_test
event_download_card_reader_status_data_112b = {
.pdu = event_download_card_reader_status_112b,
.pdu_len = sizeof(event_download_card_reader_status_112b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = TRUE,
.present = TRUE,
.id1_size = FALSE,
.card_present = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_112c[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x31,
};
static const struct envelope_test
event_download_card_reader_status_data_112c = {
.pdu = event_download_card_reader_status_112c,
.pdu_len = sizeof(event_download_card_reader_status_112c),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = FALSE,
.present = TRUE,
.id1_size = TRUE,
.card_present = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_112d[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x11,
};
static const struct envelope_test
event_download_card_reader_status_data_112d = {
.pdu = event_download_card_reader_status_112d,
.pdu_len = sizeof(event_download_card_reader_status_112d),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = FALSE,
.present = TRUE,
.id1_size = FALSE,
.card_present = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_212a[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x29,
};
static const struct envelope_test
event_download_card_reader_status_data_212a = {
.pdu = event_download_card_reader_status_212a,
.pdu_len = sizeof(event_download_card_reader_status_212a),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = TRUE,
.present = FALSE,
.id1_size = TRUE,
.card_present = FALSE,
}},
}},
},
};
static const unsigned char event_download_card_reader_status_212b[] = {
0xd6, 0x0a, 0x99, 0x01, 0x06, 0x82, 0x02, 0x82,
0x81, 0xa0, 0x01, 0x09,
};
static const struct envelope_test
event_download_card_reader_status_data_212b = {
.pdu = event_download_card_reader_status_212b,
.pdu_len = sizeof(event_download_card_reader_status_212b),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CARD_READER_STATUS,
{ .card_reader_status = {
.id = 1,
.removable = TRUE,
.present = FALSE,
.id1_size = FALSE,
.card_present = FALSE,
}},
}},
},
};
static const unsigned char event_download_language_selection_111[] = {
0xd6, 0x0b, 0x99, 0x01, 0x07, 0x82, 0x02, 0x82,
0x81, 0xad, 0x02, 0x64, 0x65,
/*
* Byte 3 changed to 0x99 and byte 10 to 0xad (Comprehension
* Required should be set according to TS 102 223 7.5.8.2)
*/
};
static const struct envelope_test
event_download_language_selection_data_111 = {
.pdu = event_download_language_selection_111,
.pdu_len = sizeof(event_download_language_selection_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_LANGUAGE_SELECTION,
{ .language_selection = "de" },
}},
},
};
static const unsigned char event_download_language_selection_122[] = {
0xd6, 0x0b, 0x99, 0x01, 0x07, 0x82, 0x02, 0x82,
0x81, 0xad, 0x02, 0x73, 0x65,
/* Byte 5 changed to 0x07 (Event: Language Selection) */
/* Byte 8 changed to 0x82 (Source device: Terminal) */
/* Removed the (unexpected?) Transaction ID data object (0x2d) */
};
static const struct envelope_test
event_download_language_selection_data_122 = {
.pdu = event_download_language_selection_122,
.pdu_len = sizeof(event_download_language_selection_122),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_LANGUAGE_SELECTION,
{ .language_selection = "se" },
}},
},
};
static const unsigned char event_download_browser_termination_111[] = {
0xd6, 0x0a, 0x99, 0x01, 0x08, 0x82, 0x02, 0x82,
0x81, 0xb4, 0x01, 0x00,
};
static const struct envelope_test
event_download_browser_termination_data_111 = {
.pdu = event_download_browser_termination_111,
.pdu_len = sizeof(event_download_browser_termination_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_BROWSER_TERMINATION,
{ .browser_termination = {
.cause = STK_BROWSER_USER_TERMINATION,
}},
}},
},
};
static const unsigned char event_download_data_available_111[] = {
0xd6, 0x0e, 0x99, 0x01, 0x09, 0x82, 0x02, 0x82,
0x81, 0xb8, 0x02, 0x81, 0x00, 0xb7, 0x01, 0xff,
};
static const struct envelope_test event_download_data_available_data_111 = {
.pdu = event_download_data_available_111,
.pdu_len = sizeof(event_download_data_available_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_DATA_AVAILABLE,
{ .data_available = {
/* Channel 1 open, Link established */
.channel = {
.id = 1,
.status =
STK_CHANNEL_PACKET_DATA_SERVICE_ACTIVATED,
},
.channel_data_len = 255,
} },
} },
},
};
static const unsigned char event_download_data_available_211[] = {
0xd6, 0x0e, 0x99, 0x01, 0x09, 0x82, 0x02, 0x82,
0x81, 0xb8, 0x02, 0x81, 0x00, 0xb7, 0x01, 0xff,
};
static const struct envelope_test event_download_data_available_data_211 = {
.pdu = event_download_data_available_211,
.pdu_len = sizeof(event_download_data_available_211),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_DATA_AVAILABLE,
{ .data_available = {
/* Channel 1 open, Link established */
.channel = {
.id = 1,
.status =
STK_CHANNEL_PACKET_DATA_SERVICE_ACTIVATED,
},
.channel_data_len = 255,
} },
} },
},
};
static const unsigned char event_download_channel_status_131[] = {
0xd6, 0x0b, 0x99, 0x01, 0x0a, 0x82, 0x02, 0x82,
0x81, 0xb8, 0x02, 0x01, 0x05,
};
static const struct envelope_test event_download_channel_status_data_131 = {
.pdu = event_download_channel_status_131,
.pdu_len = sizeof(event_download_channel_status_131),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CHANNEL_STATUS,
{ .channel_status = {
/* Channel 1, Link dropped */
.channel = {
.id = 1,
.status = STK_CHANNEL_LINK_DROPPED,
},
} },
} },
},
};
static const unsigned char event_download_channel_status_211[] = {
0xd6, 0x0b, 0x99, 0x01, 0x0a, 0x82, 0x02, 0x82,
0x81, 0xb8, 0x02, 0x41, 0x00,
/*
* Byte 10 changed to 0xb8 (Comprehension Required should be
* set according to TS 102 223 7.5.11.2)
*/
};
static const struct envelope_test event_download_channel_status_data_211 = {
.pdu = event_download_channel_status_211,
.pdu_len = sizeof(event_download_channel_status_211),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CHANNEL_STATUS,
{ .channel_status = {
/* Channel 1, TCP in LISTEN state */
.channel = {
.id = 1,
.status = STK_CHANNEL_TCP_IN_LISTEN_STATE,
},
} },
} },
},
};
static const unsigned char event_download_channel_status_221[] = {
0xd6, 0x0b, 0x99, 0x01, 0x0a, 0x82, 0x02, 0x82,
0x81, 0xb8, 0x02, 0x81, 0x00,
/*
* Byte 10 changed to 0xb8 (Comprehension Required should be
* set according to TS 102 223 7.5.11.2)
*/
};
static const struct envelope_test event_download_channel_status_data_221 = {
.pdu = event_download_channel_status_221,
.pdu_len = sizeof(event_download_channel_status_221),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_CHANNEL_STATUS,
{ .channel_status = {
/* Channel 1 open, TCP Link established */
.channel = {
.id = 1,
.status =
STK_CHANNEL_PACKET_DATA_SERVICE_ACTIVATED,
},
} },
} },
},
};
static const unsigned char event_download_network_rejection_111[] = {
0xd6, 0x17, 0x99, 0x01, 0x12, 0x82, 0x02, 0x83,
0x81, 0x7d, 0x05, 0x00, 0xf1, 0x10, 0x00, 0x01,
0xbf, 0x01, 0x08, 0xf4, 0x01, 0x09, 0xf5, 0x01,
0x0b,
/*
* Byte 3 changed to 99, byte 17 changed to bf, byte 19 to f4 and
* byte 22 to f5 (Comprehension Required should be set according
* to TS 131 111 7.5.2.2)
*/
};
static const struct envelope_test event_download_network_rejection_data_111 = {
.pdu = event_download_network_rejection_111,
.pdu_len = sizeof(event_download_network_rejection_111),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_NETWORK_REJECTION,
{ .network_rejection = {
.tai = {
.mcc = "001",
.mnc = "01",
.tac = 0x0001,
},
.access_tech = STK_ACCESS_TECHNOLOGY_EUTRAN,
.update_attach = STK_UPDATE_ATTACH_EPS_ATTACH,
.cause = STK_CAUSE_EMM_PLMN_NOT_ALLOWED,
}},
}},
},
};
static const unsigned char event_download_network_rejection_121[] = {
0xd6, 0x17, 0x99, 0x01, 0x12, 0x82, 0x02, 0x83,
0x81, 0x7d, 0x05, 0x00, 0xf1, 0x10, 0x00, 0x01,
0xbf, 0x01, 0x08, 0xf4, 0x01, 0x0b, 0xf5, 0x01,
0x0c,
/*
* Byte 3 changed to 99, byte 17 changed to bf, byte 19 to f4 and
* byte 22 to f5 (Comprehension Required should be set according
* to TS 131 111 7.5.2.2)
*/
};
static const struct envelope_test event_download_network_rejection_data_121 = {
.pdu = event_download_network_rejection_121,
.pdu_len = sizeof(event_download_network_rejection_121),
.envelope = {
.type = STK_ENVELOPE_TYPE_EVENT_DOWNLOAD,
.src = STK_DEVICE_IDENTITY_TYPE_NETWORK,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .event_download = {
.type = STK_EVENT_TYPE_NETWORK_REJECTION,
{ .network_rejection = {
.tai = {
.mcc = "001",
.mnc = "01",
.tac = 0x0001,
},
.access_tech = STK_ACCESS_TECHNOLOGY_EUTRAN,
.update_attach = STK_UPDATE_ATTACH_TA_UPDATING,
.cause = STK_CAUSE_EMM_TAC_NOT_ALLOWED,
}},
}},
},
};
static const unsigned char timer_expiration_211[] = {
0xd7, 0x0c, 0x82, 0x02, 0x82, 0x81, 0xa4, 0x01,
0x01, 0xa5, 0x03, 0x00, 0x00, 0x01,
};
static const struct envelope_test timer_expiration_data_211 = {
.pdu = timer_expiration_211,
.pdu_len = sizeof(timer_expiration_211),
.envelope = {
.type = STK_ENVELOPE_TYPE_TIMER_EXPIRATION,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .timer_expiration = {
.id = 1,
.value = {
.second = 10,
.has_value = TRUE,
},
}},
},
};
static const unsigned char timer_expiration_221a[] = {
0xd7, 0x0c, 0x82, 0x02, 0x82, 0x81, 0xa4, 0x01,
0x01, 0xa5, 0x03, 0x00, 0x00, 0x03,
};
static const struct envelope_test timer_expiration_data_221a = {
.pdu = timer_expiration_221a,
.pdu_len = sizeof(timer_expiration_221a),
.envelope = {
.type = STK_ENVELOPE_TYPE_TIMER_EXPIRATION,
.src = STK_DEVICE_IDENTITY_TYPE_TERMINAL,
.dst = STK_DEVICE_IDENTITY_TYPE_UICC,
{ .timer_expiration = {
.id = 1,
.value = {
.second = 30,
.has_value = TRUE,
},
}},
},
};
struct html_attr_test {
char *text;
struct stk_text_attribute text_attr;
char *html;
};
static struct html_attr_test html_attr_data_1 = {
.text = "Blue green green green",
.text_attr = {
.len = 8,
.attributes = { 0x00, 0x00, 0x03, 0x94, 0x00, 0x04, 0x03,
0x96 },
},
.html = "<span style=\"color: #0000A0;background-color: #FFFFFF;\">"
"Blue</span><span style=\"color: #347235;background-color: "
"#FFFFFF;\"> green green green</span>",
};
static struct html_attr_test html_attr_data_2 = {
.text = "abc",
.text_attr = {
.len = 8,
.attributes = { 0x00, 0x02, 0x03, 0x94, 0x01, 0x02, 0x03,
0x96 },
},
.html = "<span style=\"color: #347235;background-color: #FFFFFF;\">"
"a</span><span style=\"color: #0000A0;background-color: "
"#FFFFFF;\">bc</span>",
};
static struct html_attr_test html_attr_data_3 = {
.text = "1 < 2, 2 > 1, 1 & 0 == 0\nSpecial Chars are Fun\r\nTo Write",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x00, 0x03, 0x00 },
},
.html = "1 &lt; 2, 2 &gt; 1, 1 &amp; 0 == 0<br/>Special Chars are Fun"
"<br/>To Write",
};
static struct html_attr_test html_attr_data_4 = {
.text = "€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€",
.text_attr = {
.len = 4,
.attributes = { 0x00, 0x00, 0x03, 0x94 },
},
.html = "<span style=\"color: #347235;background-color: #FFFFFF;\">"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€"
"€€€€€€€€€€€€€€€</span>",
};
static void test_html_attr(gconstpointer data)
{
const struct html_attr_test *test = data;
check_text_attr_html(&test->text_attr, test->text, test->html);
}
struct img_xpm_test {
const unsigned char *img;
unsigned int len;
const unsigned char *clut;
unsigned short clut_len;
guint8 scheme;
char *xpm;
};
const unsigned char img1[] = { 0x05, 0x05, 0xFE, 0xEB, 0xBF, 0xFF, 0xFF, 0xFF };
const unsigned char img2[] = { 0x08, 0x08, 0x02, 0x03, 0x00, 0x16, 0xAA,
0xAA, 0x80, 0x02, 0x85, 0x42, 0x81,
0x42, 0x81, 0x42, 0x81, 0x52, 0x80,
0x02, 0xAA, 0xAA, 0xFF, 0x00, 0x00,
0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF };
const unsigned char img3[] = { 0x2E, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x0F,
0xFF, 0x00, 0x00, 0x00, 0x00, 0x77, 0xFE, 0x00,
0x00, 0x00, 0x01, 0xBF, 0xF8, 0x00, 0x00, 0x00,
0x06, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x1A, 0x03,
0x80, 0x00, 0x00, 0x00, 0x6B, 0xF6, 0xBC, 0x00,
0x00, 0x01, 0xAF, 0xD8, 0x38, 0x00, 0x00, 0x06,
0xBF, 0x60, 0x20, 0x00, 0x00, 0x1A, 0xFD, 0x80,
0x40, 0x00, 0x00, 0x6B, 0xF6, 0x00, 0x80, 0x00,
0x01, 0xA0, 0x1F, 0x02, 0x00, 0x00, 0x06, 0xFF,
0xE4, 0x04, 0x00, 0x00, 0x1B, 0xFF, 0x90, 0x10,
0x00, 0x00, 0x6D, 0xEE, 0x40, 0x40, 0x00, 0x01,
0xBF, 0xF9, 0x01, 0x00, 0x00, 0x6F, 0xFF, 0xE4,
0x04, 0x00, 0x00, 0x1B, 0xFF, 0x90, 0x10, 0x00,
0x00, 0x6F, 0xFE, 0x40, 0x40, 0x00, 0x01, 0xBF,
0xF9, 0x01, 0x00, 0x00, 0x06, 0xFF, 0xE6, 0x04,
0x00, 0x00, 0x1B, 0xFF, 0x88, 0x10, 0x00, 0x00,
0x6F, 0xFE, 0x20, 0x40, 0x00, 0x01, 0xBF, 0xF8,
0x66, 0x00, 0x00, 0x06, 0xFF, 0xE0, 0xF0, 0x00,
0x00, 0x1B, 0xFF, 0x80, 0x80, 0x00, 0x00, 0x7F,
0xFE, 0x00, 0x00, 0x00, 0x03, 0x00, 0x0C, 0x00,
0x00, 0x00, 0x1F, 0xFF, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x1C, 0x21, 0x08, 0x44, 0xEE, 0x00, 0x48, 0xC4,
0x31, 0x92, 0x20, 0x01, 0x25, 0x11, 0x45, 0x50,
0x80, 0x07, 0x14, 0x45, 0x15, 0x43, 0x80, 0x12,
0x71, 0x1C, 0x4D, 0x08, 0x00, 0x4A, 0x24, 0x89,
0x32, 0x20, 0x01, 0xC8, 0x9E, 0x24, 0x4E,
0xE0 };
const unsigned char img4[] = { 0x18, 0x10, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x01,
0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x8F,
0x3C, 0xF1, 0x89, 0x20, 0x81, 0x89, 0x20,
0x81, 0x89, 0x20, 0xF1, 0x89, 0x20, 0x11,
0x89, 0x20, 0x11, 0x89, 0x20, 0x11, 0x8F,
0x3C, 0xF1, 0x80, 0x00, 0x01, 0x80, 0x00,
0x01, 0x80, 0x00, 0x01, 0xFF, 0xFF, 0xFF };
const unsigned char img5[] = { 0x08, 0x08, 0xFF, 0x03, 0xA5, 0x99, 0x99,
0xA5, 0xC3, 0xFF };
static struct img_xpm_test xpm_test_1 = {
.img = img1,
.len = sizeof(img1),
.scheme = STK_IMG_SCHEME_BASIC,
.xpm = "/* XPM */\n"
"static char *xpm[] = {\n"
"\"5 5 2 1\",\n"
"\"0 c #000000\",\n"
"\"1 c #FFFFFF\",\n"
"\"11111\",\n"
"\"11011\",\n"
"\"10101\",\n"
"\"11011\",\n"
"\"11111\",\n"
"};",
};
static struct img_xpm_test xpm_test_2 = {
.img = img2,
.len = sizeof(img2),
.clut = img2 + 0x16,
.clut_len = 0x09,
.scheme = STK_IMG_SCHEME_COLOR,
.xpm = "/* XPM */\n"
"static char *xpm[] = {\n"
"\"8 8 3 1\",\n"
"\"0 c #FF0000\",\n"
"\"1 c #00FF00\",\n"
"\"2 c #0000FF\",\n"
"\"22222222\",\n"
"\"20000002\",\n"
"\"20111002\",\n"
"\"20011002\",\n"
"\"20011002\",\n"
"\"20011102\",\n"
"\"20000002\",\n"
"\"22222222\",\n"
"};",
};
static struct img_xpm_test xpm_test_3 = {
.img = img3,
.len = sizeof(img3),
.scheme = STK_IMG_SCHEME_BASIC,
.xpm = "/* XPM */\n"
"static char *xpm[] = {\n"
"\"46 40 2 1\",\n"
"\"0 c #000000\",\n"
"\"1 c #FFFFFF\",\n"
"\"0000000000000000000000000000000000000000000000\",\n"
"\"0000000000000000011111111110000000000000000000\",\n"
"\"0000000000000000111111111111000000000000000000\",\n"
"\"0000000000000001110111111111100000000000000000\",\n"
"\"0000000000000001101111111111100000000000000000\",\n"
"\"0000000000000001101111111111100000000000000000\",\n"
"\"0000000000000001101000000011100000000000000000\",\n"
"\"0000000000000001101011111101101011110000000000\",\n"
"\"0000000000000001101011111101100000111000000000\",\n"
"\"0000000000000001101011111101100000001000000000\",\n"
"\"0000000000000001101011111101100000000100000000\",\n"
"\"0000000000000001101011111101100000000010000000\",\n"
"\"0000000000000001101000000001111100000010000000\",\n"
"\"0000000000000001101111111111100100000001000000\",\n"
"\"0000000000000001101111111111100100000001000000\",\n"
"\"0000000000000001101101111011100100000001000000\",\n"
"\"0000000000000001101111111111100100000001000000\",\n"
"\"0000000000011011111111111111100100000001000000\",\n"
"\"0000000000000001101111111111100100000001000000\",\n"
"\"0000000000000001101111111111100100000001000000\",\n"
"\"0000000000000001101111111111100100000001000000\",\n"
"\"0000000000000001101111111111100110000001000000\",\n"
"\"0000000000000001101111111111100010000001000000\",\n"
"\"0000000000000001101111111111100010000001000000\",\n"
"\"0000000000000001101111111111100001100110000000\",\n"
"\"0000000000000001101111111111100000111100000000\",\n"
"\"0000000000000001101111111111100000001000000000\",\n"
"\"0000000000000001111111111111100000000000000000\",\n"
"\"0000000000000011000000000000110000000000000000\",\n"
"\"0000000000000111111111111111111000000000000000\",\n"
"\"0000000000000000000000000000000000000000000000\",\n"
"\"0000000000000000000000000000000000000000000000\",\n"
"\"0000000000000000000000000000000000000000000000\",\n"
"\"0000011100001000010000100001000100111011100000\",\n"
"\"0000010010001100010000110001100100100010000000\",\n"
"\"0000010010010100010001010001010101000010000000\",\n"
"\"0000011100010100010001010001010101000011100000\",\n"
"\"0000010010011100010001110001001101000010000000\",\n"
"\"0000010010100010010010001001001100100010000000\",\n"
"\"0000011100100010011110001001000100111011100000\",\n"
"};",
};
static struct img_xpm_test xpm_test_4 = {
.img = img4,
.len = sizeof(img4),
.scheme = STK_IMG_SCHEME_BASIC,
.xpm = "/* XPM */\n"
"static char *xpm[] = {\n"
"\"24 16 2 1\",\n"
"\"0 c #000000\",\n"
"\"1 c #FFFFFF\",\n"
"\"111111111111111111111111\",\n"
"\"100000000000000000000001\",\n"
"\"100000000000000000000001\",\n"
"\"100000000000000000000001\",\n"
"\"100011110011110011110001\",\n"
"\"100010010010000010000001\",\n"
"\"100010010010000010000001\",\n"
"\"100010010010000011110001\",\n"
"\"100010010010000000010001\",\n"
"\"100010010010000000010001\",\n"
"\"100010010010000000010001\",\n"
"\"100011110011110011110001\",\n"
"\"100000000000000000000001\",\n"
"\"100000000000000000000001\",\n"
"\"100000000000000000000001\",\n"
"\"111111111111111111111111\",\n"
"};",
};
static struct img_xpm_test xpm_test_5 = {
.img = img5,
.len = sizeof(img5),
.scheme = STK_IMG_SCHEME_BASIC,
.xpm = "/* XPM */\n"
"static char *xpm[] = {\n"
"\"8 8 2 1\",\n"
"\"0 c #000000\",\n"
"\"1 c #FFFFFF\",\n"
"\"11111111\",\n"
"\"00000011\",\n"
"\"10100101\",\n"
"\"10011001\",\n"
"\"10011001\",\n"
"\"10100101\",\n"
"\"11000011\",\n"
"\"11111111\",\n"
"};",
};
static struct img_xpm_test xpm_test_6 = {
.img = img2,
.len = sizeof(img2),
.clut = img2 + 0x16,
.clut_len = 0x09,
.scheme = STK_IMG_SCHEME_TRANSPARENCY,
.xpm = "/* XPM */\n"
"static char *xpm[] = {\n"
"\"8 8 3 1\",\n"
"\"0 c #FF0000\",\n"
"\"1 c #00FF00\",\n"
"\"2 c None\",\n"
"\"22222222\",\n"
"\"20000002\",\n"
"\"20111002\",\n"
"\"20011002\",\n"
"\"20011002\",\n"
"\"20011102\",\n"
"\"20000002\",\n"
"\"22222222\",\n"
"};",
};
static void test_img_to_xpm(gconstpointer data)
{
const struct img_xpm_test *test = data;
char *xpm;
xpm = stk_image_to_xpm(test->img, test->len, test->scheme,
test->clut, test->clut_len);
g_assert(memcmp(xpm, test->xpm, strlen(test->xpm)) == 0);
g_free(xpm);
}
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
g_test_add_data_func("/teststk/Display Text 1.1.1",
&display_text_data_111, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.3.1",
&display_text_data_131, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.4.1",
&display_text_data_141, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.5.1",
&display_text_data_151, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.6.1",
&display_text_data_161, test_display_text);
g_test_add_data_func("/teststk/Display Text 1.7.1",
&display_text_data_171, test_display_text);
2010-03-01 21:16:01 +00:00
g_test_add_data_func("/teststk/Display Text 5.1.1",
&display_text_data_511, test_display_text);
g_test_add_data_func("/teststk/Display Text 5.2.1",
&display_text_data_521, test_display_text);
g_test_add_data_func("/teststk/Display Text 5.3.1",
&display_text_data_531, test_display_text);
g_test_add_data_func("/teststk/Display Text 6.1.1",
&display_text_data_611, test_display_text);
2010-03-01 22:03:06 +00:00
g_test_add_data_func("/teststk/Display Text 7.1.1",
&display_text_data_711, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.1.1",
&display_text_data_811, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.2.1",
&display_text_data_821, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.3.1",
&display_text_data_831, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.4.1",
&display_text_data_841, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.5.1",
&display_text_data_851, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.6.1",
&display_text_data_861, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.7.1",
&display_text_data_871, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.8.1",
&display_text_data_881, test_display_text);
g_test_add_data_func("/teststk/Display Text 8.9.1",
&display_text_data_891, test_display_text);
g_test_add_data_func("/teststk/Display Text 9.1.1",
&display_text_data_911, test_display_text);
g_test_add_data_func("/teststk/Display Text 10.1.1",
&display_text_data_1011, test_display_text);
g_test_add_data_func("/teststk/Display Text response 1.1.1",
&display_text_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.2.1",
&display_text_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.3.1",
&display_text_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.5.1",
&display_text_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.7.1",
&display_text_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.8.1",
&display_text_response_data_181,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 1.9.1",
&display_text_response_data_191,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 2.1.1",
&display_text_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Display Text response 5.1.1B",
&display_text_response_data_511b,
test_terminal_response_encoding);
2010-04-28 12:39:34 +00:00
g_test_add_data_func("/teststk/Get Inkey 1.1.1",
&get_inkey_data_111, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.2.1",
&get_inkey_data_121, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.3.1",
&get_inkey_data_131, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.4.1",
&get_inkey_data_141, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.5.1",
&get_inkey_data_151, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 1.6.1",
&get_inkey_data_161, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 2.1.1",
&get_inkey_data_211, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 3.1.1",
&get_inkey_data_311, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 3.2.1",
&get_inkey_data_321, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 4.1.1",
&get_inkey_data_411, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 5.1.1",
&get_inkey_data_511, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 5.1.2",
&get_inkey_data_512, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.1.1",
&get_inkey_data_611, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.2.1",
&get_inkey_data_621, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.3.1",
&get_inkey_data_631, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 6.4.1",
&get_inkey_data_641, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 7.1.1",
&get_inkey_data_711, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 7.1.2",
&get_inkey_data_712, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 8.1.1",
&get_inkey_data_811, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.1.1",
&get_inkey_data_911, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.1.2",
&get_inkey_data_912, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.2.1",
&get_inkey_data_921, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.2.2",
&get_inkey_data_922, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.3.1",
&get_inkey_data_931, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.3.2",
&get_inkey_data_932, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.4.1",
&get_inkey_data_941, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.4.2",
&get_inkey_data_942, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.4.3",
&get_inkey_data_943, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.5.1",
&get_inkey_data_951, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.5.2",
&get_inkey_data_952, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.5.3",
&get_inkey_data_953, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.6.1",
&get_inkey_data_961, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.6.2",
&get_inkey_data_962, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.6.3",
&get_inkey_data_963, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.7.1",
&get_inkey_data_971, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.7.2",
&get_inkey_data_972, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.7.3",
&get_inkey_data_973, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.8.1",
&get_inkey_data_981, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.8.2",
&get_inkey_data_982, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.8.3",
&get_inkey_data_983, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.1",
&get_inkey_data_991, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.2a",
&get_inkey_data_992a, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.2b",
&get_inkey_data_992b, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.9.3",
&get_inkey_data_993, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.10.1",
&get_inkey_data_9101, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 9.10.2",
&get_inkey_data_9102, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 10.1.1",
&get_inkey_data_1011, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 10.2.1",
&get_inkey_data_1021, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 11.1.1",
&get_inkey_data_1111, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 12.1.1",
&get_inkey_data_1211, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 12.2.1",
&get_inkey_data_1221, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey 13.1.1",
&get_inkey_data_1311, test_get_inkey);
g_test_add_data_func("/teststk/Get Inkey response 1.1.1",
&get_inkey_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.2.1",
&get_inkey_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.3.1",
&get_inkey_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.4.1",
&get_inkey_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.5.1",
&get_inkey_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 1.6.1",
&get_inkey_response_data_161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 2.1.1",
&get_inkey_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 4.1.1",
&get_inkey_response_data_411,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 5.1.1",
&get_inkey_response_data_511,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 5.1.2",
&get_inkey_response_data_512,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 6.1.1B",
&get_inkey_response_data_611b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 7.1.1",
&get_inkey_response_data_711,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 7.1.2",
&get_inkey_response_data_712,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 8.1.1",
&get_inkey_response_data_811,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 9.1.2",
&get_inkey_response_data_912,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 11.1.1",
&get_inkey_response_data_1111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Inkey response 13.1.1",
&get_inkey_response_data_1311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input 1.1.1",
&get_input_data_111, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.2.1",
&get_input_data_121, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.3.1",
&get_input_data_131, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.4.1",
&get_input_data_141, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.5.1",
&get_input_data_151, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.6.1",
&get_input_data_161, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.7.1",
&get_input_data_171, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.8.1",
&get_input_data_181, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.9.1",
&get_input_data_191, test_get_input);
g_test_add_data_func("/teststk/Get Input 1.10.1",
&get_input_data_1101, test_get_input);
g_test_add_data_func("/teststk/Get Input 2.1.1",
&get_input_data_211, test_get_input);
g_test_add_data_func("/teststk/Get Input 3.1.1",
&get_input_data_311, test_get_input);
g_test_add_data_func("/teststk/Get Input 3.2.1",
&get_input_data_321, test_get_input);
g_test_add_data_func("/teststk/Get Input 4.1.1",
&get_input_data_411, test_get_input);
g_test_add_data_func("/teststk/Get Input 4.2.1",
&get_input_data_421, test_get_input);
g_test_add_data_func("/teststk/Get Input 5.1.1",
&get_input_data_511, test_get_input);
g_test_add_data_func("/teststk/Get Input 5.2.1",
&get_input_data_521, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.1.1",
&get_input_data_611, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.2.1",
&get_input_data_621, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.3.1",
&get_input_data_631, test_get_input);
g_test_add_data_func("/teststk/Get Input 6.4.1",
&get_input_data_641, test_get_input);
g_test_add_data_func("/teststk/Get Input 7.1.1",
&get_input_data_711, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.1.1",
&get_input_data_811, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.1.2",
&get_input_data_812, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.2.1",
&get_input_data_821, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.2.2",
&get_input_data_822, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.3.1",
&get_input_data_831, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.3.2",
&get_input_data_832, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.4.1",
&get_input_data_841, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.4.2",
&get_input_data_842, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.4.3",
&get_input_data_843, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.5.1",
&get_input_data_851, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.5.2",
&get_input_data_852, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.5.3",
&get_input_data_853, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.6.1",
&get_input_data_861, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.6.2",
&get_input_data_862, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.6.3",
&get_input_data_863, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.7.1",
&get_input_data_871, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.7.2",
&get_input_data_872, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.7.3",
&get_input_data_873, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.8.1",
&get_input_data_881, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.8.2",
&get_input_data_882, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.8.3",
&get_input_data_883, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.9.1",
&get_input_data_891, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.9.2",
&get_input_data_892, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.9.3",
&get_input_data_893, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.10.1",
&get_input_data_8101, test_get_input);
g_test_add_data_func("/teststk/Get Input 8.10.2",
&get_input_data_8102, test_get_input);
g_test_add_data_func("/teststk/Get Input 9.1.1",
&get_input_data_911, test_get_input);
g_test_add_data_func("/teststk/Get Input 9.2.1",
&get_input_data_921, test_get_input);
g_test_add_data_func("/teststk/Get Input 10.1.1",
&get_input_data_1011, test_get_input);
g_test_add_data_func("/teststk/Get Input 10.2.1",
&get_input_data_1021, test_get_input);
g_test_add_data_func("/teststk/Get Input 11.1.1",
&get_input_data_1111, test_get_input);
g_test_add_data_func("/teststk/Get Input 11.2.1",
&get_input_data_1121, test_get_input);
g_test_add_data_func("/teststk/Get Input 12.1.1",
&get_input_data_1211, test_get_input);
g_test_add_data_func("/teststk/Get Input 12.2.1",
&get_input_data_1221, test_get_input);
g_test_add_data_func("/teststk/Get Input response 1.1.1",
&get_input_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.2.1",
&get_input_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.3.1",
&get_input_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.4.1",
&get_input_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.5.1",
&get_input_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.6.1",
&get_input_response_data_161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.7.1",
&get_input_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.8.1",
&get_input_response_data_181,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 1.9.1",
&get_input_response_data_191,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 2.1.1",
&get_input_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 3.1.1",
&get_input_response_data_311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 4.1.1",
&get_input_response_data_411,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 4.2.1",
&get_input_response_data_421,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 6.1.1A",
&get_input_response_data_611a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 6.1.1B",
&get_input_response_data_611b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 7.1.1",
&get_input_response_data_711,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 8.1.2",
&get_input_response_data_812,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 8.4.3",
&get_input_response_data_843,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 10.1.1",
&get_input_response_data_1011,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 10.2.1",
&get_input_response_data_1021,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 12.1.1",
&get_input_response_data_1211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Input response 12.2.1",
&get_input_response_data_1221,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/More Time 1.1.1",
&more_time_data_111, test_more_time);
g_test_add_data_func("/teststk/More Time response 1.1.1",
&more_time_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone 1.1.1",
&play_tone_data_111, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.2",
&play_tone_data_112, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.3",
&play_tone_data_113, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.4",
&play_tone_data_114, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.5",
&play_tone_data_115, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.6",
&play_tone_data_116, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.7",
&play_tone_data_117, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.8",
&play_tone_data_118, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.9",
&play_tone_data_119, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.10",
&play_tone_data_1110, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.11",
&play_tone_data_1111, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.12",
&play_tone_data_1112, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.13",
&play_tone_data_1113, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.14",
&play_tone_data_1114, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 1.1.15",
&play_tone_data_1115, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 2.1.1",
&play_tone_data_211, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 2.1.2",
&play_tone_data_212, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 2.1.3",
&play_tone_data_213, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.1.1",
&play_tone_data_311, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.2.1",
&play_tone_data_321, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.3.1",
&play_tone_data_331, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 3.4.1",
&play_tone_data_341, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.1.1",
&play_tone_data_411, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.1.2",
&play_tone_data_412, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.2.1",
&play_tone_data_421, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.2.2",
&play_tone_data_422, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.3.1",
&play_tone_data_431, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.3.2",
&play_tone_data_432, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.4.1",
&play_tone_data_441, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.4.2",
&play_tone_data_442, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.4.3",
&play_tone_data_443, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.5.1",
&play_tone_data_451, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.5.2",
&play_tone_data_452, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.5.3",
&play_tone_data_453, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.6.1",
&play_tone_data_461, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.6.2",
&play_tone_data_462, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.6.3",
&play_tone_data_463, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.7.1",
&play_tone_data_471, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.7.2",
&play_tone_data_472, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.7.3",
&play_tone_data_473, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.8.1",
&play_tone_data_481, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.8.2",
&play_tone_data_482, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.8.3",
&play_tone_data_483, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.9.1",
&play_tone_data_491, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.9.2",
&play_tone_data_492, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.9.3",
&play_tone_data_493, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.10.1",
&play_tone_data_4101, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 4.10.2",
&play_tone_data_4102, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 5.1.1",
&play_tone_data_511, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 5.1.2",
&play_tone_data_512, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 5.1.3",
&play_tone_data_513, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 6.1.1",
&play_tone_data_611, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 6.1.2",
&play_tone_data_612, test_play_tone);
g_test_add_data_func("/teststk/Play Tone 6.1.3",
&play_tone_data_613, test_play_tone);
g_test_add_data_func("/teststk/Play Tone response 1.1.1",
&play_tone_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone response 1.1.9B",
&play_tone_response_data_119b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone response 1.1.14",
&play_tone_response_data_1114,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Play Tone response 3.1.1B",
&play_tone_response_data_311b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Poll Interval 1.1.1",
&poll_interval_data_111, test_poll_interval);
g_test_add_data_func("/teststk/Poll Interval response 1.1.1",
&poll_interval_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Poll Interval response 1.1.1A",
&poll_interval_response_data_111a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Setup Menu 1.1.1",
&setup_menu_data_111, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.1.2",
&setup_menu_data_112, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.1.3",
&setup_menu_data_113, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.2.1",
&setup_menu_data_121, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.2.2",
&setup_menu_data_122, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 1.2.3",
&setup_menu_data_123, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 2.1.1",
&setup_menu_data_211, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 3.1.1",
&setup_menu_data_311, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 4.1.1",
&setup_menu_data_411, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 4.2.1",
&setup_menu_data_421, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 5.1.1",
&setup_menu_data_511, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.1.1",
&setup_menu_data_611, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.1.2",
&setup_menu_data_612, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.2.1",
&setup_menu_data_621, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.2.2",
&setup_menu_data_622, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.3.1",
&setup_menu_data_631, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.3.2",
&setup_menu_data_632, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.4.1",
&setup_menu_data_641, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.4.2",
&setup_menu_data_642, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.4.3",
&setup_menu_data_643, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.5.1",
&setup_menu_data_651, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.6.1",
&setup_menu_data_661, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.7.1",
&setup_menu_data_671, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.8.1",
&setup_menu_data_681, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.9.1",
&setup_menu_data_691, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 6.10.1",
&setup_menu_data_6101, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 7.1.1",
&setup_menu_data_711, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 7.1.2",
&setup_menu_data_712, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 7.1.3",
&setup_menu_data_713, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 8.1.1",
&setup_menu_data_811, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 8.1.2",
&setup_menu_data_812, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 8.1.3",
&setup_menu_data_813, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 9.1.1",
&setup_menu_data_911, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 9.1.2",
&setup_menu_data_912, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu 9.1.3",
&setup_menu_data_913, test_setup_menu);
g_test_add_data_func("/teststk/Setup Menu Negative 1",
&setup_menu_data_neg_1, test_setup_menu_missing_val);
g_test_add_data_func("/teststk/Setup Menu Negative 2",
&setup_menu_data_neg_2, test_setup_menu_neg);
g_test_add_data_func("/teststk/Setup Menu Negative 3",
&setup_menu_data_neg_3, test_setup_menu_neg);
g_test_add_data_func("/teststk/Setup Menu Negative 4",
&setup_menu_data_neg_4, test_setup_menu_neg);
g_test_add_data_func("/teststk/Set Up Menu response 1.1.1",
&set_up_menu_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Menu response 4.1.1B",
&set_up_menu_response_data_411b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Menu response 5.1.1",
&set_up_menu_response_data_511,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item 1.1.1",
&select_item_data_111, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.2.1",
&select_item_data_121, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.3.1",
&select_item_data_131, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.4.1",
&select_item_data_141, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.5.1",
&select_item_data_151, test_select_item);
g_test_add_data_func("/teststk/Select Item 1.6.1",
&select_item_data_161, test_select_item);
g_test_add_data_func("/teststk/Select Item 2.1.1",
&select_item_data_211, test_select_item);
g_test_add_data_func("/teststk/Select Item 3.1.1",
&select_item_data_311, test_select_item);
g_test_add_data_func("/teststk/Select Item 4.1.1",
&select_item_data_411, test_select_item);
g_test_add_data_func("/teststk/Select Item 5.1.1",
&select_item_data_511, test_select_item);
g_test_add_data_func("/teststk/Select Item 5.2.1",
&select_item_data_521, test_select_item);
g_test_add_data_func("/teststk/Select Item 6.1.1",
&select_item_data_611, test_select_item);
g_test_add_data_func("/teststk/Select Item 6.2.1",
&select_item_data_621, test_select_item);
g_test_add_data_func("/teststk/Select Item 7.1.1",
&select_item_data_711, test_select_item);
g_test_add_data_func("/teststk/Select Item 8.1.1",
&select_item_data_811, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.1.1",
&select_item_data_911, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.1.2",
&select_item_data_912, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.2.1",
&select_item_data_921, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.2.2",
&select_item_data_922, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.3.1",
&select_item_data_931, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.3.2",
&select_item_data_932, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.4.1",
&select_item_data_941, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.4.2",
&select_item_data_942, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.4.3",
&select_item_data_943, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.5.1",
&select_item_data_951, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.5.2",
&select_item_data_952, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.5.3",
&select_item_data_953, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.6.1",
&select_item_data_961, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.6.2",
&select_item_data_962, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.6.3",
&select_item_data_963, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.7.1",
&select_item_data_971, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.7.2",
&select_item_data_972, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.7.3",
&select_item_data_973, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.8.1",
&select_item_data_981, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.8.2",
&select_item_data_982, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.8.3",
&select_item_data_983, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.9.1",
&select_item_data_991, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.9.2",
&select_item_data_992, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.9.3",
&select_item_data_993, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.10.1",
&select_item_data_9101, test_select_item);
g_test_add_data_func("/teststk/Select Item 9.10.2",
&select_item_data_9102, test_select_item);
g_test_add_data_func("/teststk/Select Item 10.1.1",
&select_item_data_1011, test_select_item);
g_test_add_data_func("/teststk/Select Item 10.2.1",
&select_item_data_1021, test_select_item);
g_test_add_data_func("/teststk/Select Item 10.3.1",
&select_item_data_1031, test_select_item);
g_test_add_data_func("/teststk/Select Item 11.1.1",
&select_item_data_1111, test_select_item);
g_test_add_data_func("/teststk/Select Item 12.1.1",
&select_item_data_1211, test_select_item);
g_test_add_data_func("/teststk/Select Item 12.2.1",
&select_item_data_1221, test_select_item);
g_test_add_data_func("/teststk/Select Item 12.3.1",
&select_item_data_1231, test_select_item);
g_test_add_data_func("/teststk/Select Item response 1.1.1",
&select_item_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 1.2.1",
&select_item_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 1.3.1",
&select_item_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 1.4.1",
&select_item_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 1.4.2",
&select_item_response_data_142,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 1.5.1",
&select_item_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 3.1.1",
&select_item_response_data_311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 4.1.1",
&select_item_response_data_411,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 5.1.1B",
&select_item_response_data_511b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 6.1.1",
&select_item_response_data_611,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 6.2.1",
&select_item_response_data_621,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 7.1.1",
&select_item_response_data_711,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Select Item response 8.1.1",
&select_item_response_data_811,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send SMS 1.1.1",
&send_sms_data_111, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.2.1",
&send_sms_data_121, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.3.1",
&send_sms_data_131, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.4.1",
&send_sms_data_141, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.5.1",
&send_sms_data_151, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.6.1",
&send_sms_data_161, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.7.1",
&send_sms_data_171, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 1.8.1",
&send_sms_data_181, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 2.1.1",
&send_sms_data_211, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 2.1.2",
&send_sms_data_212, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 2.1.3",
&send_sms_data_213, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 3.1.1",
&send_sms_data_311, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 3.2.1",
&send_sms_data_321, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.1.1",
&send_sms_data_411, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.1.2",
&send_sms_data_412, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.2.1",
&send_sms_data_421, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.2.2",
&send_sms_data_422, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.3.1",
&send_sms_data_431, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.3.2",
&send_sms_data_432, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.4.1",
&send_sms_data_441, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.4.2",
&send_sms_data_442, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.4.3",
&send_sms_data_443, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.5.1",
&send_sms_data_451, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.5.2",
&send_sms_data_452, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.5.3",
&send_sms_data_453, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.6.1",
&send_sms_data_461, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.6.2",
&send_sms_data_462, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.6.3",
&send_sms_data_463, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.7.1",
&send_sms_data_471, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.7.2",
&send_sms_data_472, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.7.3",
&send_sms_data_473, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.8.1",
&send_sms_data_481, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.8.2",
&send_sms_data_482, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.8.3",
&send_sms_data_483, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.9.1",
&send_sms_data_491, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.9.2",
&send_sms_data_492, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.9.3",
&send_sms_data_493, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.10.1",
&send_sms_data_4101, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 4.10.2",
&send_sms_data_4102, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 5.1.1",
&send_sms_data_511, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 5.1.2",
&send_sms_data_512, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 5.1.3",
&send_sms_data_513, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 6.1.1",
&send_sms_data_611, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 6.1.2",
&send_sms_data_612, test_send_sms);
g_test_add_data_func("/teststk/Send SMS 6.1.3",
&send_sms_data_613, test_send_sms);
2010-06-13 09:43:12 +00:00
g_test_add_data_func("/teststk/Send SS 1.1.1",
&send_ss_data_111, test_send_ss);
g_test_add_data_func("/teststk/Send SS 1.4.1",
&send_ss_data_141, test_send_ss);
g_test_add_data_func("/teststk/Send SS 1.5.1",
&send_ss_data_151, test_send_ss);
g_test_add_data_func("/teststk/Send SS 1.6.1",
&send_ss_data_161, test_send_ss);
g_test_add_data_func("/teststk/Send SS 2.1.1",
&send_ss_data_211, test_send_ss);
g_test_add_data_func("/teststk/Send SS 2.2.1",
&send_ss_data_221, test_send_ss);
g_test_add_data_func("/teststk/Send SS 2.3.1",
&send_ss_data_231, test_send_ss);
g_test_add_data_func("/teststk/Send SS 2.4.1",
&send_ss_data_241, test_send_ss);
g_test_add_data_func("/teststk/Send SS 3.1.1",
&send_ss_data_311, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.1.1",
&send_ss_data_411, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.1.2",
&send_ss_data_412, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.2.1",
&send_ss_data_421, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.2.2",
&send_ss_data_422, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.3.1",
&send_ss_data_431, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.3.2",
&send_ss_data_432, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.4.1",
&send_ss_data_441, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.4.2",
&send_ss_data_442, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.4.3",
&send_ss_data_443, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.5.1",
&send_ss_data_451, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.5.2",
&send_ss_data_452, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.5.3",
&send_ss_data_453, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.6.1",
&send_ss_data_461, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.6.2",
&send_ss_data_462, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.6.3",
&send_ss_data_463, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.7.1",
&send_ss_data_471, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.7.2",
&send_ss_data_472, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.7.3",
&send_ss_data_473, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.8.1",
&send_ss_data_481, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.8.2",
&send_ss_data_482, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.8.3",
&send_ss_data_483, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.9.1",
&send_ss_data_491, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.9.2",
&send_ss_data_492, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.9.3",
&send_ss_data_493, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.10.1",
&send_ss_data_4101, test_send_ss);
g_test_add_data_func("/teststk/Send SS 4.10.2",
&send_ss_data_4102, test_send_ss);
g_test_add_data_func("/teststk/Send SS 5.1.1",
&send_ss_data_511, test_send_ss);
g_test_add_data_func("/teststk/Send SS 6.1.1",
&send_ss_data_611, test_send_ss);
2010-06-17 10:35:07 +00:00
g_test_add_data_func("/teststk/Send USSD 1.1.1",
&send_ussd_data_111, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 1.2.1",
&send_ussd_data_121, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 1.3.1",
&send_ussd_data_131, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 1.6.1",
&send_ussd_data_161, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 1.7.1",
&send_ussd_data_171, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 1.8.1",
&send_ussd_data_181, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 2.1.1",
&send_ussd_data_211, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 2.2.1",
&send_ussd_data_221, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 2.3.1",
&send_ussd_data_231, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 2.4.1",
&send_ussd_data_241, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 3.1.1",
&send_ussd_data_311, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.1.1",
&send_ussd_data_411, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.1.2",
&send_ussd_data_412, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.2.1",
&send_ussd_data_421, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.2.2",
&send_ussd_data_422, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.3.1",
&send_ussd_data_431, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.3.2",
&send_ussd_data_432, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.4.1",
&send_ussd_data_441, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.4.2",
&send_ussd_data_442, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.4.3",
&send_ussd_data_443, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.5.1",
&send_ussd_data_451, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.5.2",
&send_ussd_data_452, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.5.3",
&send_ussd_data_453, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.6.1",
&send_ussd_data_461, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.6.2",
&send_ussd_data_462, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.6.3",
&send_ussd_data_463, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.7.1",
&send_ussd_data_471, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.7.2",
&send_ussd_data_472, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.7.3",
&send_ussd_data_473, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.8.1",
&send_ussd_data_481, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.8.2",
&send_ussd_data_482, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.8.3",
&send_ussd_data_483, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.9.1",
&send_ussd_data_491, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.9.2",
&send_ussd_data_492, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.9.3",
&send_ussd_data_493, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.10.1",
&send_ussd_data_4101, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 4.10.2",
&send_ussd_data_4102, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 5.1.1",
&send_ussd_data_511, test_send_ussd);
g_test_add_data_func("/teststk/Send USSD 6.1.1",
&send_ussd_data_611, test_send_ussd);
g_test_add_data_func("/teststk/Send SMS response 1.1.1",
&send_sms_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send SMS response 1.2.1",
&send_sms_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send SMS response 3.1.1B",
&send_sms_response_data_311b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Setup Call 1.1.1",
&setup_call_data_111, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.4.1",
&setup_call_data_141, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.5.1",
&setup_call_data_151, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.8.1",
&setup_call_data_181, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.9.1",
&setup_call_data_191, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.10.1",
&setup_call_data_1101, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.11.1",
&setup_call_data_1111, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 1.12.1",
&setup_call_data_1121, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 2.1.1",
&setup_call_data_211, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.1.1",
&setup_call_data_311, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.2.1",
&setup_call_data_321, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.3.1",
&setup_call_data_331, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 3.4.1",
&setup_call_data_341, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.1.1",
&setup_call_data_411, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.1.2",
&setup_call_data_412, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.2.1",
&setup_call_data_421, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.2.2",
&setup_call_data_422, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.3.1",
&setup_call_data_431, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.3.2",
&setup_call_data_432, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.4.1",
&setup_call_data_441, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.4.2",
&setup_call_data_442, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.4.3",
&setup_call_data_443, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.5.1",
&setup_call_data_451, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.5.2",
&setup_call_data_452, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.5.3",
&setup_call_data_453, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.6.1",
&setup_call_data_461, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.6.2",
&setup_call_data_462, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.6.3",
&setup_call_data_463, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.7.1",
&setup_call_data_471, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.7.2",
&setup_call_data_472, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.7.3",
&setup_call_data_473, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.8.1",
&setup_call_data_481, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.8.2",
&setup_call_data_482, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.8.3",
&setup_call_data_483, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.9.1",
&setup_call_data_491, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.9.2",
&setup_call_data_492, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.9.3",
&setup_call_data_493, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.10.1",
&setup_call_data_4101, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 4.10.2",
&setup_call_data_4102, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 5.1.1",
&setup_call_data_511, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 5.2.1",
&setup_call_data_521, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 6.1.1",
&setup_call_data_611, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 6.2.1",
&setup_call_data_621, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 7.1.1",
&setup_call_data_711, test_setup_call);
g_test_add_data_func("/teststk/Setup Call 7.2.1",
&setup_call_data_721, test_setup_call);
g_test_add_data_func("/teststk/Set Up Call response 1.1.1",
&set_up_call_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.2.1",
&set_up_call_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.4.1",
&set_up_call_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.5.1",
&set_up_call_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.6.1",
&set_up_call_response_data_161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.7.1A",
&set_up_call_response_data_171a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.7.1B",
&set_up_call_response_data_171b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.10.1",
&set_up_call_response_data_1101,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.11.1B",
&set_up_call_response_data_1111b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 1.12.1",
&set_up_call_response_data_1121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Call response 3.1.1B",
&set_up_call_response_data_311b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh 1.2.1",
&refresh_data_121, test_refresh);
g_test_add_data_func("/teststk/Refresh 1.5.1",
&refresh_data_151, test_refresh);
g_test_add_data_func("/teststk/Refresh response 1.1.1A",
&refresh_response_data_111a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.1.1B",
&refresh_response_data_111b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.2.1A",
&refresh_response_data_121a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.2.1B",
&refresh_response_data_121b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.3.1A",
&refresh_response_data_131a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.3.1B",
&refresh_response_data_141b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.4.1A",
&refresh_response_data_141a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.4.1B",
&refresh_response_data_141b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 1.7.1",
&refresh_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 2.4.1A",
&refresh_response_data_241a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 2.4.1B",
&refresh_response_data_241b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 3.1.1",
&refresh_response_data_311,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Refresh response 3.1.2",
&refresh_response_data_312,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Polling off 1.1.2",
&polling_off_data_112, test_polling_off);
g_test_add_data_func("/teststk/Polling off response 1.1.2",
&polling_off_response_data_112,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info 1.2.1",
&provide_local_info_data_121, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.4.1",
&provide_local_info_data_141, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.5.1",
&provide_local_info_data_151, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.8.1",
&provide_local_info_data_181, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.9.1",
&provide_local_info_data_191, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info 1.11.1",
&provide_local_info_data_1111, test_provide_local_info);
g_test_add_data_func("/teststk/Provide Local Info response 1.1.1A",
&provide_local_info_response_data_111a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.1.1B",
&provide_local_info_response_data_111b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.2.1",
&provide_local_info_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.3.1",
&provide_local_info_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.4.1",
&provide_local_info_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.5.1",
&provide_local_info_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.6.1",
&provide_local_info_response_data_161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.7.1",
&provide_local_info_response_data_171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.8.1",
&provide_local_info_response_data_181,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.9.1",
&provide_local_info_response_data_191,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.11.1",
&provide_local_info_response_data_1111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.12.1",
&provide_local_info_response_data_1121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.13.1",
&provide_local_info_response_data_1131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.14.1",
&provide_local_info_response_data_1141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.15.1",
&provide_local_info_response_data_1151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.16.1",
&provide_local_info_response_data_1161,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Provide Local Info response 1.17.1",
&provide_local_info_response_data_1171,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Setup Event List 1.1.1",
&setup_event_list_data_111, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.2.1",
&setup_event_list_data_121, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.2.2",
&setup_event_list_data_122, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.3.1",
&setup_event_list_data_131, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.3.2",
&setup_event_list_data_132, test_setup_event_list);
g_test_add_data_func("/teststk/Setup Event List 1.4.1",
&setup_event_list_data_141, test_setup_event_list);
g_test_add_data_func("/teststk/Set Up Event List response 1.1.1",
&set_up_event_list_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Perform Card APDU 1.1.1",
&perform_card_apdu_data_111, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.1.2",
&perform_card_apdu_data_112, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.1",
&perform_card_apdu_data_121, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.2",
&perform_card_apdu_data_122, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.3",
&perform_card_apdu_data_123, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.4",
&perform_card_apdu_data_124, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.2.5",
&perform_card_apdu_data_125, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 1.5.1",
&perform_card_apdu_data_151, test_perform_card_apdu);
g_test_add_data_func("/teststk/Perform Card APDU 2.1.1",
&perform_card_apdu_data_211, test_perform_card_apdu);
g_test_add_data_func("/teststk/Get Reader Status 1.1.1",
&get_reader_status_data_111, test_get_reader_status);
g_test_add_data_func("/teststk/Timer Management 1.1.1",
&timer_mgmt_data_111, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.1.2",
&timer_mgmt_data_112, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.1.3",
&timer_mgmt_data_113, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.1.4",
&timer_mgmt_data_114, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.1",
&timer_mgmt_data_121, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.2",
&timer_mgmt_data_122, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.3",
&timer_mgmt_data_123, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.2.4",
&timer_mgmt_data_124, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.1",
&timer_mgmt_data_131, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.2",
&timer_mgmt_data_132, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.3",
&timer_mgmt_data_133, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.3.4",
&timer_mgmt_data_134, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.1",
&timer_mgmt_data_141, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.2",
&timer_mgmt_data_142, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.3",
&timer_mgmt_data_143, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.4",
&timer_mgmt_data_144, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.5",
&timer_mgmt_data_145, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.6",
&timer_mgmt_data_146, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.7",
&timer_mgmt_data_147, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.4.8",
&timer_mgmt_data_148, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.1",
&timer_mgmt_data_151, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.2",
&timer_mgmt_data_152, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.3",
&timer_mgmt_data_153, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.4",
&timer_mgmt_data_154, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.5",
&timer_mgmt_data_155, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.6",
&timer_mgmt_data_156, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.7",
&timer_mgmt_data_157, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.5.8",
&timer_mgmt_data_158, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.1",
&timer_mgmt_data_161, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.2",
&timer_mgmt_data_162, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.3",
&timer_mgmt_data_163, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.4",
&timer_mgmt_data_164, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.5",
&timer_mgmt_data_165, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.6",
&timer_mgmt_data_166, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.7",
&timer_mgmt_data_167, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 1.6.8",
&timer_mgmt_data_168, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 2.1.1",
&timer_mgmt_data_211, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management 2.2.1",
&timer_mgmt_data_221, test_timer_mgmt);
g_test_add_data_func("/teststk/Timer Management response 1.1.1",
&timer_mgmt_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.1.2",
&timer_mgmt_response_data_112,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.1.4",
&timer_mgmt_response_data_114,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.2.1",
&timer_mgmt_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.2.2",
&timer_mgmt_response_data_122,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.2.4",
&timer_mgmt_response_data_124,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.3.1",
&timer_mgmt_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.3.2",
&timer_mgmt_response_data_132,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.3.4",
&timer_mgmt_response_data_134,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.1A",
&timer_mgmt_response_data_141a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.1B",
&timer_mgmt_response_data_141b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.2A",
&timer_mgmt_response_data_142a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.3A",
&timer_mgmt_response_data_143a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.4A",
&timer_mgmt_response_data_144a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.5A",
&timer_mgmt_response_data_145a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.6A",
&timer_mgmt_response_data_146a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.7A",
&timer_mgmt_response_data_147a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.4.8A",
&timer_mgmt_response_data_148a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.1A",
&timer_mgmt_response_data_151a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.1B",
&timer_mgmt_response_data_151b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.2A",
&timer_mgmt_response_data_152a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.3A",
&timer_mgmt_response_data_153a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.4A",
&timer_mgmt_response_data_154a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.5A",
&timer_mgmt_response_data_155a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.6A",
&timer_mgmt_response_data_156a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.7A",
&timer_mgmt_response_data_157a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.5.8A",
&timer_mgmt_response_data_158a,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.6.3",
&timer_mgmt_response_data_163,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.6.4",
&timer_mgmt_response_data_164,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.6.5",
&timer_mgmt_response_data_165,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.6.6",
&timer_mgmt_response_data_166,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Timer Management response 1.6.7",
&timer_mgmt_response_data_167,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Setup Idle Mode Text 1.1.1",
&setup_idle_mode_text_data_111, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 1.2.1",
&setup_idle_mode_text_data_121, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 1.3.1",
&setup_idle_mode_text_data_131, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 1.7.1",
&setup_idle_mode_text_data_171, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 2.1.1",
&setup_idle_mode_text_data_211, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 2.2.1",
&setup_idle_mode_text_data_221, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 2.3.1",
&setup_idle_mode_text_data_231, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 2.4.1",
&setup_idle_mode_text_data_241, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 3.1.1",
&setup_idle_mode_text_data_311, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.1.1",
&setup_idle_mode_text_data_411, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.1.2",
&setup_idle_mode_text_data_412, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.2.1",
&setup_idle_mode_text_data_421, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.2.2",
&setup_idle_mode_text_data_422, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.3.1",
&setup_idle_mode_text_data_431, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.3.2",
&setup_idle_mode_text_data_432, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.4.1",
&setup_idle_mode_text_data_441, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.4.2",
&setup_idle_mode_text_data_442, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.4.3",
&setup_idle_mode_text_data_443, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.5.1",
&setup_idle_mode_text_data_451, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.5.2",
&setup_idle_mode_text_data_452, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.5.3",
&setup_idle_mode_text_data_453, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.6.1",
&setup_idle_mode_text_data_461, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.6.2",
&setup_idle_mode_text_data_462, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.6.3",
&setup_idle_mode_text_data_463, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.7.1",
&setup_idle_mode_text_data_471, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.7.2",
&setup_idle_mode_text_data_472, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.7.3",
&setup_idle_mode_text_data_473, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.8.1",
&setup_idle_mode_text_data_481, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.8.2",
&setup_idle_mode_text_data_482, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.8.3",
&setup_idle_mode_text_data_483, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.9.1",
&setup_idle_mode_text_data_491, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.9.2",
&setup_idle_mode_text_data_492, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.9.3",
&setup_idle_mode_text_data_493, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.10.1",
&setup_idle_mode_text_data_4101, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 4.10.2",
&setup_idle_mode_text_data_4102, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 5.1.1",
&setup_idle_mode_text_data_511, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Setup Idle Mode Text 6.1.1",
&setup_idle_mode_text_data_611, test_setup_idle_mode_text);
g_test_add_data_func("/teststk/Set Up Idle Mode Text response 1.1.1",
&set_up_idle_mode_text_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Idle Mode Text response 2.1.1B",
&set_up_idle_mode_text_response_data_211b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Set Up Idle Mode Text response 2.4.1",
&set_up_idle_mode_text_response_data_241,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Run At Command 1.1.1",
&run_at_command_data_111, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 1.2.1",
&run_at_command_data_121, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 1.3.1",
&run_at_command_data_131, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 2.1.1",
&run_at_command_data_211, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 2.2.1",
&run_at_command_data_221, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 2.3.1",
&run_at_command_data_231, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 2.4.1",
&run_at_command_data_241, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 2.5.1",
&run_at_command_data_251, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.1.1",
&run_at_command_data_311, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.1.2",
&run_at_command_data_312, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.2.1",
&run_at_command_data_321, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.2.2",
&run_at_command_data_322, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.3.1",
&run_at_command_data_331, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.3.2",
&run_at_command_data_332, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.4.1",
&run_at_command_data_341, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.4.2",
&run_at_command_data_342, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.4.3",
&run_at_command_data_343, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.5.1",
&run_at_command_data_351, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.5.2",
&run_at_command_data_352, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.5.3",
&run_at_command_data_353, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.6.1",
&run_at_command_data_361, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.6.2",
&run_at_command_data_362, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.6.3",
&run_at_command_data_363, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.7.1",
&run_at_command_data_371, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.7.2",
&run_at_command_data_372, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.7.3",
&run_at_command_data_373, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.8.1",
&run_at_command_data_381, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.8.2",
&run_at_command_data_382, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.8.3",
&run_at_command_data_383, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.9.1",
&run_at_command_data_391, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.9.2",
&run_at_command_data_392, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.9.3",
&run_at_command_data_393, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.10.1",
&run_at_command_data_3101, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 3.10.2",
&run_at_command_data_3102, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 4.1.1",
&run_at_command_data_411, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 5.1.1",
&run_at_command_data_511, test_run_at_command);
g_test_add_data_func("/teststk/Run At Command 6.1.1",
&run_at_command_data_611, test_run_at_command);
g_test_add_data_func("/teststk/Run AT Command response 1.1.1",
&run_at_command_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Run AT Command response 2.1.1B",
&run_at_command_response_data_211b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Run AT Command response 2.5.1",
&run_at_command_response_data_251,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send DTMF 1.1.1",
&send_dtmf_data_111, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 1.2.1",
&send_dtmf_data_121, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 1.3.1",
&send_dtmf_data_131, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 2.1.1",
&send_dtmf_data_211, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 2.2.1",
&send_dtmf_data_221, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 2.3.1",
&send_dtmf_data_231, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 3.1.1",
&send_dtmf_data_311, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.1.1",
&send_dtmf_data_411, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.1.2",
&send_dtmf_data_412, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.2.1",
&send_dtmf_data_421, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.2.2",
&send_dtmf_data_422, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.3.1",
&send_dtmf_data_431, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.3.2",
&send_dtmf_data_432, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.4.1",
&send_dtmf_data_441, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.4.2",
&send_dtmf_data_442, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.4.3",
&send_dtmf_data_443, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.5.1",
&send_dtmf_data_451, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.5.2",
&send_dtmf_data_452, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.5.3",
&send_dtmf_data_453, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.6.1",
&send_dtmf_data_461, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.6.2",
&send_dtmf_data_462, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.6.3",
&send_dtmf_data_463, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.7.1",
&send_dtmf_data_471, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.7.2",
&send_dtmf_data_472, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.7.3",
&send_dtmf_data_473, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.8.1",
&send_dtmf_data_481, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.8.2",
&send_dtmf_data_482, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.8.3",
&send_dtmf_data_483, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.9.1",
&send_dtmf_data_491, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.9.2",
&send_dtmf_data_492, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.9.3",
&send_dtmf_data_493, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.10.1",
&send_dtmf_data_4101, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 4.10.2",
&send_dtmf_data_4102, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 5.1.1",
&send_dtmf_data_511, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF 6.1.1",
&send_dtmf_data_611, test_send_dtmf);
g_test_add_data_func("/teststk/Send DTMF response 1.1.1",
&send_dtmf_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send DTMF response 1.4.1",
&send_dtmf_response_data_141,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send DTMF response 2.1.1B",
&send_dtmf_response_data_211b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Language Notification 1.1.1",
&language_notification_data_111, test_language_notification);
g_test_add_data_func("/teststk/Language Notification 1.2.1",
&language_notification_data_121, test_language_notification);
g_test_add_data_func("/teststk/Language Notification response 1.1.1",
&language_notification_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Language Notification response 1.2.1",
&language_notification_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Launch Browser 1.1.1",
&launch_browser_data_111, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 1.2.1",
&launch_browser_data_121, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 1.3.1",
&launch_browser_data_131, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 1.4.1",
&launch_browser_data_141, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 2.1.1",
&launch_browser_data_211, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 2.2.1",
&launch_browser_data_221, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 2.3.1",
&launch_browser_data_231, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 3.1.1",
&launch_browser_data_311, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 4.1.1",
&launch_browser_data_411, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 4.2.1",
&launch_browser_data_421, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.1.1",
&launch_browser_data_511, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.1.2",
&launch_browser_data_512, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.2.1",
&launch_browser_data_521, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.2.2",
&launch_browser_data_522, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.3.1",
&launch_browser_data_531, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.3.2",
&launch_browser_data_532, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.4.1",
&launch_browser_data_541, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.4.2",
&launch_browser_data_542, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.4.3",
&launch_browser_data_543, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.5.1",
&launch_browser_data_551, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.5.2",
&launch_browser_data_552, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.5.3",
&launch_browser_data_553, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.6.1",
&launch_browser_data_561, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.6.2",
&launch_browser_data_562, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.6.3",
&launch_browser_data_563, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.7.1",
&launch_browser_data_571, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.7.2",
&launch_browser_data_572, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.7.3",
&launch_browser_data_573, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.8.1",
&launch_browser_data_581, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.8.2",
&launch_browser_data_582, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.8.3",
&launch_browser_data_583, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.9.1",
&launch_browser_data_591, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.9.2",
&launch_browser_data_592, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.9.3",
&launch_browser_data_593, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.10.1",
&launch_browser_data_5101, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 5.10.2",
&launch_browser_data_5102, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 6.1.1",
&launch_browser_data_611, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser 7.1.1",
&launch_browser_data_711, test_launch_browser);
g_test_add_data_func("/teststk/Launch Browser response 1.1.1",
&launch_browser_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Launch Browser response 2.1.1",
&launch_browser_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Launch Browser response 2.2.1",
&launch_browser_response_data_221,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Launch Browser response 2.3.1",
&launch_browser_response_data_231,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Launch Browser response 4.1.1B",
&launch_browser_response_data_411b,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Open channel 2.1.1",
&open_channel_data_211, test_open_channel);
g_test_add_data_func("/teststk/Open channel 2.2.1",
&open_channel_data_221, test_open_channel);
g_test_add_data_func("/teststk/Open channel 2.3.1",
&open_channel_data_231, test_open_channel);
g_test_add_data_func("/teststk/Open channel 2.4.1",
&open_channel_data_241, test_open_channel);
g_test_add_data_func("/teststk/Open channel 5.1.1",
&open_channel_data_511, test_open_channel);
g_test_add_data_func("/teststk/Open channel response 2.1.1",
&open_channel_response_data_211,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Open channel response 2.7.1",
&open_channel_response_data_271,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Close channel 1.1.1",
&close_channel_data_111, test_close_channel);
g_test_add_data_func("/teststk/Close channel 2.1.1",
&close_channel_data_211, test_close_channel);
g_test_add_data_func("/teststk/Close channel response 1.2.1",
&close_channel_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Close channel response 1.3.1",
&close_channel_response_data_131,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Receive data 1.1.1",
&receive_data_data_111, test_receive_data);
g_test_add_data_func("/teststk/Receive data 2.1.1",
&receive_data_data_211, test_receive_data);
g_test_add_data_func("/teststk/Receive data response 1.1.1",
&receive_data_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send data 1.1.1",
&send_data_data_111, test_send_data);
g_test_add_data_func("/teststk/Send data 1.2.1",
&send_data_data_121, test_send_data);
g_test_add_data_func("/teststk/Send data 2.1.1",
&send_data_data_211, test_send_data);
g_test_add_data_func("/teststk/Send data response 1.1.1",
&send_data_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send data response 1.2.1",
&send_data_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Send data response 1.5.1",
&send_data_response_data_151,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Channel status 1.1.1",
&get_channel_status_data_111, test_get_channel_status);
g_test_add_data_func("/teststk/Get Channel status response 1.1.1",
&get_channel_status_response_data_111,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Channel status response 1.2.1",
&get_channel_status_response_data_121,
test_terminal_response_encoding);
g_test_add_data_func("/teststk/Get Channel status response 1.3.1",
&get_channel_status_response_data_131,
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);
g_test_add_data_func("/teststk/CBS-PP data download 1.1",
&cbs_pp_data_download_data_11, test_envelope_encoding);
g_test_add_data_func("/teststk/CBS-PP data download 1.7",
&cbs_pp_data_download_data_17, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 1.1.1",
&menu_selection_data_111, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 1.1.2",
&menu_selection_data_112, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 1.2.1",
&menu_selection_data_121, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 1.2.2",
&menu_selection_data_122, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 1.2.3",
&menu_selection_data_123, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 2.1.1",
&menu_selection_data_211, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 6.1.2",
&menu_selection_data_612, test_envelope_encoding);
g_test_add_data_func("/teststk/Menu Selection 6.4.1",
&menu_selection_data_641, test_envelope_encoding);
g_test_add_data_func("/teststk/Call Control 1.1.1A",
&call_control_data_111a, test_envelope_encoding);
g_test_add_data_func("/teststk/Call Control 1.1.1B",
&call_control_data_111b, test_envelope_encoding);
g_test_add_data_func("/teststk/Call Control 1.3.1A",
&call_control_data_131a, test_envelope_encoding);
g_test_add_data_func("/teststk/Call Control 1.3.1B",
&call_control_data_131b, test_envelope_encoding);
g_test_add_data_func("/teststk/MO Short Message Control 1.1.1A",
&mo_short_message_control_data_111a,
test_envelope_encoding);
g_test_add_data_func("/teststk/MO Short Message Control 1.1.1B",
&mo_short_message_control_data_111b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: MT Call 1.1.1",
&event_download_mt_call_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: MT Call 1.1.2",
&event_download_mt_call_data_112,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Connected 1.1.1",
&event_download_call_connected_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Connected 1.1.2",
&event_download_call_connected_data_112,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.1",
&event_download_call_disconnected_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.2A",
&event_download_call_disconnected_data_112a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.2B",
&event_download_call_disconnected_data_112b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.2C",
&event_download_call_disconnected_data_112c,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.3A",
&event_download_call_disconnected_data_113a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.3B",
&event_download_call_disconnected_data_113b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.4A",
&event_download_call_disconnected_data_114a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Call Disconnected 1.1.4B",
&event_download_call_disconnected_data_114b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Location Status 1.1.1",
&event_download_location_status_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Location Status 1.1.2A",
&event_download_location_status_data_112a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Location Status 1.1.2B",
&event_download_location_status_data_112b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Location Status 1.2.2",
&event_download_location_status_data_122,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: User Activity 1.1.1",
&event_download_user_activity_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Idle Screen Available 1.1.1",
&event_download_idle_screen_available_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.1A",
&event_download_card_reader_status_data_111a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.1B",
&event_download_card_reader_status_data_111b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.1C",
&event_download_card_reader_status_data_111c,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.1D",
&event_download_card_reader_status_data_111d,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.2A",
&event_download_card_reader_status_data_112a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.2B",
&event_download_card_reader_status_data_112b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.2C",
&event_download_card_reader_status_data_112c,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 1.1.2D",
&event_download_card_reader_status_data_112d,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 2.1.2A",
&event_download_card_reader_status_data_212a,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Card Reader Status 2.1.2B",
&event_download_card_reader_status_data_212b,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Language Selection 1.1.1",
&event_download_language_selection_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Language Selection 1.2.2",
&event_download_language_selection_data_122,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Browser Termination 1.1.1",
&event_download_browser_termination_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Data Available 1.1.1",
&event_download_data_available_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Data Available 2.1.1",
&event_download_data_available_data_211,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Channel Status 1.3.1",
&event_download_channel_status_data_131,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Channel Status 2.1.1",
&event_download_channel_status_data_211,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Channel Status 2.2.1",
&event_download_channel_status_data_221,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Network Rejection 1.1.1",
&event_download_network_rejection_data_111,
test_envelope_encoding);
g_test_add_data_func("/teststk/Event: Network Rejection 1.2.1",
&event_download_network_rejection_data_121,
test_envelope_encoding);
g_test_add_data_func("/teststk/Timer Expiration 2.1.1",
&timer_expiration_data_211, test_envelope_encoding);
g_test_add_data_func("/teststk/Timer Expiration 2.2.1A",
&timer_expiration_data_221a, test_envelope_encoding);
g_test_add_data_func("/teststk/HTML Attribute Test 1",
&html_attr_data_1, test_html_attr);
g_test_add_data_func("/teststk/HTML Attribute Test 2",
&html_attr_data_2, test_html_attr);
g_test_add_data_func("/teststk/HTML Attribute Test 3",
&html_attr_data_3, test_html_attr);
g_test_add_data_func("/teststk/HTML Attribute Test 4",
&html_attr_data_4, test_html_attr);
g_test_add_data_func("/teststk/IMG to XPM Test 1",
&xpm_test_1, test_img_to_xpm);
g_test_add_data_func("/teststk/IMG to XPM Test 2",
&xpm_test_2, test_img_to_xpm);
g_test_add_data_func("/teststk/IMG to XPM Test 3",
&xpm_test_3, test_img_to_xpm);
g_test_add_data_func("/teststk/IMG to XPM Test 4",
&xpm_test_4, test_img_to_xpm);
g_test_add_data_func("/teststk/IMG to XPM Test 5",
&xpm_test_5, test_img_to_xpm);
g_test_add_data_func("/teststk/IMG to XPM Test 6",
&xpm_test_6, test_img_to_xpm);
return g_test_run();
}