mirror of
https://gitlab.gnome.org/GNOME/calls.git
synced 2024-11-17 16:05:36 +00:00
test: Test CallsSipOrigin
This commit is contained in:
parent
030313d42e
commit
21abfb4f37
1 changed files with 135 additions and 6 deletions
137
tests/test-sip.c
137
tests/test-sip.c
|
@ -7,6 +7,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "calls-sip-provider.h"
|
#include "calls-sip-provider.h"
|
||||||
|
#include "calls-sip-origin.h"
|
||||||
#include "calls-sip-util.h"
|
#include "calls-sip-util.h"
|
||||||
|
|
||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
|
@ -14,6 +15,9 @@
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
CallsSipProvider *provider;
|
CallsSipProvider *provider;
|
||||||
|
CallsSipOrigin *origin_alice;
|
||||||
|
CallsSipOrigin *origin_bob;
|
||||||
|
CallsSipOrigin *origin_offline;
|
||||||
} SipFixture;
|
} SipFixture;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -34,19 +38,132 @@ test_sip_provider_object (SipFixture *fixture,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
setup_sip (SipFixture *fixture,
|
test_sip_provider_origins (SipFixture *fixture,
|
||||||
|
gconstpointer user_data)
|
||||||
|
{
|
||||||
|
GListModel *origins;
|
||||||
|
|
||||||
|
origins = calls_provider_get_origins (CALLS_PROVIDER (fixture->provider));
|
||||||
|
|
||||||
|
g_assert_cmpuint (g_list_model_get_n_items (origins), ==, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
setup_sip_provider (SipFixture *fixture,
|
||||||
gconstpointer user_data)
|
gconstpointer user_data)
|
||||||
{
|
{
|
||||||
fixture->provider = calls_sip_provider_new ();
|
fixture->provider = calls_sip_provider_new ();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
tear_down_sip (SipFixture *fixture,
|
tear_down_sip_provider (SipFixture *fixture,
|
||||||
gconstpointer user_data)
|
gconstpointer user_data)
|
||||||
{
|
{
|
||||||
g_clear_object (&fixture->provider);
|
g_clear_object (&fixture->provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_sip_origin_objects (SipFixture *fixture,
|
||||||
|
gconstpointer user_data)
|
||||||
|
{
|
||||||
|
SipAccountState state_alice, state_bob, state_offline;
|
||||||
|
|
||||||
|
g_assert_true (G_IS_OBJECT (fixture->origin_alice));
|
||||||
|
g_assert_true (G_IS_OBJECT (fixture->origin_bob));
|
||||||
|
g_assert_true (G_IS_OBJECT (fixture->origin_offline));
|
||||||
|
|
||||||
|
g_assert_true (CALLS_IS_MESSAGE_SOURCE (fixture->origin_alice));
|
||||||
|
g_assert_true (CALLS_IS_MESSAGE_SOURCE (fixture->origin_bob));
|
||||||
|
g_assert_true (CALLS_IS_MESSAGE_SOURCE (fixture->origin_offline));
|
||||||
|
|
||||||
|
g_assert_true (CALLS_IS_ORIGIN (fixture->origin_alice));
|
||||||
|
g_assert_true (CALLS_IS_ORIGIN (fixture->origin_bob));
|
||||||
|
g_assert_true (CALLS_IS_ORIGIN (fixture->origin_offline));
|
||||||
|
|
||||||
|
g_assert_true (CALLS_IS_SIP_ORIGIN (fixture->origin_alice));
|
||||||
|
g_assert_true (CALLS_IS_SIP_ORIGIN (fixture->origin_bob));
|
||||||
|
g_assert_true (CALLS_IS_SIP_ORIGIN (fixture->origin_offline));
|
||||||
|
|
||||||
|
g_object_get (fixture->origin_alice,
|
||||||
|
"account-state", &state_alice,
|
||||||
|
NULL);
|
||||||
|
g_object_get (fixture->origin_bob,
|
||||||
|
"account-state", &state_bob,
|
||||||
|
NULL);
|
||||||
|
g_object_get (fixture->origin_offline,
|
||||||
|
"account-state", &state_offline,
|
||||||
|
NULL);
|
||||||
|
|
||||||
|
g_assert_true (state_alice == SIP_ACCOUNT_ONLINE);
|
||||||
|
g_assert_true (state_bob == SIP_ACCOUNT_ONLINE);
|
||||||
|
g_assert_true (state_offline == SIP_ACCOUNT_OFFLINE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_sip_origin_call_lists (SipFixture *fixture,
|
||||||
|
gconstpointer user_data)
|
||||||
|
{
|
||||||
|
g_autoptr (GList) calls_alice = NULL;
|
||||||
|
g_autoptr (GList) calls_bob = NULL;
|
||||||
|
g_autoptr (GList) calls_offline = NULL;
|
||||||
|
|
||||||
|
calls_alice = calls_origin_get_calls (CALLS_ORIGIN (fixture->origin_alice));
|
||||||
|
g_assert_null (calls_alice);
|
||||||
|
|
||||||
|
calls_bob = calls_origin_get_calls (CALLS_ORIGIN (fixture->origin_bob));
|
||||||
|
g_assert_null (calls_bob);
|
||||||
|
|
||||||
|
calls_offline = calls_origin_get_calls (CALLS_ORIGIN (fixture->origin_offline));
|
||||||
|
g_assert_null (calls_offline);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_sip_call_direct_calls (SipFixture *fixture,
|
||||||
|
gconstpointer user_data)
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
setup_sip_origins (SipFixture *fixture,
|
||||||
|
gconstpointer user_data)
|
||||||
|
{
|
||||||
|
GListModel *origins;
|
||||||
|
|
||||||
|
setup_sip_provider (fixture, user_data);
|
||||||
|
|
||||||
|
calls_sip_provider_add_origin (fixture->provider, "Alice",
|
||||||
|
"alice", NULL, NULL, 5060,
|
||||||
|
5060, "UDP", TRUE, FALSE);
|
||||||
|
|
||||||
|
calls_sip_provider_add_origin (fixture->provider, "Bob",
|
||||||
|
"bob", NULL, NULL, 5060,
|
||||||
|
5061, "UDP", TRUE, FALSE);
|
||||||
|
|
||||||
|
calls_sip_provider_add_origin (fixture->provider, "Offline",
|
||||||
|
"someuser", "sip.imaginary-host.org", "password", 5060,
|
||||||
|
5062, "UDP", FALSE, FALSE);
|
||||||
|
|
||||||
|
origins = calls_provider_get_origins
|
||||||
|
(CALLS_PROVIDER (fixture->provider));
|
||||||
|
|
||||||
|
fixture->origin_alice = g_list_model_get_item (origins, 0);
|
||||||
|
fixture->origin_bob = g_list_model_get_item (origins, 1);
|
||||||
|
fixture->origin_offline = g_list_model_get_item (origins, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
tear_down_sip_origins (SipFixture *fixture,
|
||||||
|
gconstpointer user_data)
|
||||||
|
{
|
||||||
|
g_clear_object (&fixture->origin_alice);
|
||||||
|
g_clear_object (&fixture->origin_bob);
|
||||||
|
g_clear_object (&fixture->origin_offline);
|
||||||
|
|
||||||
|
tear_down_sip_provider (fixture, user_data);
|
||||||
|
}
|
||||||
|
|
||||||
gint
|
gint
|
||||||
main (gint argc,
|
main (gint argc,
|
||||||
gchar *argv[])
|
gchar *argv[])
|
||||||
|
@ -56,8 +173,20 @@ main (gint argc,
|
||||||
/* this is a workaround for an issue with sofia: https://github.com/freeswitch/sofia-sip/issues/58 */
|
/* this is a workaround for an issue with sofia: https://github.com/freeswitch/sofia-sip/issues/58 */
|
||||||
su_random64 ();
|
su_random64 ();
|
||||||
|
|
||||||
g_test_add ("/Calls/SIP/object", SipFixture, NULL,
|
g_test_add ("/Calls/SIP/provider_object", SipFixture, NULL,
|
||||||
setup_sip, test_sip_provider_object, tear_down_sip);
|
setup_sip_provider, test_sip_provider_object, tear_down_sip_provider);
|
||||||
|
|
||||||
|
g_test_add ("/Calls/SIP/provider_origins", SipFixture, NULL,
|
||||||
|
setup_sip_provider, test_sip_provider_origins, tear_down_sip_provider);
|
||||||
|
|
||||||
|
g_test_add ("/Calls/SIP/origin_objects", SipFixture, NULL,
|
||||||
|
setup_sip_origins, test_sip_origin_objects, tear_down_sip_origins);
|
||||||
|
|
||||||
|
g_test_add ("/Calls/SIP/origin_call_lists", SipFixture, NULL,
|
||||||
|
setup_sip_origins, test_sip_origin_call_lists, tear_down_sip_origins);
|
||||||
|
|
||||||
|
g_test_add ("/Calls/SIP/calls_direct_call", SipFixture, NULL,
|
||||||
|
setup_sip_origins, test_sip_call_direct_calls, tear_down_sip_origins);
|
||||||
|
|
||||||
return g_test_run();
|
return g_test_run();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue