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"
/******************************************************************************
* Callbacks
*****************************************************************************/
static
void
test_purple_conversation_manager_counter_cb
(
G_GNUC_UNUSED
PurpleConversationManager
*
manager
,
G_GNUC_UNUSED
PurpleConversation
*
conversation
,
gpointer
data
)
{
guint
*
counter
=
data
;
*
counter
=
*
counter
+
1
;
}
/******************************************************************************
* Tests
*****************************************************************************/
static
void
test_purple_conversation_manager_register_unregister
(
void
)
{
PurpleAccount
*
account
=
NULL
;
PurpleConversationManager
*
manager
=
NULL
;
PurpleConversation
*
conversation
=
NULL
;
GList
*
conversations
=
NULL
;
guint
registered_counter
=
0
,
unregistered_counter
=
0
;
gboolean
result
=
FALSE
;
manager
=
g_object_new
(
PURPLE_TYPE_CONVERSATION_MANAGER
,
NULL
);
g_assert_true
(
PURPLE_IS_CONVERSATION_MANAGER
(
manager
));
/* Wire up our signals. */
g_signal_connect
(
manager
,
"registered"
,
G_CALLBACK
(
test_purple_conversation_manager_counter_cb
),
&
registered_counter
);
g_signal_connect
(
manager
,
"unregistered"
,
G_CALLBACK
(
test_purple_conversation_manager_counter_cb
),
&
unregistered_counter
);
/* Create our account. */
account
=
purple_account_new
(
"test"
,
"test"
);
/* Create the conversation. */
conversation
=
g_object_new
(
PURPLE_TYPE_CONVERSATION
,
"account"
,
account
,
"name"
,
"purple_conversation_autoset_title sucks"
,
NULL
);
/* Add the conversation to the manager. */
result
=
purple_conversation_manager_register
(
manager
,
conversation
);
g_assert_true
(
result
);
/* Make sure the conversation is available. */
conversations
=
purple_conversation_manager_get_all
(
manager
);
g_assert_nonnull
(
conversations
);
g_assert_cmpuint
(
g_list_length
(
conversations
),
==
,
1
);
g_list_free
(
conversations
);
/* Make sure the registered signal was called. */
g_assert_cmpuint
(
registered_counter
,
==
,
1
);
/* Remove the contact. */
result
=
purple_conversation_manager_unregister
(
manager
,
conversation
);
g_assert_true
(
result
);
g_assert_cmpuint
(
unregistered_counter
,
==
,
1
);
/* Clean up.*/
g_clear_object
(
&
conversation
);
g_clear_object
(
&
account
);
g_clear_object
(
&
manager
);
}
/******************************************************************************
* Signal Tests
*****************************************************************************/
static
void
test_purple_conversation_manager_signal_conversation_changed_cb
(
PurpleConversationManager
*
manager
,
PurpleConversation
*
conversation
,
GParamSpec
*
pspec
,
gpointer
data
)
{
guint
*
counter
=
data
;
g_assert_true
(
PURPLE_IS_CONVERSATION_MANAGER
(
manager
));
g_assert_true
(
PURPLE_IS_CONVERSATION
(
conversation
));
g_assert_true
(
G_IS_PARAM_SPEC
(
pspec
));
*
counter
=
*
counter
+
1
;
}
static
void
test_purple_conversation_manager_signal_conversation_changed
(
void
)
{
PurpleAccount
*
account
=
NULL
;
PurpleConversationManager
*
manager
=
NULL
;
PurpleConversation
*
conversation
=
NULL
;
guint
counter
=
0
;
guint
detailed_counter
=
0
;
gboolean
result
=
FALSE
;
manager
=
g_object_new
(
PURPLE_TYPE_CONVERSATION_MANAGER
,
NULL
);
g_signal_connect
(
manager
,
"conversation-changed"
,
G_CALLBACK
(
test_purple_conversation_manager_signal_conversation_changed_cb
),
&
counter
);
g_signal_connect
(
manager
,
"conversation-changed::title"
,
G_CALLBACK
(
test_purple_conversation_manager_signal_conversation_changed_cb
),
&
detailed_counter
);
account
=
purple_account_new
(
"test"
,
"test"
);
conversation
=
g_object_new
(
PURPLE_TYPE_CONVERSATION
,
"account"
,
account
,
"name"
,
"kool kats"
,
NULL
);
purple_conversation_manager_register
(
manager
,
conversation
);
/* Set the features and title of the conversation, and verify our counters. */
purple_conversation_set_features
(
conversation
,
PURPLE_CONNECTION_FLAG_NO_IMAGES
);
purple_conversation_set_title
(
conversation
,
"A place for kool kats"
);
g_assert_cmpuint
(
counter
,
==
,
2
);
g_assert_cmpuint
(
detailed_counter
,
==
,
1
);
/* Unregister the conversation, to make sure signals are no longer
* propagated.
*/
result
=
purple_conversation_manager_unregister
(
manager
,
conversation
);
g_assert_true
(
result
);
counter
=
0
;
detailed_counter
=
0
;
purple_conversation_set_title
(
conversation
,
"no longer a place for kool kats"
);
g_assert_cmpuint
(
counter
,
==
,
0
);
g_assert_cmpuint
(
detailed_counter
,
==
,
0
);
/* Clean up. */
g_clear_object
(
&
conversation
);
g_clear_object
(
&
account
);
g_clear_object
(
&
manager
);
}
/******************************************************************************
* Main
*****************************************************************************/
gint
main
(
gint
argc
,
gchar
*
argv
[])
{
gint
ret
=
0
;
g_test_init
(
&
argc
,
&
argv
,
NULL
);
test_ui_purple_init
();
g_test_add_func
(
"/conversation-manager/register-unregister"
,
test_purple_conversation_manager_register_unregister
);
g_test_add_func
(
"/conversation-manager/signals/conversation-changed"
,
test_purple_conversation_manager_signal_conversation_changed
);
ret
=
g_test_run
();
test_ui_purple_uninit
();
return
ret
;
}