/** Test attempt to change remote directory to a nonexistent directory. */ @Test public void test05ChangeRemoteDirWithBadDirFails() throws Exception { session.login(USER, PASSWORD); String missingDir = "eleventy_squash"; assertTrue(!session.changeWorkingDirectory(missingDir)); assertTrue(!session.printWorkingDirectory().contains(missingDir)); }
/** * Tests sane default for local directory if directory no longer exists. * * @throws Exception */ @Test public void test08RestoreCanRevertToDefaultLocalIfLocalDirIsRemoved() throws Exception { assertTrue(testDir.delete()); session.disconnect(); session.restore(); assertTrue(session.getLocalDirectory().equals(System.getProperty("user.dir"))); }
/** * Tests restoring session after disconnect. * * @throws Exception */ @Test public void test07CanRestoreSessionAfterDisconnect() throws Exception { session.disconnect(); session.restore(); assertTrue(session.isConnected()); assertTrue(session.printWorkingDirectory().contains("for_testing")); }
/** * Tests creating file in appropriate local directory. * * @throws Exception unexpected */ @Test public void test04CanCreateFileInNewLocalDirectory() throws Exception { session.changeLocalDirectory(System.getProperty("user.dir")); testDir = new File(session.getLocalDirectory(), "goodSessionTestDir"); testDir.mkdir(); testDir.deleteOnExit(); session.changeLocalDirectory(testDir.getPath()); File testfile = new File(session.getLocalDirectory(), "goodSessionTest04"); testfile.createNewFile(); testfile.deleteOnExit(); assertTrue(testfile.getAbsolutePath().contains(testDir.getAbsolutePath())); // Force deletion now so we can delete containing directory later. assertTrue(testfile.delete()); }
public SecureFTPError doIt() throws CommandException { SecureFTPError result = super.doIt(); FTPSession session = SecureFTP.getFTPSession(); PrintStream out = session.getPrintStream(); if (!displayedWarning) { displayedWarning = true; if (session.isInteractiveOn()) { if (!CLIUtil.yesNoPrompt( "You are about to permenently delete " + "multiple files. Continue?")) { out.println("Local files deletion aborted."); return result; } } } for (int i = 0; i < getArgs().size(); i++) { File currentFile = session.getLocalDir(); String newFileStr = (String) getArgs().get(i); File newFile = new File(newFileStr); if (!newFile.isAbsolute()) { currentFile = new File(currentFile, newFileStr); } else { currentFile = newFile; } // resend items that have patterns in them if (session.isGlobOn() && !currentFile.exists()) { try { File[] fileGlob = CLIUtil.globLocalPathForFiles(currentFile.getAbsolutePath(), CLIUtil.GLOB_ALL_FILES); if (fileGlob.length == 0) { out.println("File and/or directory not found."); result.setCode(SecureFTPError.NO_SUCH_FILE); return result; } ArrayList globList = new ArrayList(fileGlob.length); for (int j = 0; j < fileGlob.length; j++) { globList.add(fileGlob[j].getAbsolutePath()); } LMDeleteCommand cmd = new LMDeleteCommand(true); cmd.setArgs(globList); result = SecureFTP.getCommandDispatcher().fireCommand(this, cmd); if (SecureFTPError.PERMISSION_DENIED == result.getCode()) { break; } continue; } catch (FileNotFoundException fne) { } } if (!currentFile.exists()) { out.println("File and/or directory does not exist."); result.setCode(SecureFTPError.NO_SUCH_FILE); } // at this point we should have a valid file/directory else if (currentFile.isDirectory()) { File[] files = currentFile.listFiles(); if (files == null) { out.println("Permission denied: Deletion of \"" + currentFile.getName() + "\" failed."); continue; } else { ArrayList list = new ArrayList(files.length); for (int k = 0; k < files.length; k++) { list.add(files[k].getAbsolutePath()); } LMDeleteCommand cmd = new LMDeleteCommand(true); cmd.setArgs(list); result = SecureFTP.getCommandDispatcher().fireCommand(this, cmd); if (SecureFTPError.PERMISSION_DENIED == result.getCode()) { break; } LRmDirCommand rmCmd = new LRmDirCommand(); ArrayList args = new ArrayList(1); args.add(currentFile.getAbsolutePath()); rmCmd.setArgs(args); result = SecureFTP.getCommandDispatcher().fireCommand(this, rmCmd); } } else { LDeleteCommand ldc = new LDeleteCommand(); ArrayList args = new ArrayList(1); args.add(currentFile.getAbsolutePath()); ldc.setArgs(args); result = SecureFTP.getCommandDispatcher().fireCommand(this, ldc); if (SecureFTPError.PERMISSION_DENIED == result.getCode()) { out.println("Permission denied: Deletion of \"" + currentFile.getName() + "\" failed."); result.setCode(SecureFTPError.PERMISSION_DENIED); return result; } } } return result; }
/** Tests changing local directory. */ @Test public void test03CanChangeLocalDirectory() { assertTrue(session.changeLocalDirectory(folder.getRoot().getPath())); }
/** * Tests login functionality. * * @throws Exception unexpected */ @Test public void test02CanLogin() throws Exception { assertTrue(session.login(USER, PASSWORD)); session.enterLocalPassiveMode(); session.setFileType(FTP.BINARY_FILE_TYPE); }
/** * Tests connection functionality. * * @throws Exception unexpected */ @Test public void test01CanConnect() throws Exception { session.connect(HOST, PORT); assertTrue(session.isConnected()); }
@AfterClass public static void teardown() throws Exception { session.disconnect(); }
/** Test attempt to login with bad credentials. */ @Test public void test04LoginWithBadCredentialsFails() throws Exception { session.connect(HOST, PORT); assertTrue(!session.login("failtestuser", PASSWORD)); assertTrue(!session.login(USER, "badpass")); }
/** Test attempt to login without a connection. */ @Test(expected = IOException.class) public void test03LoginWithoutConnectThrowsException() throws Exception { session.login(USER, PASSWORD); }
/** Test handling of bad port. */ @Test(expected = IOException.class) public void test02ConnectWithBadPortThrowsException() throws Exception { session.connect(HOST, 12345); }
/** Test handling of bad host. */ @Test(expected = IOException.class) public void test01ConnectWithBadHostThrowsException() throws Exception { session.connect("banana", PORT); }
/** * Tests changing remote directory. * * @throws Exception */ @Test public void test06CanChangeRemoteDirectory() throws Exception { assertTrue(session.changeWorkingDirectory("for_testing")); assertTrue(session.printWorkingDirectory().contains("for_testing")); }