qulogic/pidgin
Clone
Summary
Browse
Changes
Graph
Make sure all of the license headers for IRCv3 are GPLv2
default
4 months ago, Gary Kramlich
31e8c7c92e2f
Make sure all of the license headers for IRCv3 are GPLv2
Testing Done:
Ran `licensecheck` from debian in the following way.
```
$ licensecheck *.[ch] | cut -d: -f 2 | sort | uniq -c
27 GNU General Public License v2.0 or later
```
Reviewed at https://reviews.imfreedom.org/r/2913/
/*
* Purple - Internet Messaging Library
* Copyright (C) Pidgin Developers <devel@pidgin.im>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, see <https://www.gnu.org/licenses/>.
*/
#include
<glib.h>
#include
<purple.h>
#include
"test_ui.h"
/******************************************************************************
* Add/Remove Test
*****************************************************************************/
static
void
test_purple_file_transfer_manager_add_remove_cb
(
PurpleFileTransferManager
*
manager
,
PurpleFileTransfer
*
transfer
,
gpointer
data
)
{
guint
*
counter
=
data
;
g_assert_true
(
PURPLE_IS_FILE_TRANSFER_MANAGER
(
manager
));
g_assert_true
(
PURPLE_IS_FILE_TRANSFER
(
transfer
));
*
counter
=
*
counter
+
1
;
}
static
void
test_purple_file_transfer_manager_add_remove
(
void
)
{
PurpleAccount
*
account
=
NULL
;
PurpleContactInfo
*
remote
=
NULL
;
PurpleFileTransfer
*
transfer
=
NULL
;
PurpleFileTransferManager
*
manager
=
NULL
;
guint
added
=
0
;
guint
removed
=
0
;
account
=
purple_account_new
(
"test"
,
"test"
);
remote
=
purple_contact_info_new
(
NULL
);
manager
=
g_object_new
(
PURPLE_TYPE_FILE_TRANSFER_MANAGER
,
NULL
);
g_signal_connect
(
manager
,
"added"
,
G_CALLBACK
(
test_purple_file_transfer_manager_add_remove_cb
),
&
added
);
g_signal_connect
(
manager
,
"removed"
,
G_CALLBACK
(
test_purple_file_transfer_manager_add_remove_cb
),
&
removed
);
g_assert_cmpuint
(
g_list_model_get_n_items
(
G_LIST_MODEL
(
manager
)),
==
,
0
);
/* Add the transfer, verify that it was added, and that the signal was
* emitted.
*/
transfer
=
purple_file_transfer_new_receive
(
account
,
remote
,
"foo.bar"
,
0
);
purple_file_transfer_manager_add
(
manager
,
transfer
);
g_assert_cmpuint
(
g_list_model_get_n_items
(
G_LIST_MODEL
(
manager
)),
==
,
1
);
g_assert_cmpuint
(
added
,
==
,
1
);
g_assert_cmpuint
(
removed
,
==
,
0
);
/* Remove the transfer, verify that it was removed, and that the signal
* was emitted.
*/
purple_file_transfer_manager_remove
(
manager
,
transfer
);
g_assert_cmpuint
(
g_list_model_get_n_items
(
G_LIST_MODEL
(
manager
)),
==
,
0
);
g_assert_cmpuint
(
added
,
==
,
1
);
g_assert_cmpuint
(
removed
,
==
,
1
);
/* Cleanup */
g_clear_object
(
&
transfer
);
g_clear_object
(
&
manager
);
g_clear_object
(
&
remote
);
g_clear_object
(
&
account
);
}
/******************************************************************************
* Signal Propagation Tests
*****************************************************************************/
static
void
test_purple_file_transfer_manager_transfer_changed_cb
(
PurpleFileTransferManager
*
manager
,
PurpleFileTransfer
*
transfer
,
GParamSpec
*
pspec
,
gpointer
data
)
{
guint
*
counter
=
data
;
g_assert_true
(
PURPLE_IS_FILE_TRANSFER_MANAGER
(
manager
));
g_assert_true
(
PURPLE_IS_FILE_TRANSFER
(
transfer
));
g_assert_true
(
G_IS_PARAM_SPEC
(
pspec
));
*
counter
=
*
counter
+
1
;
}
static
void
test_purple_file_transfer_manager_propagates_notify
(
void
)
{
PurpleAccount
*
account
=
NULL
;
PurpleContactInfo
*
remote
=
NULL
;
PurpleFileTransferManager
*
manager
=
NULL
;
PurpleFileTransfer
*
transfer
=
NULL
;
guint
generic_counter
=
0
;
guint
specific_counter
=
0
;
account
=
purple_account_new
(
"test"
,
"test"
);
remote
=
purple_contact_info_new
(
NULL
);
manager
=
g_object_new
(
PURPLE_TYPE_FILE_TRANSFER_MANAGER
,
NULL
);
g_signal_connect
(
manager
,
"transfer-changed"
,
G_CALLBACK
(
test_purple_file_transfer_manager_transfer_changed_cb
),
&
generic_counter
);
g_signal_connect
(
manager
,
"transfer-changed::state"
,
G_CALLBACK
(
test_purple_file_transfer_manager_transfer_changed_cb
),
&
specific_counter
);
transfer
=
purple_file_transfer_new_receive
(
account
,
remote
,
"foo.bar"
,
0
);
purple_file_transfer_manager_add
(
manager
,
transfer
);
/* Verify our counters are still 0. */
g_assert_cmpuint
(
generic_counter
,
==
,
0
);
g_assert_cmpuint
(
specific_counter
,
==
,
0
);
/* Change the state property and verify that each counter was incremented
* by 1.
*/
purple_file_transfer_set_state
(
transfer
,
PURPLE_FILE_TRANSFER_STATE_NEGOTIATING
);
g_assert_cmpuint
(
generic_counter
,
==
,
1
);
g_assert_cmpuint
(
specific_counter
,
==
,
1
);
/* Now set another property and verify that only the generic counter was
* incremented.
*/
purple_file_transfer_set_message
(
transfer
,
"heyo"
);
g_assert_cmpuint
(
generic_counter
,
==
,
2
);
g_assert_cmpuint
(
specific_counter
,
==
,
1
);
g_clear_object
(
&
transfer
);
g_clear_object
(
&
manager
);
g_clear_object
(
&
remote
);
g_clear_object
(
&
account
);
}
/******************************************************************************
* Main
*****************************************************************************/
gint
main
(
gint
argc
,
gchar
*
argv
[])
{
gint
ret
=
0
;
g_test_init
(
&
argc
,
&
argv
,
NULL
);
g_test_set_nonfatal_assertions
();
test_ui_purple_init
();
g_test_add_func
(
"/file-transfer-manager/add-remove"
,
test_purple_file_transfer_manager_add_remove
);
g_test_add_func
(
"/file-transfer-manager/propagates-notify"
,
test_purple_file_transfer_manager_propagates_notify
);
ret
=
g_test_run
();
test_ui_purple_uninit
();
return
ret
;
}