diff libpurple/plugins/perl/scripts/conversation.pl @ 15373:5fe8042783c1

Rename gtk/ and libgaim/ to pidgin/ and libpurple/
author Sean Egan <seanegan@gmail.com>
date Sat, 20 Jan 2007 02:32:10 +0000
parents
children 2f8274ce570a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/plugins/perl/scripts/conversation.pl	Sat Jan 20 02:32:10 2007 +0000
@@ -0,0 +1,119 @@
+$MODULE_NAME = "Conversation Test";
+
+use Gaim;
+
+# All the information Gaim gets about our nifty plugin
+%PLUGIN_INFO = ( 
+	perl_api_version => 2, 
+	name => "Perl: $MODULE_NAME", 
+	version => "0.1", 
+	summary => "Test plugin for the Perl interpreter.", 
+	description => "Implements a set of test proccedures to ensure all " .
+	               "functions that work in the C API still work in the " .
+		       "Perl plugin interface.  As XSUBs are added, this " .
+		       "*should* be updated to test the changes.  " .
+		       "Furthermore, this will function as the tutorial perl " .
+		       "plugin.", 
+	author => "John H. Kelm <johnhkelm\@gmail.com>", 
+	url => "http://sourceforge.net/users/johnhkelm/", 
+	
+	load => "plugin_load", 
+	unload => "plugin_unload" 
+); 
+
+
+	# These names must already exist
+	my $GROUP		= "UIUC Buddies";
+	my $USERNAME 		= "johnhkelm2";
+	
+	# We will create these on load then destroy them on unload
+	my $TEST_GROUP		= "UConn Buddies";
+	my $TEST_NAME	 	= "johnhkelm";
+	my $TEST_ALIAS	 	= "John Kelm";
+	my $PROTOCOL_ID 	= "prpl-oscar";
+
+
+sub plugin_init { 
+	return %PLUGIN_INFO; 
+} 
+
+
+# This is the sub defined in %PLUGIN_INFO to be called when the plugin is loaded
+#	Note: The plugin has a reference to itself on top of the argument stack.
+sub plugin_load { 
+	my $plugin = shift; 
+	print "#" x 80 . "\n\n";
+
+	print "PERL: Finding account.\n";
+	$account = Gaim::Accounts::find($USERNAME, $PROTOCOL_ID);
+	
+	#########  TEST CODE HERE  ##########
+	# First we create two new conversations.
+	print "Testing Gaim::Conversation::new()...";
+	$conv1 = Gaim::Conversation->new(1, $account, "Test Conversation 1");
+	if ($conv1) { print "ok.\n"; } else { print "fail.\n"; }
+
+	print "Testing Gaim::Conversation::new()...";
+	$conv2 = Gaim::Conversation->new(1, $account, "Test Conversation 2");
+	if ($conv2) { print "ok.\n"; } else { print "fail.\n"; }
+	
+	# Second we create a window to display the conversations in.
+	#  Note that the package here is Gaim::Conversation::Window
+	print "Testing Gaim::Conversation::Window::new()...\n";
+	$win = Gaim::Conversation::Window::new();
+
+	# The third thing to do is to add the two conversations to the windows.
+	# The subroutine add_conversation() returns the number of conversations
+	# present in the window.
+	print "Testing Gaim::Conversation::Window::add_conversation()...";
+	$conv_count = $conv1->add_conversation();
+	if ($conv_count) { 
+		print "ok..." . $conv_count . " conversations...\n";
+	} else {
+		print "fail.\n";
+	}
+
+	print "Testing Gaim::Conversation::Window::add_conversation()...";
+	$conv_count = $win->add_conversation($conv2);
+	if ($conv_count) {
+		print "ok..." . $conv_count . " conversations...\n";
+	} else {
+		print "fail.\n";
+	}
+
+	# Now the window is displayed to the user.
+	print "Testing Gaim::Conversation::Window::show()...\n";
+	$win->show();
+
+	# Use get_im_data() to get a handle for the conversation	
+	print "Testing Gaim::Conversation::get_im_data()...\n";
+	$im = $conv1->get_im_data();
+	if ($im) { print "ok.\n"; } else { print "fail.\n"; }
+
+	# Here we send messages to the conversation
+	print "Testing Gaim::Conversation::IM::send()...\n";
+	$im->send("Message Test.");
+
+	print "Testing Gaim::Conversation::IM::write()...\n";
+	$im->write("SENDER", "<b>Message</b> Test.", 0, 0);
+	
+	print "#" x 80 . "\n\n";
+} 
+
+sub plugin_unload { 
+	my $plugin = shift; 
+
+	print "#" x 80 . "\n\n";
+	#########  TEST CODE HERE  ##########
+
+	print "Testing Gaim::Conversation::Window::get_conversation_count()...\n";
+	$conv_count = $win->get_conversation_count();
+	print "...and it returned $conv_count.\n";
+	if ($conv_count > 0) {
+	        print "Testing Gaim::Conversation::Window::destroy()...\n";
+	        $win->destroy();
+	}
+	
+	print "\n\n" . "#" x 80 . "\n\n";
+}
+