Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[test] Added test_retrieve_order
  • Loading branch information
monich committed Mar 11, 2016
1 parent 2f610f2 commit a911b08
Show file tree
Hide file tree
Showing 14 changed files with 687 additions and 58 deletions.
1 change: 1 addition & 0 deletions mms-lib/test/Makefile
Expand Up @@ -11,4 +11,5 @@ all:
@$(MAKE) -C test_retrieve $*
@$(MAKE) -C test_retrieve_cancel $*
@$(MAKE) -C test_retrieve_no_proxy $*
@$(MAKE) -C test_retrieve_order $*
@$(MAKE) -C test_send $*
23 changes: 23 additions & 0 deletions mms-lib/test/common/test_connman.c
Expand Up @@ -38,6 +38,27 @@ G_DEFINE_TYPE(MMSConnManTest, mms_connman_test, MMS_TYPE_CONNMAN);
#define MMS_CONNMAN_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),\
MMS_TYPE_CONNMAN_TEST, MMSConnManTest))

static
gboolean
mms_connman_test_busy_cb(
gpointer data)
{
MMSConnManTest* test = MMS_CONNMAN_TEST(data);
mms_connman_busy_dec(&test->cm);
mms_connman_ref(&test->cm);
return G_SOURCE_REMOVE;
}

static
void
mms_connman_test_make_busy(
MMSConnManTest* test)
{
mms_connman_ref(&test->cm);
mms_connman_busy_inc(&test->cm);
g_idle_add(mms_connman_test_busy_cb, test);
}

