# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Net-FTPSSL.t' ######################### # change 'tests => 1' to 'tests => last_test_to_print'; use strict; use Test::More; plan tests => 8; BEGIN { use_ok('Net::FTPSSL') } diag( "\nYou can also perform a deeper test." ); diag( "Some informations will be required for this test:" ); diag( "A secure ftp server address, a user, a password and a directory" ); diag( "where the user has permissions to read and write." ); my $more_test = ask_yesno("Do you want to make a deeper test"); SKIP: { skip "Deeper test skipped for some reason...", 8 unless $more_test; my( $address, $server, $port, $user, $pass, $mode, $dir ); $address = ask("Server address ( host[:port] )"); $mode = ask("\tConnection mode (I)mplicit or (E)xplicit. (default 'E')"); $user = ask("\tUser (default 'anonymous')"); $pass = ask("\tPassword (default 'user\@localhost')"); $dir = ask("\tDirectory (default \/)"); ( $server, $port ) = split( /:/, $address ); $port = 21 unless $port; $mode = EXP_CRYPT unless $mode =~ /(I|E)/; $user = 'anonymous' unless $user; $pass = 'user@localhost' unless $pass; my $ftp = Net::FTPSSL->new( $server, Port => $port, Encryption => $mode ) or die "Can't open $server:$port"; isa_ok( $ftp, 'Net::FTPSSL', 'Net::FTP object creation' ); ok( $ftp->login( $user, $pass ), 'Login' ); ok( $ftp->cwd( $dir ), "Changed the dir to $dir" ); ok( scalar $ftp->list() != 0, 'list() command' ); ok( $ftp->put( './t/test_file.tar.gz' ), 'puting a test file on $dir' ); ok( $ftp->rename('test_file.tar.gz', 'test_file_new.tar.gz'), 'renaming it' ); ok( $ftp->get('test_file_new.tar.gz', './t/test_file_new.tar.gz'), 'getting the renamed file' ); ok( $ftp->delete('test_file_new.tar.gz'), 'deleting the test file' ); $ftp->quit(); } sub ask { my $question = shift; diag("\n$question ? "); my $answer = ; chomp $answer; return $answer; } sub ask_yesno { my $question = shift; diag("\n$question ? [y/N]"); my $answer = ; chomp $answer; return $answer =~ /^y(es)*$/i ? 1 : 0; } # vim:ft=perl: