diff options
author | Travis Reitter <treitter@gmail.com> | 2009-12-17 09:26:00 -0800 |
---|---|---|
committer | Travis Reitter <treitter@gmail.com> | 2009-12-17 09:41:33 -0800 |
commit | 871a0eb7f550db88ade8c95b81617a4af7451314 (patch) | |
tree | efc9b683ef72eb61e8cf0d3009c4ed8b78359734 | |
parent | 55b707c41db41c7a30aea70cca1e1366e66e7223 (diff) | |
download | evolution-data-server-871a0eb7f550db88ade8c95b81617a4af7451314.tar.gz |
Port EDataCal method 'getCalAddress' and add a regression test.
-rw-r--r-- | calendar/libecal/e-cal.c | 6 | ||||
-rw-r--r-- | calendar/libecal/e-data-cal-gdbus-bindings.h | 14 | ||||
-rw-r--r-- | calendar/tests/ecal/Makefile.am | 5 | ||||
-rw-r--r-- | calendar/tests/ecal/ecal-test-utils.c | 15 | ||||
-rw-r--r-- | calendar/tests/ecal/ecal-test-utils.h | 3 | ||||
-rw-r--r-- | calendar/tests/ecal/test-ecal-get-cal-address.c | 28 |
6 files changed, 68 insertions, 3 deletions
diff --git a/calendar/libecal/e-cal.c b/calendar/libecal/e-cal.c index 33939bf07..3b9cf28b1 100644 --- a/calendar/libecal/e-cal.c +++ b/calendar/libecal/e-cal.c @@ -1604,17 +1604,17 @@ e_cal_get_cal_address (ECal *ecal, gchar **cal_address, GError **error) e_return_error_if_fail (E_IS_CAL (ecal), E_CALENDAR_STATUS_INVALID_ARG); e_return_error_if_fail (cal_address != NULL, E_CALENDAR_STATUS_INVALID_ARG); priv = ecal->priv; - e_return_error_if_fail (priv->proxy, E_CALENDAR_STATUS_REPOSITORY_OFFLINE); + e_return_error_if_fail (priv->gdbus_proxy, E_CALENDAR_STATUS_REPOSITORY_OFFLINE); *cal_address = NULL; if (priv->cal_address == NULL) { - e_return_error_if_fail (priv->proxy, E_CALENDAR_STATUS_REPOSITORY_OFFLINE); + e_return_error_if_fail (priv->gdbus_proxy, E_CALENDAR_STATUS_REPOSITORY_OFFLINE); if (priv->load_state != E_CAL_LOAD_LOADED) { E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_URI_NOT_LOADED, error); } LOCK_CONN (); - if (!org_gnome_evolution_dataserver_calendar_Cal_get_cal_address (priv->proxy, cal_address, error)) { + if (!e_data_cal_gdbus_get_cal_address_sync (priv->gdbus_proxy, cal_address, error)) { UNLOCK_CONN (); E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_CORBA_EXCEPTION, error); } diff --git a/calendar/libecal/e-data-cal-gdbus-bindings.h b/calendar/libecal/e-data-cal-gdbus-bindings.h index eee9f9214..e47c7fa0b 100644 --- a/calendar/libecal/e-data-cal-gdbus-bindings.h +++ b/calendar/libecal/e-data-cal-gdbus-bindings.h @@ -130,4 +130,18 @@ e_data_cal_gdbus_remove_sync (GDBusProxy *proxy, return demarshal_retvals__VOID (retvals); } +static gboolean +e_data_cal_gdbus_get_cal_address_sync (GDBusProxy *proxy, + char **address, + GError **error) +{ + GVariant *parameters; + GVariant *retvals; + + parameters = g_variant_new ("()"); + retvals = g_dbus_proxy_invoke_method_sync (proxy, "getCalAddress", parameters, -1, NULL, error); + + return demarshal_retvals__STRING (retvals, address); +} + G_END_DECLS diff --git a/calendar/tests/ecal/Makefile.am b/calendar/tests/ecal/Makefile.am index 8d87c49e9..f8375676b 100644 --- a/calendar/tests/ecal/Makefile.am +++ b/calendar/tests/ecal/Makefile.am @@ -30,9 +30,11 @@ test_scripts = \ test-runner.sh \ cleanup.sh +# ordered by relative complexity TESTS = \ test-ecal-remove \ test-ecal-open \ + test-ecal-get-cal-address \ $(NULL) # The test program @@ -42,6 +44,9 @@ TEST_ECAL_CPPFLAGS= \ $(libecal_test_utils_la_CPPFLAGS) \ $(NULL) +# ordered alphanumerically +test_ecal_get_cal_address_LDADD=$(TEST_ECAL_LIBS) +test_ecal_get_cal_address_CPPFLAGS=$(TEST_ECAL_CPPFLAGS) test_ecal_open_LDADD=$(TEST_ECAL_LIBS) test_ecal_open_CPPFLAGS=$(TEST_ECAL_CPPFLAGS) test_ecal_remove_LDADD=$(TEST_ECAL_LIBS) diff --git a/calendar/tests/ecal/ecal-test-utils.c b/calendar/tests/ecal/ecal-test-utils.c index 185e71f6c..142dd4be9 100644 --- a/calendar/tests/ecal/ecal-test-utils.c +++ b/calendar/tests/ecal/ecal-test-utils.c @@ -141,3 +141,18 @@ ecal_test_utils_cal_remove (ECal *cal) g_object_unref (cal); } + +char* +ecal_test_utils_cal_get_cal_address (ECal *cal) +{ + GError *error = NULL; + char *address = NULL; + + if (!e_cal_get_cal_address (cal, &address, &error)) { + g_warning ("failed to get calendar address; %s\n", error->message); + exit(1); + } + g_print ("successfully got the calendar address\n"); + + return address; +} diff --git a/calendar/tests/ecal/ecal-test-utils.h b/calendar/tests/ecal/ecal-test-utils.h index ed5104291..e4ffc40c2 100644 --- a/calendar/tests/ecal/ecal-test-utils.h +++ b/calendar/tests/ecal/ecal-test-utils.h @@ -47,4 +47,7 @@ ecal_test_utils_cal_async_open (ECal *cal, void ecal_test_utils_cal_remove (ECal *cal); +char* +ecal_test_utils_cal_get_cal_address (ECal *cal); + #endif /* _ECAL_TEST_UTILS_H */ diff --git a/calendar/tests/ecal/test-ecal-get-cal-address.c b/calendar/tests/ecal/test-ecal-get-cal-address.c new file mode 100644 index 000000000..b015d398f --- /dev/null +++ b/calendar/tests/ecal/test-ecal-get-cal-address.c @@ -0,0 +1,28 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +#include <stdlib.h> +#include <libecal/e-cal.h> + +#include "ecal-test-utils.h" + +gint +main (gint argc, gchar **argv) +{ + ECal *cal; + char *uri = NULL; + char *address; + + g_type_init (); + + cal = ecal_test_utils_cal_new_temp (&uri, E_CAL_SOURCE_TYPE_EVENT); + ecal_test_utils_cal_open (cal, FALSE); + + address = ecal_test_utils_cal_get_cal_address (cal); + g_print ("calendar address: '%s'\n", address); + + ecal_test_utils_cal_remove (cal); + + g_free (address); + + return 0; +} |