diff --git a/tests/meson.build b/tests/meson.build index 3f9255a..dc45c32 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -115,10 +115,14 @@ t = executable('util', test_sources, ) test('util', t, env: test_env) -test_sources = [ 'test-ui-call.c' ] +mock_link_args = [ test_link_args, + '-Wl,--wrap=calls_contacts_provider_new', + ] + +test_sources = [ 'test-ui-call.c', 'mock-call.c', 'mock-call.h' ] t = executable('ui-call', test_sources, c_args : test_cflags, - link_args : test_link_args, + link_args : mock_link_args, pie: true, link_with : [calls_vala, libcalls], dependencies : calls_deps, diff --git a/tests/test-ui-call.c b/tests/test-ui-call.c index 30267ec..98048de 100644 --- a/tests/test-ui-call.c +++ b/tests/test-ui-call.c @@ -8,9 +8,18 @@ */ #include "calls-ui-call-data.h" +#include "mock-call.h" +#include "mock-contacts-provider.h" #include +CallsContactsProvider * +__wrap_calls_contacts_provider_new (CallsSettings *settings) +{ + return NULL; +} + + static void test_cui_call_state_mapping (void) { @@ -32,6 +41,50 @@ test_cui_call_state_mapping (void) } +static void +test_cui_call_properties (void) +{ + CallsMockCall *mock_call = calls_mock_call_new (); + CallsCall *call; /* so we can avoid having to cast all the time */ + CallsUiCallData *ui_call; + CuiCall *cui_call; /* so we can avoid having to cast all the time */ + + gboolean inbound; + + g_assert_true (CALLS_IS_CALL (mock_call)); + call = CALLS_CALL (mock_call); + ui_call = calls_ui_call_data_new (call); + + g_assert_true (CUI_IS_CALL (ui_call)); + cui_call = CUI_CALL (ui_call); + + g_assert_true (calls_call_get_id (call) == cui_call_get_id (cui_call)); + g_assert_true (calls_call_get_name (call) == cui_call_get_display_name (cui_call)); + g_assert_true (calls_call_state_to_cui_call_state (calls_call_get_state (call)) == + cui_call_get_state (cui_call)); + + g_object_get (cui_call, "inbound", &inbound, NULL); + g_assert_true (calls_call_get_inbound (call) == inbound); + + /* Test if properties get updated */ + calls_call_answer (call); + g_assert_true (calls_call_state_to_cui_call_state (calls_call_get_state (call)) == + cui_call_get_state (cui_call)); + + calls_call_hang_up (call); + g_assert_true (calls_call_state_to_cui_call_state (calls_call_get_state (call)) == + cui_call_get_state (cui_call)); + + calls_call_set_id (call, "0123456789"); + g_assert_true (calls_call_get_id (call) == cui_call_get_id (cui_call)); + g_assert_cmpstr (cui_call_get_id (cui_call), ==, "0123456789"); + + calls_call_set_name (call, "Jane Doe"); + g_assert_true (calls_call_get_name (call) == cui_call_get_display_name (cui_call)); + g_assert_cmpstr (cui_call_get_display_name (cui_call), ==, "Jane Doe"); +} + + int main (int argc, char *argv[]) @@ -39,6 +92,7 @@ main (int argc, gtk_test_init (&argc, &argv, NULL); g_test_add_func ("/Calls/UI/state_mapping", (GTestFunc) test_cui_call_state_mapping); + g_test_add_func ("/Calls/UI/call_properties", (GTestFunc) test_cui_call_properties); g_test_run (); }