summaryrefslogtreecommitdiffstats
path: root/unit
diff options
context:
space:
mode:
authorPetteri Tikander <petteri.tikander@ixonos.com>2010-09-21 20:12:05 +0300
committerDenis Kenzior <denkenz@gmail.com>2010-09-22 12:20:57 -0500
commit46d43a0d887341eeedbaa7115eb6031a935ff075 (patch)
tree61c2af73f4cd39fb8287028517fb64861091b964 /unit
parent6c1ec6160327681c9d4d1744c115235bf27b3aa7 (diff)
downloadofono-46d43a0d887341eeedbaa7115eb6031a935ff075.tar.bz2
unit: add fuzzy address check to test-sms
Diffstat (limited to 'unit')
-rw-r--r--unit/test-sms.c43
1 files changed, 42 insertions, 1 deletions
diff --git a/unit/test-sms.c b/unit/test-sms.c
index d7a1b4d0..f0089e04 100644
--- a/unit/test-sms.c
+++ b/unit/test-sms.c
@@ -1273,8 +1273,11 @@ static void test_sr_assembly()
"940A00";
const char *sr_pdu2 = "06050D91945152991136F00160124130640A0160124130"
"450A00";
+ const char *sr_pdu3 = "0606098121436587F9019012413064A0019012413045A0"
+ "00";
struct sms sr1;
struct sms sr2;
+ struct sms sr3;
unsigned char pdu[176];
long pdu_len;
struct status_report_assembly *sra;
@@ -1285,7 +1288,7 @@ static void test_sr_assembly()
16, 17, 18, 19 };
unsigned char id[SMS_MSGID_LEN];
- /* mr 4 & mr 5 */
+ /* international address, mr 4 & mr 5 */
decode_hex_own_buf(sr_pdu1, -1, &pdu_len, 0, pdu);
g_assert(sms_decode(pdu, pdu_len, FALSE, 26, &sr1) == TRUE);
@@ -1293,6 +1296,11 @@ static void test_sr_assembly()
decode_hex_own_buf(sr_pdu2, -1, &pdu_len, 0, pdu);
g_assert(sms_decode(pdu, pdu_len, FALSE, 26, &sr2) == TRUE);
+ /* national address, mr 6 */
+
+ decode_hex_own_buf(sr_pdu3, -1, &pdu_len, 0, pdu);
+ g_assert(sms_decode(pdu, pdu_len, FALSE, 24, &sr3) == TRUE);
+
g_print("sr1 address: %s, mr: %d\n",
sms_address_to_string(&sr1.status_report.raddr),
sr1.status_report.mr);
@@ -1301,6 +1309,10 @@ static void test_sr_assembly()
sms_address_to_string(&sr2.status_report.raddr),
sr2.status_report.mr);
+ g_print("sr3 address: %s, mr: %d\n",
+ sms_address_to_string(&sr3.status_report.raddr),
+ sr3.status_report.mr);
+
sms_address_from_string(&addr, "+4915259911630");
sra = status_report_assembly_new(NULL);
@@ -1319,6 +1331,35 @@ static void test_sr_assembly()
g_assert(memcmp(id, sha1, SMS_MSGID_LEN) == 0);
g_assert(delivered == TRUE);
+
+ /*
+ * Send sms-message in the national address-format,
+ * but receive in the international address-format.
+ */
+ sms_address_from_string(&addr, "9911630");
+ status_report_assembly_add_fragment(sra, sha1, &addr, 4, time(NULL), 2);
+ status_report_assembly_add_fragment(sra, sha1, &addr, 5, time(NULL), 2);
+
+ g_assert(!status_report_assembly_report(sra, &sr1, id, &delivered));
+ g_assert(status_report_assembly_report(sra, &sr2, id, &delivered));
+
+ g_assert(memcmp(id, sha1, SMS_MSGID_LEN) == 0);
+ g_assert(delivered == TRUE);
+ g_assert(g_hash_table_size(sra->assembly_table) == 0);
+
+ /*
+ * Send sms-message in the international address-format,
+ * but receive in the national address-format.
+ */
+ sms_address_from_string(&addr, "+358123456789");
+ status_report_assembly_add_fragment(sra, sha1, &addr, 6, time(NULL), 1);
+
+ g_assert(status_report_assembly_report(sra, &sr3, id, &delivered));
+
+ g_assert(memcmp(id, sha1, SMS_MSGID_LEN) == 0);
+ g_assert(delivered == TRUE);
+ g_assert(g_hash_table_size(sra->assembly_table) == 0);
+
status_report_assembly_free(sra);
}