Skip to content

Commit

Permalink
[test_send] Test selection of default IMSI
Browse files Browse the repository at this point in the history
  • Loading branch information
monich committed Mar 5, 2014
1 parent 3e59e20 commit 07ef80a
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 6 deletions.
37 changes: 34 additions & 3 deletions mms-lib/test/common/test_connman.c
Expand Up @@ -26,6 +26,7 @@ typedef struct mms_connman_test {
MMSConnection* conn;
unsigned short port;
gboolean proxy;
char* default_imsi;
} MMSConnManTest;

G_DEFINE_TYPE(MMSConnManTest, mms_connman_test, MMS_TYPE_CONNMAN);
Expand All @@ -44,6 +45,16 @@ mms_connman_test_set_port(
test->proxy = proxy;
}

void
mms_connman_test_set_default_imsi(
MMSConnMan* cm,
const char* imsi)
{
MMSConnManTest* test = MMS_CONNMAN_TEST(cm);
g_free(test->default_imsi);
test->default_imsi = g_strdup(imsi);
}

void
mms_connman_test_close_connection(
MMSConnMan* cm)
Expand All @@ -57,6 +68,14 @@ mms_connman_test_close_connection(
}
}

static
char*
mms_connman_test_default_imsi(
MMSConnMan* cm)
{
return g_strdup(MMS_CONNMAN_TEST(cm)->default_imsi);
}

static
MMSConnection*
mms_connman_test_open_connection(
Expand All @@ -79,24 +98,36 @@ void
mms_connman_test_dispose(
GObject* object)
{
MMSConnManTest* test = MMS_CONNMAN_TEST(object);
mms_connman_test_close_connection(&test->cm);
mms_connman_test_close_connection(&MMS_CONNMAN_TEST(object)->cm);
G_OBJECT_CLASS(mms_connman_test_parent_class)->dispose(object);
}

static
void
mms_connman_test_finalize(
GObject* object)
{
g_free(MMS_CONNMAN_TEST(object)->default_imsi);
G_OBJECT_CLASS(mms_connman_test_parent_class)->finalize(object);
}

static
void
mms_connman_test_class_init(
MMSConnManTestClass* klass)
{
klass->fn_default_imsi = mms_connman_test_default_imsi;
klass->fn_open_connection = mms_connman_test_open_connection;
G_OBJECT_CLASS(klass)->dispose = mms_connman_test_dispose;
G_OBJECT_CLASS(klass)->finalize = mms_connman_test_finalize;
}

static
void
mms_connman_test_init(
MMSConnManTest* cm)
MMSConnManTest* test)
{
test->default_imsi = g_strdup("Default");
}

MMSConnMan*
Expand Down
5 changes: 5 additions & 0 deletions mms-lib/test/common/test_connman.h
Expand Up @@ -26,6 +26,11 @@ mms_connman_test_set_port(
unsigned short port,
gboolean proxy);

void
mms_connman_test_set_default_imsi(
MMSConnMan* cm,
const char* imsi);

void
mms_connman_test_close_connection(
MMSConnMan* cm);
Expand Down
12 changes: 9 additions & 3 deletions mms-lib/test/send/test_send.c
Expand Up @@ -40,6 +40,7 @@ typedef struct test_desc {
const char* to;
const char* cc;
const char* bcc;
const char* imsi;
unsigned int flags;
const char* resp_file;
const char* resp_type;
Expand Down Expand Up @@ -91,6 +92,7 @@ static const TestDesc send_tests[] = {
"+1234567890",
"+2345678901,+3456789012",
"+4567890123",
"IMSI",
0,
"m-send.conf",
MMS_CONTENT_TYPE,
Expand All @@ -105,6 +107,7 @@ static const TestDesc send_tests[] = {
"+1234567890",
NULL,
NULL,
NULL,
0,
"m-send.conf",
MMS_CONTENT_TYPE,
Expand Down Expand Up @@ -253,15 +256,17 @@ test_run_once(
Test test;
if (test_init(&test, config, desc)) {
GError* error = NULL;
const char* imsi = "IMSI";
char* imsi = desc->imsi ? g_strdup(desc->imsi) :
mms_connman_default_imsi(test.cm);
const char* id = mms_handler_test_send_new(test.handler, imsi);
char* imsi2 = mms_dispatcher_send_message(test.disp, id, imsi,
desc->to, desc->cc, desc->bcc, desc->subject,
desc->flags & TEST_DISPATCHER_FLAGS, test.parts,
desc->nparts, &error);
MMS_ASSERT(imsi2 && !strcmp(imsi2, imsi));
MMS_ASSERT(imsi2 && (!desc->imsi || !strcmp(desc->imsi, imsi2)));
test.id = g_strdup(id);
if (imsi2 && !strcmp(imsi2, imsi) && mms_dispatcher_start(test.disp)) {
if (imsi2 && (!desc->imsi || !strcmp(desc->imsi, imsi2)) &&
mms_dispatcher_start(test.disp)) {
if (!debug) {
test.timeout_id = g_timeout_add_seconds(10,
test_timeout, &test);
Expand All @@ -271,6 +276,7 @@ test_run_once(
} else {
MMS_INFO("%s FAILED", desc->name);
}
g_free(imsi);
g_free(imsi2);
test_finalize(&test);
return test.ret;
Expand Down

0 comments on commit 07ef80a

Please sign in to comment.