summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrautenberg <rautenberg@in-silico.ch>2014-05-28 16:45:45 +0200
committerrautenberg <rautenberg@in-silico.ch>2014-05-28 16:45:45 +0200
commitd4eab6ec9e5e0c2b5e32050d862335ac345bd8ee (patch)
tree29b9ae6c6f4031561a6e497d1fda1323ac074e83
parented226cdb961421c56a1d63bbb2e9edeb41718858 (diff)
add basic FTP server functionality tests
-rw-r--r--test/toxbank-investigation-ftp.rb62
1 files changed, 62 insertions, 0 deletions
diff --git a/test/toxbank-investigation-ftp.rb b/test/toxbank-investigation-ftp.rb
new file mode 100644
index 0000000..624e38b
--- /dev/null
+++ b/test/toxbank-investigation-ftp.rb
@@ -0,0 +1,62 @@
+require_relative "toxbank-setup.rb"
+require File.join(File.expand_path(File.dirname(__FILE__)),".." ,".." ,"toxbank-investigation", "util.rb")
+require 'net/ftp'
+
+begin
+ puts "Service URI is: #{$investigation[:uri]} with FTP server: #{$ftp[:uri]}"
+ $ftp = Net::FTP.open($ftp[:uri], $pi[:name], $pi[:password])
+rescue
+ puts "Configuration Error: $ftp[:uri] is not defined in: " + File.join(ENV["HOME"],".opentox","config","test.rb")
+ exit
+end
+
+class TBInvestigationFTP < MiniTest::Test
+
+ i_suck_and_my_tests_are_order_dependent!
+
+ $testdir = "nightlytempdir#{Time.now.strftime("%Y%m%d")}" # test directory on ftp server e.G.: nightlytempdir20140528
+
+ # check user root dir
+ def test_00_checkftpconnection
+ $ftp.chdir("/")
+ assert_equal $ftp.pwd, "/"
+ end
+
+ # create a testdirectory and upload a file
+ def test_01_create_folder_and_upload_file
+ file = File.join File.dirname(__FILE__), "data/toxbank-investigation/valid", "unformated.zip"
+
+ begin
+ $ftp.chdir($testdir)
+ rescue Net::FTPPermError, NameError => boom
+ $ftp.mkdir($testdir)
+ end
+ $ftp.chdir("/")
+ $ftp.chdir($testdir)
+ assert_equal $ftp.pwd, "/#{$testdir}"
+ files = $ftp.list
+
+ $ftp.putbinaryfile(file)
+ f = $ftp.list(File.basename(file))
+ assert_equal f[0].split[8], File.basename(file), "file #{File.basename(file)} do not exist on ftp server."
+
+ $ftp.delete(File.basename(file))
+ assert_raises Net::FTPTempError do
+ f = $ftp.list(File.basename(file))
+ end
+ $ftp.chdir("/")
+ $ftp.rmdir($testdir)
+ assert_raises Net::FTPPermError do
+ $ftp.chdir($testdir)
+ end
+ end
+
+
+
+
+ # close connection and check if it is closed
+ def test_99_delete_testdata
+ $ftp.close
+ assert $ftp.closed?, "connection not closed"
+ end
+end \ No newline at end of file