--- a/libpurple/tests/meson.build Thu Apr 11 03:51:54 2024 -0500
+++ b/libpurple/tests/meson.build Thu Apr 11 03:54:25 2024 -0500
@@ -35,7 +35,6 @@
'protocol_file_transfer',
--- a/libpurple/tests/test_protocol_xfer.c Thu Apr 11 03:51:54 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
- * Purple is the legal property of its developers, whose names are too
- * numerous to list here. Please refer to the COPYRIGHT file distributed
- * with this source distribution
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or (at
- * your option) any later version.
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
-/******************************************************************************
- * PurpleProtcolXfer Implementations
- *****************************************************************************/
-static GType test_purple_protocol_xfer_get_type(void);
- gboolean new_xfer_called;
-} TestPurpleProtocolXfer;
- PurpleProtocolClass parent;
-} TestPurpleProtocolXferClass;
-test_purple_protocol_xfer_can_receive(PurpleProtocolXfer *prplxfer,
- G_GNUC_UNUSED PurpleConnection *c,
- G_GNUC_UNUSED const gchar *who)
- TestPurpleProtocolXfer *test_xfer = (TestPurpleProtocolXfer *)prplxfer;
- return test_xfer->can_send;
-test_purple_protocol_xfer_send_file(PurpleProtocolXfer *prplxfer,
- G_GNUC_UNUSED PurpleConnection *c,
- G_GNUC_UNUSED const gchar *who,
- G_GNUC_UNUSED const gchar *filename)
- TestPurpleProtocolXfer *test_xfer = (TestPurpleProtocolXfer *)prplxfer;
- test_xfer->send_called = TRUE;
-test_purple_protocol_xfer_new_xfer(PurpleProtocolXfer *prplxfer,
- TestPurpleProtocolXfer *test_xfer = (TestPurpleProtocolXfer *)prplxfer;
- PurpleAccount *a = purple_connection_get_account(c);
- test_xfer->new_xfer_called = TRUE;
- return purple_xfer_new(a, PURPLE_XFER_TYPE_SEND, who);
-test_purple_protocol_xfer_iface_init(PurpleProtocolXferInterface *iface) {
- iface->can_receive = test_purple_protocol_xfer_can_receive;
- iface->send_file = test_purple_protocol_xfer_send_file;
- iface->new_xfer = test_purple_protocol_xfer_new_xfer;
-G_DEFINE_TYPE_WITH_CODE(
- TestPurpleProtocolXfer,
- test_purple_protocol_xfer,
- PURPLE_TYPE_PROTOCOL_XFER,
- test_purple_protocol_xfer_iface_init
-test_purple_protocol_xfer_init(G_GNUC_UNUSED TestPurpleProtocolXfer *prplxfer) {
-test_purple_protocol_xfer_class_init(G_GNUC_UNUSED TestPurpleProtocolXferClass *klass) {
-static TestPurpleProtocolXfer *
-test_purple_protocol_xfer_new(void) {
- return (TestPurpleProtocolXfer *)g_object_new(
- test_purple_protocol_xfer_get_type(),
-/******************************************************************************
- *****************************************************************************/
-test_purple_protocol_xfer_can_receive_func(void) {
- TestPurpleProtocolXfer *xfer = NULL;
- PurpleAccount *account = NULL;
- PurpleConnection *connection = NULL;
- gboolean actual = FALSE;
- xfer = test_purple_protocol_xfer_new();
- account = purple_account_new("prpl-xfer-can-receive", "prpl-xfer");
- connection = g_object_new(PURPLE_TYPE_CONNECTION, "account", account, NULL);
- g_assert_true(PURPLE_IS_PROTOCOL_XFER(xfer));
- xfer->can_send = FALSE;
- actual = purple_protocol_xfer_can_receive(PURPLE_PROTOCOL_XFER(xfer),
- g_assert_false(actual);
- actual = purple_protocol_xfer_can_receive(
- PURPLE_PROTOCOL_XFER(xfer),
- g_clear_object(&account);
-test_purple_protocol_xfer_send_file_func(void) {
- TestPurpleProtocolXfer *prplxfer = NULL;
- PurpleAccount *account = NULL;
- PurpleConnection *connection = NULL;
- prplxfer = g_object_new(test_purple_protocol_xfer_get_type(), NULL);
- account = purple_account_new("prpl-xfer-send", "prpl-xfer");
- connection = g_object_new(PURPLE_TYPE_CONNECTION, "account", account, NULL);
- purple_protocol_xfer_send_file(PURPLE_PROTOCOL_XFER(prplxfer), connection,
- g_assert_true(prplxfer->send_called);
- g_clear_object(&account);
- g_clear_object(&prplxfer);
-test_purple_protocol_xfer_new_func(void) {
- TestPurpleProtocolXfer *prplxfer = NULL;
- PurpleAccount *account = NULL;
- PurpleConnection *connection = NULL;
- PurpleXfer *xfer = NULL;
- prplxfer = g_object_new(test_purple_protocol_xfer_get_type(), NULL);
- account = purple_account_new("prpl-xfer-new-xfer", "prpl-xfer");
- connection = g_object_new(PURPLE_TYPE_CONNECTION, "account", account, NULL);
- xfer = purple_protocol_xfer_new_xfer(PURPLE_PROTOCOL_XFER(prplxfer),
- g_assert_true(PURPLE_IS_XFER(xfer));
- g_assert_cmpstr("foo", ==, purple_xfer_get_remote_user(xfer));
- g_assert_true(prplxfer->new_xfer_called);
- g_clear_object(&account);
- g_clear_object(&prplxfer);
-/******************************************************************************
- *****************************************************************************/
-main(gint argc, gchar **argv) {
- g_test_init(&argc, &argv, NULL);
- g_test_set_nonfatal_assertions();
- "/protocol-xfer/can-receive",
- test_purple_protocol_xfer_can_receive_func
- "/protocol-xfer/send-file",
- test_purple_protocol_xfer_send_file_func
- test_purple_protocol_xfer_new_func
- /* FIXME: We cannot call test_ui_purple_uninit() here because connections
- * are not easily destroyed if they haven't been fully implemented. */
--- a/libpurple/xfer.c Thu Apr 11 03:51:54 2024 -0500
+++ b/libpurple/xfer.c Thu Apr 11 03:54:25 2024 -0500
@@ -2517,30 +2517,17 @@
purple_xfer_new(PurpleAccount *account, PurpleXferType type, const char *who)
- PurpleProtocol *protocol;
g_return_val_if_fail(type != PURPLE_XFER_TYPE_UNKNOWN, NULL);
g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
g_return_val_if_fail(who != NULL, NULL);
- protocol = purple_account_get_protocol(account);
- if (PURPLE_IS_PROTOCOL_XFER(protocol)) {
- PurpleConnection *connection = purple_account_get_connection(account);
- xfer = purple_protocol_xfer_new_xfer(
- PURPLE_PROTOCOL_XFER(protocol),
- /* TODO: this should support the type */
- xfer = g_object_new(PURPLE_TYPE_XFER,
+ xfer = g_object_new(PURPLE_TYPE_XFER, @@ -2619,70 +2606,3 @@
-/**************************************************************************
- * PurpleXferProtocolInterface
- **************************************************************************/
-G_DEFINE_INTERFACE(PurpleProtocolXfer, purple_protocol_xfer,
-purple_protocol_xfer_default_init(G_GNUC_UNUSED PurpleProtocolXferInterface *face)
-purple_protocol_xfer_can_receive(PurpleProtocolXfer *prplxfer,
- PurpleConnection *connection,
- PurpleProtocolXferInterface *iface = NULL;
- g_return_val_if_fail(PURPLE_IS_PROTOCOL_XFER(prplxfer), FALSE);
- g_return_val_if_fail(PURPLE_IS_CONNECTION(connection), FALSE);
- g_return_val_if_fail(who, FALSE);
- iface = PURPLE_PROTOCOL_XFER_GET_IFACE(prplxfer);
- if(iface && iface->can_receive)
- return iface->can_receive(prplxfer, connection, who);
- /* If the PurpleProtocolXfer doesn't implement this function, we assume
- * there are no conditions where we can't send a file to the given user.
-purple_protocol_xfer_send_file(PurpleProtocolXfer *prplxfer,
- PurpleConnection *connection,
- PurpleProtocolXferInterface *iface = NULL;
- g_return_if_fail(PURPLE_IS_PROTOCOL_XFER(prplxfer));
- g_return_if_fail(PURPLE_IS_CONNECTION(connection));
- iface = PURPLE_PROTOCOL_XFER_GET_IFACE(prplxfer);
- if(iface && iface->send_file)
- iface->send_file(prplxfer, connection, who, filename);
-purple_protocol_xfer_new_xfer(PurpleProtocolXfer *prplxfer,
- PurpleConnection *connection,
- PurpleProtocolXferInterface *iface = NULL;
- g_return_val_if_fail(PURPLE_IS_PROTOCOL_XFER(prplxfer), FALSE);
- g_return_val_if_fail(PURPLE_IS_CONNECTION(connection), FALSE);
- g_return_val_if_fail(who, FALSE);
- iface = PURPLE_PROTOCOL_XFER_GET_IFACE(prplxfer);
- if(iface && iface->new_xfer)
- return iface->new_xfer(prplxfer, connection, who);
--- a/libpurple/xfer.h Thu Apr 11 03:51:54 2024 -0500
+++ b/libpurple/xfer.h Thu Apr 11 03:54:25 2024 -0500
@@ -980,84 +980,6 @@
PurpleXferUiOps *purple_xfers_get_ui_ops(void);
-/******************************************************************************
- *****************************************************************************/
-#define PURPLE_TYPE_PROTOCOL_XFER (purple_protocol_xfer_get_type())
-G_DECLARE_INTERFACE(PurpleProtocolXfer, purple_protocol_xfer, PURPLE,
- PROTOCOL_XFER, PurpleProtocol)
- * The protocol file transfer interface.
-struct _PurpleProtocolXferInterface {
- GTypeInterface parent_iface;
- gboolean (*can_receive)(PurpleProtocolXfer *prplxfer,
- PurpleConnection *connection, const gchar *who);
- void (*send_file)(PurpleProtocolXfer *prplxfer,
- PurpleConnection *connection, const gchar *who,
- const gchar *filename);
- PurpleXfer *(*new_xfer)(PurpleProtocolXfer *prplxfer,
- PurpleConnection *connection, const gchar *who);
- * purple_protocol_xfer_can_receive:
- * @prplxfer: The #PurpleProtocolXfer implementer instance
- * @connection: The #PurpleConnection that we're checking
- * @who: The user that we want to send a file transfer to.
- * Checks whether or not we can transfer a file to @who.
- * Returns: TRUE on success, FALSE otherwise.
-gboolean purple_protocol_xfer_can_receive(PurpleProtocolXfer *prplxfer, PurpleConnection *connection, const gchar *who);
- * purple_protocol_xfer_send_file:
- * @prplxfer: The #PurpleProtocolXfer implementer instance
- * @connection: The #PurpleConnection that we're checking
- * @who: The user that we want to set a file transfer to.
- * @filename: The name of the file to send.
- * Sends @filename to @who.
-void purple_protocol_xfer_send_file(PurpleProtocolXfer *prplxfer, PurpleConnection *connection, const gchar *who, const gchar *filename);
- * purple_protocol_xfer_new_xfer:
- * @prplxfer: The #PurpleProtocolXfer implementer instance
- * @connection: The #PurpleConnection that we're checking
- * @who: The user that we want to send a file transfer to.
- * Creates a new #PurpleXfer to @who.
- * Returns: (transfer full): A new #PurpleXfer instance.
-PurpleXfer *purple_protocol_xfer_new_xfer(PurpleProtocolXfer *prplxfer, PurpleConnection *connection, const gchar *who);
#endif /* PURPLE_XFER_H */
--- a/po/POTFILES.in Thu Apr 11 03:51:54 2024 -0500
+++ b/po/POTFILES.in Thu Apr 11 03:54:25 2024 -0500
@@ -120,7 +120,6 @@
libpurple/tests/test_keyvaluepair.c
libpurple/tests/test_markup.c
libpurple/tests/test_protocol_action.c
-libpurple/tests/test_protocol_xfer.c
libpurple/tests/test_purplepath.c
libpurple/tests/test_ui.c
libpurple/tests/test_util.c