aboutsummaryrefslogtreecommitdiff
path: root/src/tests/test-modem-helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/test-modem-helpers.c')
-rw-r--r--src/tests/test-modem-helpers.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index db84f016..ddd25af4 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -2070,6 +2070,40 @@ test_cpms_response_empty_fields (void *f, gpointer d)
g_array_unref (mem3);
}
+typedef struct {
+ const gchar *query;
+ MMSmsStorage mem1_want;
+ MMSmsStorage mem2_want;
+} CpmsQueryTest;
+
+CpmsQueryTest cpms_query_test[] = {
+ {"+CPMS: \"ME\",1,100,\"MT\",5,100,\"TA\",1,100", 2, 3},
+ {"+CPMS: \"SM\",100,100,\"SR\",5,10,\"TA\",1,100", 1, 4},
+ {"+CPMS: \"XX\",100,100,\"BM\",5,10,\"TA\",1,100", 0, 5},
+ {"+CPMS: \"XX\",100,100,\"YY\",5,10,\"TA\",1,100", 0, 0},
+ {NULL, 0, 0}
+};
+
+static void
+test_cpms_query_response (void *f, gpointer d) {
+ MMSmsStorage mem1;
+ MMSmsStorage mem2;
+ gboolean ret;
+ GError *error = NULL;
+ int i;
+
+ for (i = 0; cpms_query_test[i].query != NULL; i++){
+ ret = mm_3gpp_parse_cpms_query_response (cpms_query_test[i].query,
+ &mem1,
+ &mem2,
+ &error);
+ g_assert(ret);
+ g_assert_no_error (error);
+ g_assert_cmpuint (cpms_query_test[i].mem1_want, ==, mem1);
+ g_assert_cmpuint (cpms_query_test[i].mem2_want, ==, mem2);
+ }
+}
+
/*****************************************************************************/
/* Test CNUM responses */
@@ -2821,6 +2855,7 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_cpms_response_mixed, NULL));
g_test_suite_add (suite, TESTCASE (test_cpms_response_mixed_spaces, NULL));
g_test_suite_add (suite, TESTCASE (test_cpms_response_empty_fields, NULL));
+ g_test_suite_add (suite, TESTCASE (test_cpms_query_response, NULL));
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_single, NULL));
g_test_suite_add (suite, TESTCASE (test_cgdcont_test_response_multiple, NULL));