void
mms_connman_test_set_port(
MMSConnMan* cm,
Expand Down Expand Up @@ -74,6 +95,7 @@ mms_connman_test_close_connection(
MMSConnManTest* test = MMS_CONNMAN_TEST(cm);
if (test->conn) {
MMS_DEBUG("Closing connection...");
mms_connman_test_make_busy(test);
mms_connection_close(test->conn);
mms_connection_unref(test->conn);
test->conn = NULL;
Expand Down Expand Up @@ -111,6 +133,7 @@ mms_connman_test_open_connection(
if (test->offline) {
return NULL;
} else {
mms_connman_test_make_busy(test);
test->conn = mms_connection_test_new(imsi, test->port, test->proxy);
if (test->connect_fn) test->connect_fn(test->connect_param);
return mms_connection_ref(test->conn);
Expand Down
73 changes: 59 additions & 14 deletions mms-lib/test/common/test_handler.c
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2015 Jolla Ltd.
* Copyright (C) 2013-2016 Jolla Ltd.
* Contact: Slava Monich <slava.monich@jolla.com>
*
* This program is free software; you can redistribute it and/or modify
Expand Down Expand Up @@ -30,10 +30,8 @@ typedef struct mms_handler_test {
MMSDispatcher* dispatcher;
mms_handler_test_prenotify_fn prenotify_fn;
mms_handler_test_postnotify_fn postnotify_fn;
mms_handler_test_msgreceived_fn msgreceived_fn;
void* prenotify_data;
void* postnotify_data;
void* msgreceived_data;
} MMSHandlerTest;

typedef enum mms_handler_record_type {
Expand Down Expand Up @@ -84,6 +82,19 @@ struct mms_handler_message_received_call {
void* param;
};

enum mms_handler_signal {
SIGNAL_MESSAGE_RECEIVED,
SIGNAL_MESSAGE_RECEIVE_STATE_CHANGED,
SIGNAL_MESSAGE_SEND_STATE_CHANGED,
SIGNAL_COUNT
};

#define SIGNAL_MESSAGE_RECEIVED_NAME "message-received"
#define SIGNAL_MESSAGE_RECEIVE_STATE_CHANGED_NAME "receive-state-changed"
#define SIGNAL_MESSAGE_SEND_STATE_CHANGED_NAME "send-state-changed"

static guint mms_handler_test_signals[SIGNAL_COUNT] = { 0 };

G_DEFINE_TYPE(MMSHandlerTest, mms_handler_test, MMS_TYPE_HANDLER);
#define MMS_TYPE_HANDLER_TEST (mms_handler_test_get_type())
#define MMS_HANDLER_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
Expand Down Expand Up @@ -569,9 +580,8 @@ mms_handler_test_message_received(
recv->msg = mms_message_ref(msg);
mms_handler_busy_inc(handler);

if (test->msgreceived_fn) {
test->msgreceived_fn(handler, msg, test->msgreceived_data);
}
g_signal_emit(handler, mms_handler_test_signals[
SIGNAL_MESSAGE_RECEIVED], 0, msg);

call->handler = mms_handler_ref(handler);
call->msg = mms_message_ref(msg);
Expand All @@ -596,6 +606,8 @@ mms_handler_test_message_receive_state_changed(
if (recv) {
recv->state = state;
MMS_DEBUG("Message %s receive state %d", id, state);
g_signal_emit(handler, mms_handler_test_signals[
SIGNAL_MESSAGE_RECEIVE_STATE_CHANGED], 0, id, state);
return TRUE;
} else {
MMS_ERR("No such incoming message: %s", id);
Expand Down Expand Up @@ -641,6 +653,8 @@ mms_handler_test_message_send_state_changed(
} else {
MMS_DEBUG("Message %s send state %d", id, state);
}
g_signal_emit(handler, mms_handler_test_signals[
SIGNAL_MESSAGE_SEND_STATE_CHANGED], 0, id, state, details);
return TRUE;
} else {
MMS_ERR("No such outbound message: %s", id);
Expand Down Expand Up @@ -768,6 +782,21 @@ mms_handler_test_class_init(
klass->fn_read_report = mms_handler_test_read_report;
klass->fn_read_report_send_status =
mms_handler_test_read_report_send_status;
mms_handler_test_signals[SIGNAL_MESSAGE_RECEIVED] =
g_signal_new(SIGNAL_MESSAGE_RECEIVED_NAME,
G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST,
0, NULL, NULL, NULL, G_TYPE_NONE,
1, G_TYPE_POINTER);
mms_handler_test_signals[SIGNAL_MESSAGE_RECEIVE_STATE_CHANGED] =
g_signal_new(SIGNAL_MESSAGE_RECEIVE_STATE_CHANGED_NAME,
G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST,
0, NULL, NULL, NULL, G_TYPE_NONE,
2, G_TYPE_POINTER, G_TYPE_INT);
mms_handler_test_signals[SIGNAL_MESSAGE_SEND_STATE_CHANGED] =
g_signal_new(SIGNAL_MESSAGE_SEND_STATE_CHANGED_NAME,
G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_FIRST,
0, NULL, NULL, NULL, G_TYPE_NONE,
3, G_TYPE_POINTER, G_TYPE_INT, G_TYPE_POINTER);
}

static
Expand Down Expand Up @@ -819,16 +848,34 @@ mms_handler_test_set_postnotify_fn(
test->postnotify_data = user_data;
}

void
mms_handler_test_set_msgreceived_fn(
gulong
mms_handler_test_add_msgreceived_fn(
MMSHandler* handler,
mms_handler_test_msgreceived_fn cb,
void* user_data)
{
MMSHandlerTest* test = MMS_HANDLER_TEST(handler);
MMS_ASSERT(!test->msgreceived_fn);
test->msgreceived_fn = cb;
test->msgreceived_data = user_data;
return g_signal_connect(handler, SIGNAL_MESSAGE_RECEIVED_NAME,
G_CALLBACK(cb), user_data);
}

gulong
mms_handler_test_add_send_state_fn(
MMSHandler* handler,
mms_handler_test_send_state_fn cb,
void* user_data)
{
return g_signal_connect(handler, SIGNAL_MESSAGE_SEND_STATE_CHANGED_NAME,
G_CALLBACK(cb), user_data);
}

gulong
mms_handler_test_add_receive_state_fn(
MMSHandler* handler,
mms_handler_test_receive_state_fn cb,
void* user_data)
{
return g_signal_connect(handler, SIGNAL_MESSAGE_RECEIVE_STATE_CHANGED_NAME,
G_CALLBACK(cb), user_data);
}

void
Expand All @@ -843,8 +890,6 @@ mms_handler_test_reset(
test->prenotify_data = NULL;
test->postnotify_fn = NULL;
test->postnotify_data = NULL;
test->msgreceived_fn = NULL;
test->msgreceived_data = NULL;
}

/*
Expand Down
33 changes: 30 additions & 3 deletions mms-lib/test/common/test_handler.h
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2013-2015 Jolla Ltd.
* Copyright (C) 2013-2016 Jolla Ltd.
* Contact: Slava Monich <slava.monich@jolla.com>
*
* This program is free software; you can redistribute it and/or modify
Expand Down Expand Up @@ -116,6 +116,21 @@ typedef void
MMSMessage* msg,
void* user_data);

typedef void
(*mms_handler_test_receive_state_fn)(
MMSHandler* handler,
const char* id,
MMS_RECEIVE_STATE state,
void* user_data);

typedef void
(*mms_handler_test_send_state_fn)(
MMSHandler* handler,
const char* id,
MMS_SEND_STATE state,
const char* details,
void* user_data);

void
mms_handler_test_set_prenotify_fn(
MMSHandler* handler,
Expand All @@ -128,12 +143,24 @@ mms_handler_test_set_postnotify_fn(
mms_handler_test_postnotify_fn cb,
void* user_data);

void
mms_handler_test_set_msgreceived_fn(
gulong
mms_handler_test_add_msgreceived_fn(
MMSHandler* handler,
mms_handler_test_msgreceived_fn cb,
void* user_data);

gulong
mms_handler_test_add_send_state_fn(
MMSHandler* handler,
mms_handler_test_send_state_fn cb,
void* user_data);

gulong
mms_handler_test_add_receive_state_fn(
MMSHandler* handler,
mms_handler_test_receive_state_fn cb,
void* user_data);

void
mms_handler_test_reset(
MMSHandler* handler);
Expand Down

0 comments on commit a911b08

Please sign in to comment.