summaryrefslogtreecommitdiffstats
path: root/unit
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2010-03-01 18:16:02 -0600
committerDenis Kenzior <denkenz@gmail.com>2010-03-01 18:16:02 -0600
commitccb37262f59df982aee5f8bfa3f9058bca522e6b (patch)
treea2846176960f002ad4b031a0c2b9e3116a566a41 /unit
parent2ea8877b48e5255430499f6115bf82c97b11dc2d (diff)
downloadofono-ccb37262f59df982aee5f8bfa3f9058bca522e6b.tar.bz2
stk: Add initial unit test for Get Input
Diffstat (limited to 'unit')
-rw-r--r--unit/test-stkutil.c65
1 files changed, 64 insertions, 1 deletions
diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c
index 4398bb4c..95ed2fde 100644
--- a/unit/test-stkutil.c
+++ b/unit/test-stkutil.c
@@ -249,7 +249,7 @@ static struct display_text_test display_text_data_1011 = {
.qualifier = 0x80
};
-/* Defined in TS 102.384 Section 27.22.4.1.1.4.2 */
+/* Defined in TS 102.384 Section 27.22.4.1 */
static void test_display_text(gconstpointer data)
{
const struct display_text_test *test = data;
@@ -286,6 +286,66 @@ static void test_display_text(gconstpointer data)
stk_command_free(command);
}
+struct get_input_test {
+ const unsigned char *pdu;
+ unsigned int pdu_len;
+ unsigned char qualifier;
+ const char *expected;
+ unsigned char min;
+ unsigned char max;
+ unsigned char icon_qualifier;
+ unsigned char icon_id;
+};
+
+static unsigned char get_input_111[] = { 0xD0, 0x1B, 0x81, 0x03, 0x01, 0x23,
+ 0x00, 0x82, 0x02, 0x81, 0x82,
+ 0x8D, 0x0C, 0x04, 0x45, 0x6E,
+ 0x74, 0x65, 0x72, 0x20, 0x31,
+ 0x32, 0x33, 0x34, 0x35, 0x91,
+ 0x02, 0x05, 0x05 };
+
+static struct get_input_test get_input_data_111 = {
+ .pdu = get_input_111,
+ .pdu_len = sizeof(get_input_111),
+ .expected = "Enter 12345",
+ .qualifier = 0x00,
+ .min = 5,
+ .max = 5
+};
+
+/* 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->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);
+
+ g_assert(command->get_input.text);
+
+ g_assert(g_str_equal(test->expected, command->get_input.text));
+
+ g_assert(command->get_input.response_length.min == test->min);
+ g_assert(command->get_input.response_length.max == test->max);
+
+ if (test->icon_id > 0) {
+ g_assert(command->get_input.icon_id.id == test->icon_id);
+ g_assert(command->get_input.icon_id.qualifier ==
+ test->icon_qualifier);
+ }
+
+ stk_command_free(command);
+}
+
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
@@ -317,5 +377,8 @@ int main(int argc, char **argv)
g_test_add_data_func("/teststk/Display Text 10.1.1",
&display_text_data_1011, test_display_text);
+ g_test_add_data_func("/teststk/Get Input 1.1.1",
+ &get_input_data_111, test_get_input);
+
return g_test_run();
}