From 4d3c1fbad6b559c16cba9d82ba7ff117233ad15c Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Sun, 4 Aug 2019 12:35:33 +0200 Subject: [PATCH] add more test cases --- sftpd/internal_test.go | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/sftpd/internal_test.go b/sftpd/internal_test.go index 93540ad3..0620edb0 100644 --- a/sftpd/internal_test.go +++ b/sftpd/internal_test.go @@ -5,6 +5,7 @@ import ( "runtime" "testing" + "github.com/drakkan/sftpgo/dataprovider" "github.com/pkg/sftp" ) @@ -70,3 +71,39 @@ func TestUploadResume(t *testing.T) { t.Errorf("file resume is not supported") } } + +func TestUploadFiles(t *testing.T) { + oldUploadMode := uploadMode + uploadMode = uploadModeAtomic + c := Connection{} + var flags sftp.FileOpenFlags + flags.Write = true + flags.Trunc = true + _, err := c.handleSFTPUploadToExistingFile(flags, "missing_path", "other_missing_path", 0) + if err == nil { + t.Errorf("upload to existing file must fail if one or both paths are invalid") + } + uploadMode = uploadModeStandard + _, err = c.handleSFTPUploadToExistingFile(flags, "missing_path", "other_missing_path", 0) + if err == nil { + t.Errorf("upload to existing file must fail if one or both paths are invalid") + } + missingFile := "missing/relative/file.txt" + if runtime.GOOS == "windows" { + missingFile = "missing\\relative\\file.txt" + } + _, err = c.handleSFTPUploadToNewFile(".", missingFile) + if err == nil { + t.Errorf("upload new file in missing path must fail") + } + uploadMode = oldUploadMode +} + +func TestLoginWithInvalidHome(t *testing.T) { + u := dataprovider.User{} + u.HomeDir = "home_rel_path" + _, err := loginUser(u) + if err == nil { + t.Errorf("login a user with an invalid home_dir must fail") + } +}