#!/usr/bin/perl -w # test-imsp.pl # # Joseph Jackson # 09-May-2000 # # Quick demonstration and test for the Cyrus IMSP Perl module. use Cyrus::IMAP::IMSP; print "Logging in...\n"; $server = $ARGV[0] || 'imsp.andrew.cmu.edu'; my $client = Cyrus::IMAP::IMSP->new($server, $ARGV[1] || "imsp"); die "New command failed" if (!defined $client); # # The maxssf=0 option is required. # Taking it away can lead to hangs in the send function. # # # Use this form if you are an IMSP admin who can act on behalf of others # $rc = $client->authenticate(-maxssf => 0, -user => 'pcyrus'); # $client->authenticate(-maxssf => 0); print "Error from authenticate is: ", $client->error if ($client->error); print "Getting common.* options\n"; %options = $client->get('common.*'); print "Error from get is: ", $client->error, "\n" if ($client->error); foreach my $option (sort keys %options) { print " Option: '", $option, "'\n Value: '", $options{$option}, "'\n"; } print "Setting testing.* options\n"; print " testing.one... "; if (!$client->set('testing.one', 'string value')) { print "Error from set is: ", $client->error; } print "\n"; print " testing.two... "; if (!$client->set('testing.two', '2')) { print "Error from set is: ", $client->error; } print "\n"; print " testing.empty... "; if (!$client->set('testing.empty', '')) { print "Error from set is: ", $client->error; } print "\n"; print " testing.deleteme... "; if (!$client->set('testing.deleteme', 'delete this one')) { print "Error from set is: ", $client->error; } print "\n"; print " testing.complicated... "; if (!$client->set('testing.complicated', '(("Cyrus:INBOX" ((1024 768 0 0 300 400)) (true false)))')) { print "Error from set is: ", $client->error; } print "\n"; print " testing.embeddedcr... "; if (!$client->set('testing.embeddedcr', "There is a CR LF here:\r\nHere's another:\r\nThat was it!")) { print "Error from set is: ", $client->error; } print "\n"; print "Getting testing options\n"; %options = $client->get('testing.*'); print "Error from get is: ", $client->error, "\n" if ($client->error); foreach my $option (sort keys %options) { print " Option: '", $option, "'\n Value: '", $options{$option}, "'\n"; } print "Unsetting testing.deleteme and testing.not-there\n"; if (!$client->unset('testing.deleteme')) { print "Error from unset is: ", $client->error, "\n"; } if (!$client->unset('testing.not-there')) { print "EXPECTED Error from unset is: ", $client->error, "\n"; } print "Getting testing options\n"; %options = $client->get('testing.*'); print "Error from get is: ", $client->error, "\n" if ($client->error); foreach my $option (sort keys %options) { print " Option: '", $option, "'\n Value: '", $options{$option}, "'\n"; } print "Unsetting remaining testing options\n"; if (!$client->unset('testing.one')) { print "Error from unset is: ", $client->error, "\n"; } if (!$client->unset('testing.two')) { print "Error from unset is: ", $client->error, "\n"; } if (!$client->unset('testing.empty')) { print "Error from unset is: ", $client->error, "\n"; } if (!$client->unset('testing.complicated')) { print "Error from unset is: ", $client->error, "\n"; } if (!$client->unset('testing.embeddedcr')) { print "Error from unset is: ", $client->error, "\n"; } # Should return nothing print "Verifying that all the options are gone\n"; %options = $client->get('testing.*'); print "Error from get is: ", $client->error, "\n" if ($client->error); foreach my $option (sort keys %options) { print " Option: '", $option, "'\n Value: '", $options{$option}, "'\n"; }