aboutsummaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-04-09 13:50:45 -0700
committerDan Williams <dcbw@redhat.com>2010-04-09 13:50:45 -0700
commit0d381e2f11cbc3bdb7c7e69bc4c7169a9d247d3c (patch)
tree767e21734f1f8287d57df02359bf1339b7c0f8e5 /src/tests
parentb51a9d27e5a793b4e33bfdd7999e7204c408f154 (diff)
gsm: fix CSCS=? parsing and add testcases
Some devices (at least one Blackberry we know about) don't include the () around the response. Handle that and add testcases for it.
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/test-modem-helpers.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/tests/test-modem-helpers.c b/src/tests/test-modem-helpers.c
index addeee3e..f93dbd6d 100644
--- a/src/tests/test-modem-helpers.c
+++ b/src/tests/test-modem-helpers.c
@@ -690,6 +690,67 @@ test_creg_cgreg_multi2_unsolicited (void *f, gpointer d)
test_creg_match ("Multi CREG/CGREG #2", FALSE, reply, data, &result);
}
+static void
+test_cscs_icon225_support_response (void *f, gpointer d)
+{
+ const char *reply = "\r\n+CSCS: (\"IRA\",\"GSM\",\"UCS2\")\r\n";
+ MMModemCharset charsets = MM_MODEM_CHARSET_UNKNOWN;
+ gboolean success;
+
+ success = mm_gsm_parse_cscs_support_response (reply, &charsets);
+ g_assert (success);
+
+ g_assert (charsets == (MM_MODEM_CHARSET_IRA |
+ MM_MODEM_CHARSET_GSM |
+ MM_MODEM_CHARSET_UCS2));
+}
+
+static void
+test_cscs_sierra_mercury_support_response (void *f, gpointer d)
+{
+ const char *reply = "\r\n+CSCS: (\"IRA\",\"GSM\",\"UCS2\",\"PCCP437\")\r\n";
+ MMModemCharset charsets = MM_MODEM_CHARSET_UNKNOWN;
+ gboolean success;
+
+ success = mm_gsm_parse_cscs_support_response (reply, &charsets);
+ g_assert (success);
+
+ g_assert (charsets == (MM_MODEM_CHARSET_IRA |
+ MM_MODEM_CHARSET_GSM |
+ MM_MODEM_CHARSET_UCS2 |
+ MM_MODEM_CHARSET_PCCP437));
+}
+
+static void
+test_cscs_buslink_support_response (void *f, gpointer d)
+{
+ const char *reply = "\r\n+CSCS: (\"8859-1\",\"ASCII\",\"GSM\",\"UCS2\",\"UTF8\")\r\n";
+ MMModemCharset charsets = MM_MODEM_CHARSET_UNKNOWN;
+ gboolean success;
+
+ success = mm_gsm_parse_cscs_support_response (reply, &charsets);
+ g_assert (success);
+
+ g_assert (charsets == (MM_MODEM_CHARSET_8859_1 |
+ MM_MODEM_CHARSET_IRA |
+ MM_MODEM_CHARSET_GSM |
+ MM_MODEM_CHARSET_UCS2 |
+ MM_MODEM_CHARSET_UTF8));
+}
+
+static void
+test_cscs_blackberry_support_response (void *f, gpointer d)
+{
+ const char *reply = "\r\n+CSCS: \"IRA\"\r\n";
+ MMModemCharset charsets = MM_MODEM_CHARSET_UNKNOWN;
+ gboolean success;
+
+ success = mm_gsm_parse_cscs_support_response (reply, &charsets);
+ g_assert (success);
+
+ g_assert (charsets == MM_MODEM_CHARSET_IRA);
+}
+
static TestData *
test_data_new (void)
{
@@ -775,6 +836,11 @@ int main (int argc, char **argv)
g_test_suite_add (suite, TESTCASE (test_creg_cgreg_multi_unsolicited, data));
g_test_suite_add (suite, TESTCASE (test_creg_cgreg_multi2_unsolicited, data));
+ g_test_suite_add (suite, TESTCASE (test_cscs_icon225_support_response, data));
+ g_test_suite_add (suite, TESTCASE (test_cscs_sierra_mercury_support_response, data));
+ g_test_suite_add (suite, TESTCASE (test_cscs_buslink_support_response, data));
+ g_test_suite_add (suite, TESTCASE (test_cscs_blackberry_support_response, data));
+
result = g_test_run ();
test_data_free (data);