broadband-modem: fix +CPMS empty parameter support
* Add new async virtual method init_current_storages to MMIfaceModemMessaging * Add logic of init_current_storages to MMBroadbandModem * Add step "INIT_CURRENT_STORAGES" in MMIfaceModemMessaging initialization in order to load and store current SMS storages for mem1 and mem2. * Add usage of current sms storage value for mem1 in place of an empty string parameter when the command AT+CPMS is used. https://bugs.freedesktop.org/show_bug.cgi?id=93135
This commit is contained in:

committed by
Aleksander Morgado

parent
7c2d5b1aa3
commit
be317e8b80
@@ -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));
|
||||
|
Reference in New Issue
Block a user