1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 09:25:31 +02:00

[199132] check in the Junit testcase for downloading files from Tar archive, also

move all the tar related JUnit testcases from FileServiceArchiveTestDStore to FileServiceArchiveTest
This commit is contained in:
Xuan Chen 2007-08-14 05:06:40 +00:00
parent c8b3a085c5
commit fb5cd9337f
3 changed files with 1201 additions and 904 deletions

View file

@ -24,27 +24,17 @@ import org.eclipse.rse.core.model.SystemRemoteResourceSet;
import org.eclipse.rse.core.model.SystemStartHere;
import org.eclipse.rse.core.model.SystemWorkspaceResourceSet;
import org.eclipse.rse.core.subsystems.IConnectorService;
import org.eclipse.rse.core.subsystems.IRemoteServerLauncher;
import org.eclipse.rse.core.subsystems.IServerLauncherProperties;
import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISystemDragDropAdapter;
import org.eclipse.rse.core.subsystems.ServerLaunchType;
import org.eclipse.rse.files.ui.resources.UniversalFileTransferUtility;
import org.eclipse.rse.internal.subsystems.files.core.ISystemFilePreferencesConstants;
import org.eclipse.rse.services.files.IFileService;
import org.eclipse.rse.subsystems.files.core.servicesubsystem.IFileServiceSubSystem;
import org.eclipse.rse.subsystems.files.core.subsystems.IRemoteFile;
import org.eclipse.rse.tests.RSETestsPlugin;
import org.eclipse.rse.ui.ISystemPreferencesConstants;
import org.eclipse.rse.ui.RSEUIPlugin;
public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
protected String tarSourceFileName1 = "source.tar";
protected String tarSourceFileName2 = "mynewtar.tar";
protected String tarSourceFolderName1 = "META-INF";
protected String tarSourceFolderName2 = "org";
private boolean fPreference_ALERT_SSL;
private boolean fPreference_ALERT_NONSSL;
@ -52,7 +42,6 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
public static junit.framework.Test suite() {
TestSuite suite = new TestSuite("FileServiceArchiveTestDStore");
//zip file testing
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyBatchToArchiveFile")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyBatchToVirtualFileLevelOne")); //$NON-NLS-1$
@ -98,6 +87,9 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
//super transfer
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testSuperTransferLocalToRemote"));
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testSuperTransferDStoreWindowsAndDStore"));
//open a virtual file in tar archive
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testOpenFileFromTarArchive")); //$NON-NLS-1$
return suite;
}
@ -159,7 +151,7 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
*/
//If you want to connect to a running server, uncomment the following statements
/*
IServerLauncherProperties properties = connectionService.getRemoteServerLauncherProperties();
if (properties instanceof IRemoteServerLauncher)
@ -168,7 +160,7 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
sl.setServerLaunchType(ServerLaunchType.get(ServerLaunchType.RUNNING));
fss.getSubSystemConfiguration().updateSubSystem(fss, false, "xuanchen", true, 4033);
}
*/
connectionService.connect(mon);
@ -199,897 +191,6 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
super.tearDown();
}
public void createSourceTarFiles() throws Exception
{
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
IFileStore temp = createDir(tempPath, true);
String content = getRandomString();
//Now, we need to construct a "source.tar" archive file
//We will construct the content of the tar file in folders "META-INF" and "org"
//Then we copy this folder into a tar file by RSE API.
IFileStore META_INF = temp.getChild(tarSourceFolderName1);
createDir(META_INF, true);
//Now, populate the contents in the folder.
IFileStore MANIFEST_MF = META_INF.getChild("MANIFEST.MF");
content = getRandomString();
createFile(MANIFEST_MF, content);
//create folder "org"
IFileStore org = temp.getChild(tarSourceFolderName2);
createDir(org, true);
IFileStore eclipse = org.getChild("eclipse");
createDir(eclipse, true);
//create "dstore" folder inside "org"
IFileStore dstore = eclipse.getChild("dstore");
createDir(dstore, true);
//Now, create a few folders inside the dstore folder.
IFileStore core = dstore.getChild("core");
createDir(core, true);
IFileStore internal = dstore.getChild("internal");
createDir(internal, true);
//now create directory inside "core":
IFileStore client = core.getChild("client");
createDir(client, true);
IFileStore java = core.getChild("java");
createDir(java, true);
IFileStore miners = core.getChild("miners");
createDir(miners, true);
IFileStore model = core.getChild("model");
createDir(model, true);
IFileStore server = core.getChild("server");
createDir(server, true);
IFileStore util = core.getChild("util");
createDir(util, true);
IFileStore Activator_java = core.getChild("Activator.java");
content = getRandomString();
createFile(Activator_java, content);
//now, some contents on client folder
IFileStore ClientConnection_java = client.getChild("ClientConnection.java");
content = getRandomString();
createFile(ClientConnection_java, content);
IFileStore ConnectionStatus_java = client.getChild("ConnectionStatus.java");
content = getRandomString();
createFile(ConnectionStatus_java, content);
//now, some contents in java folder
IFileStore ClassByteStreamHandler$ReceiveClassInstanceThread_java = java.getChild("ClassByteStreamHandler$ReceiveClassInstanceThread.java");
content = getRandomString();
createFile(ClassByteStreamHandler$ReceiveClassInstanceThread_java, content);
//now, some contents in miners folder
IFileStore Miner_java = miners.getChild("Miner.java");
content = getRandomString();
createFile(Miner_java, content);
IFileStore MinerThread_java = miners.getChild("MinerThread.java");
content = getRandomString();
createFile(MinerThread_java, content);
//now, some contents in model folder
IFileStore ByteStreamHandler_java = model.getChild("ByteStreamHandler.java");
content = getRandomString();
createFile(ByteStreamHandler_java, content);
IFileStore DE_java = model.getChild("DE.java");
content = getRandomString();
createFile(DE_java, content);
IFileStore Handler_java = model.getChild("Handler.java");
content = getRandomString();
createFile(Handler_java, content);
//now, some contents in server folder
IFileStore Server_java = server.getChild("Server.java");
content = getRandomString();
createFile(Server_java, content);
//now, some contents in util folder
IFileStore StringCompare_java = util.getChild("StringCompare.java");
content = getRandomString();
createFile(StringCompare_java, content);
//now, create the contents in "internal" folder
IFileStore core1 = internal.getChild("core");
createDir(core1, true);
//then create some folder in this "core" folder
IFileStore client1 = core1.getChild("client");
createDir(client1, true);
IFileStore model1 = core1.getChild("model");
createDir(model1, true);
IFileStore server1 = core1.getChild("server");
createDir(server1, true);
IFileStore util1 = core1.getChild("util");
createDir(util1, true);
//now, some contents on client folder
IFileStore ClientConnection_java1 = client1.getChild("ClientConnection.java");
content = getRandomString();
createFile(ClientConnection_java1, content);
IFileStore ConnectionStatus_java1 = client1.getChild("ConnectionStatus.java");
content = getRandomString();
createFile(ConnectionStatus_java1, content);
//now, some contents in model folder
IFileStore ByteStreamHandler_java1 = model1.getChild("ByteStreamHandler.java");
content = getRandomString();
createFile(ByteStreamHandler_java1, content);
IFileStore DE_java1 = model1.getChild("DE.java");
content = getRandomString();
createFile(DE_java1, content);
IFileStore Handler_java1 = model1.getChild("Handler.java");
content = getRandomString();
createFile(Handler_java1, content);
//now, some contents in server folder
IFileStore Server_java1 = server1.getChild("Server.java");
content = getRandomString();
createFile(Server_java1, content);
//now, some contents in util folder
IFileStore StringCompare_java1 = util1.getChild("StringCompare.java");
content = getRandomString();
createFile(StringCompare_java1, content);
//now, copy META_INF into the folder in the remote system
IRemoteFile META_INF_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceFolderName1, mon);
assertNotNull(META_INF_folder);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) META_INF_folder).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet.addResource(META_INF_folder);
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
//now, copy org into the folder in the remote system
IRemoteFile org_folder = localFss.getRemoteFileObject(tempPath + '\\' + tarSourceFolderName2, mon);
assertNotNull(org_folder);
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) org_folder).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(localFss, srcAdapter2);
fromSet2.addResource(org_folder);
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects2, tempDir, mon, true);
//now, create tar file in the host
IRemoteFile tarSource = createFileOrFolder(tempDir.getAbsolutePath(), tarSourceFileName1, false);
assertNotNull(tarSource);
IRemoteFile tarSourceFolder1 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceFolderName1);
assertNotNull(tarSourceFolder1);
IRemoteFile tarSourceFolder2 = (IRemoteFile)getChildFromFolder(tempDir, tarSourceFolderName2);
fss.copy(tarSourceFolder1, tarSource, tarSourceFolderName1, mon);
fss.copy(tarSourceFolder2, tarSource, tarSourceFolderName2, mon);
}
public void testCreateTarFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip file first.
String testName = "dummy.tar";
IRemoteFile newArchiveFile = createFileOrFolder(tempDirPath, testName, false);
assertNotNull(newArchiveFile);
assertTrue(newArchiveFile.exists());
assertTrue(newArchiveFile.canRead());
assertTrue(newArchiveFile.canWrite());
assertEquals(newArchiveFile.getName(), testName);
assertEquals(newArchiveFile.getParentPath(), tempDirPath);
//fss.resolveFilterString(filterString, monitor)
//Now, we want to create a text file inside.
String childName = "aaa.txt";
IRemoteFile file1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
assertNotNull(file1);
childName = "bbb.txt";
IRemoteFile file2 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
assertNotNull(file2);
//Create a folder
childName = "folder1";
IRemoteFile folder1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, true);
assertNotNull(folder1);
//Now, check the contents
String[] namesToCheck = {"aaa.txt", "bbb.txt", "folder1"};
int[] typesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
checkFolderContents(newArchiveFile, namesToCheck, typesToCheck);
//Now, create some files inside the folder.
String secondLevelChildName = "ccc.exe";
IRemoteFile levelTwoChild1 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
assertNotNull(levelTwoChild1);
secondLevelChildName = "ddd.bat";
IRemoteFile levelTwoChild2 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
assertNotNull(levelTwoChild2);
secondLevelChildName = "another Folder"; //folder with space
IRemoteFile levelTwoChild3 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, true);
assertNotNull(levelTwoChild3);
//Now, check the contents
String[] namesToCheck1 = {"ccc.exe", "ddd.bat", "another Folder"};
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
checkFolderContents(folder1, namesToCheck1, typesToCheck1);
}
public void testCopyToTarArchiveFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
//Now, copy one of the folder from the sourceFolder into copiedTargetZipFile
fss.copy(sourceFolder, targetTarFile, sourceFolder.getName(), mon);
Object theCopiedChild = getChildFromFolder(targetTarFile, sourceFolderName);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
}
public void testCopyToTarVirtualFileLevelOne() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
//Now, copy one of the folder from the sourceFolder into a first level virtual file in targetZipFile
//Get one of its first level children, and copy the folder to there.
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(targetTarFile, "org");
assertNotNull(firstLevelChild);
fss.copy(sourceFolder, firstLevelChild, sourceFolder.getName(), mon);
Object theCopiedChild = getChildFromFolder(firstLevelChild, sourceFolderName);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
}
public void testCopyToTarVirtualFileLevelFour() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
//Get one of its fourth level children, and copy the folder to there.
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(targetTarFile, "org");
assertNotNull(firstLevelChild);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(firstLevelChild, "eclipse");
assertNotNull(secondLevelChild);
IRemoteFile thirdLevelChild = (IRemoteFile)getChildFromFolder(secondLevelChild, "dstore");
assertNotNull(thirdLevelChild);
IRemoteFile fourLevelChild = (IRemoteFile)getChildFromFolder(thirdLevelChild, "core");
assertNotNull(fourLevelChild);
//Object[] children = fss.resolveFilterString(sourceZipFile, null, mon);
fss.copy(sourceFolder, fourLevelChild, sourceFolder.getName(), mon);
Object theCopiedChild = getChildFromFolder(fourLevelChild, sourceFolderName);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
}
public void testCopyTarVirtualFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
String sourceFileName = tarSourceFileName1;
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
assertNotNull(sourceTarFile);
//then, create a folder inside the tempDir
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
assertNotNull(folder1);
//Get one of its fourth level children, and copy the folder to there.
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
assertNotNull(firstLevelChild);
fss.copy(firstLevelChild, folder1, tarSourceFolderName1, mon);
Object copiedVirtualFolder = getChildFromFolder(folder1, tarSourceFolderName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"MANIFEST.MF"};
int[] typesToCheck = {TYPE_FILE};
checkFolderContents((IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
}
public void testCopyTarVirtualFileLevelFour() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
String sourceFileName = tarSourceFileName1;
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
assertNotNull(sourceTarFile);
//then, create a folder inside the tempDir
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
assertNotNull(folder1);
//Now, copy one of the level four folder from the zip file into folder1
//The folder is org/eclipse/dstore/core
//then, get directory "java" under org/eclipse/dstore/core
String parentForDirectoryToCopyName ="org";
IRemoteFile parentForDirectoryToCopy = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForDirectoryToCopyName);
assertNotNull(parentForDirectoryToCopy);
parentForDirectoryToCopyName ="eclipse";
parentForDirectoryToCopy = (IRemoteFile)getChildFromFolder(parentForDirectoryToCopy, parentForDirectoryToCopyName);
assertNotNull(parentForDirectoryToCopy);
parentForDirectoryToCopyName ="dstore";
parentForDirectoryToCopy = (IRemoteFile)getChildFromFolder(parentForDirectoryToCopy, parentForDirectoryToCopyName);
assertNotNull(parentForDirectoryToCopy);
String directoryToCopyName ="core";
IRemoteFile directoryToCopy = (IRemoteFile)getChildFromFolder(parentForDirectoryToCopy, directoryToCopyName);
assertNotNull(directoryToCopy);
//copy this level four children into folder1
fss.copy(directoryToCopy, folder1, directoryToCopyName, mon);
Object copiedVirtualFolder = getChildFromFolder(folder1, directoryToCopyName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"client", "java", "miners", "model", "server", "util", "Activator.java"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents((IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
}
public void testMoveToTarArchiveFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
fss.move(sourceFolder, targetTarFile, sourceFolder.getName(), mon);
Object theMovedChild = getChildFromFolder(targetTarFile, sourceFolderName);
assertNotNull(theMovedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theMovedChild, childrenToCheck, typesToCheck);
//make sure the original folder is gone.
Object originalSource = getChildFromFolder(tempDir, sourceFolderName);
assertNull(originalSource);
}
public void testMoveToTarVirtualFileLevelOne() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
//Now, copy one of the folder from the sourceFolder into a first level virtual file in targetZipFile
//Get one of its first level children, and copy the folder to there.
Object[] childrenOfTargetZipFile = fss.resolveFilterString(targetTarFile, null, mon);
//Object[] children = fss.resolveFilterString(sourceZipFile, null, mon);
fss.move(sourceFolder, ((IRemoteFile)childrenOfTargetZipFile[0]), sourceFolderName, mon);
Object theMovedChild = getChildFromFolder(((IRemoteFile)childrenOfTargetZipFile[0]), sourceFolderName);
assertNotNull(theMovedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theMovedChild, childrenToCheck, typesToCheck);
//make sure the original folder is gone.
Object originalSource = getChildFromFolder(tempDir, sourceFolderName);
assertNull(originalSource);
}
public void testMoveToVirtualFileLevelFour() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
//Get one of its fourth level children, and copy the folder to there.
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(targetTarFile, "org");
assertNotNull(firstLevelChild);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(firstLevelChild, "eclipse");
assertNotNull(secondLevelChild);
IRemoteFile thirdLevelChild = (IRemoteFile)getChildFromFolder(secondLevelChild, "dstore");
assertNotNull(thirdLevelChild);
IRemoteFile fourLevelChild = (IRemoteFile)getChildFromFolder(thirdLevelChild, "core");
assertNotNull(fourLevelChild);
//Object[] children = fss.resolveFilterString(sourceZipFile, null, mon);
fss.move(sourceFolder, fourLevelChild, sourceFolder.getName(), mon);
Object theCopiedChild = getChildFromFolder(fourLevelChild, sourceFolderName);
assertNotNull(theCopiedChild);
//Also make sure the moved child has the right contents.
String[] childrenToCheck = {"aaaaaaaa", "aaaab", "epdcdump01.hex12a", "RSE-SDK-2.0RC1.zip"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck, typesToCheck);
//make sure the original folder is gone.
Object originalSource = getChildFromFolder(tempDir, sourceFolderName);
assertNull(originalSource);
}
public void testMoveTarVirtualFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
String sourceFileName = tarSourceFileName1;
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
assertNotNull(sourceTarFile);
//then, create a folder inside the tempDir
//then, create a folder inside the tempDir
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
assertNotNull(folder1);
//Now, copy one of the folder from the zip file into folder1
String movedFolderName = tarSourceFolderName1;
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
assertNotNull(firstLevelChild);
fss.move(firstLevelChild, folder1, movedFolderName, mon);
Object movedVirtualFolder = getChildFromFolder(folder1, movedFolderName);
assertNotNull(movedVirtualFolder);
String[] contents = {"MANIFEST.MF"};
int[] typesToCheck = {TYPE_FILE};
checkFolderContents((IRemoteFile)movedVirtualFolder, contents, typesToCheck);
//Now, make sure the moved virtual folder is gone from its original zip file
IRemoteFile tmp = (IRemoteFile)getChildFromFolder(sourceTarFile, tarSourceFolderName1);
assertNull(tmp);
}
public void testMoveTarVirtualFileLevelFour() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
String sourceFileName = tarSourceFileName1;
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
assertNotNull(sourceTarFile);
//then, create a folder inside the tempDir
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
assertNotNull(folder1);
//Get one of its fourth level children, and move it to the folder
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, "org");
assertNotNull(firstLevelChild);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(firstLevelChild, "eclipse");
assertNotNull(secondLevelChild);
IRemoteFile thirdLevelChild = (IRemoteFile)getChildFromFolder(secondLevelChild, "dstore");
assertNotNull(thirdLevelChild);
IRemoteFile fourthLevelChild = (IRemoteFile)getChildFromFolder(thirdLevelChild, "core");
assertNotNull(fourthLevelChild);
String movedFolderName = fourthLevelChild.getName();
//copy this level four children into folder1
fss.move(fourthLevelChild, folder1, movedFolderName, mon);
Object copiedVirtualFolder = getChildFromFolder(folder1, movedFolderName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"client", "java", "miners", "model", "server", "util", "Activator.java"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents((IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, make sure the moved virtual folder is gone from its original zip file
//children = fss.resolveFilterString(sourceTarFile, null, mon);
Object result = getChildFromFolder(thirdLevelChild, movedFolderName);
assertNull(result); //we should not be able to find it.
}
public void testRenameTarVirtualFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip file first.
String testName = "source.tar";
IRemoteFile newArchiveFile = createFileOrFolder(tempDirPath, testName, false);
//Now, we want to create a text file inside.
String childName = "aaa.txt";
IRemoteFile file1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
assertNotNull(file1);
childName = "bbb.txt";
IRemoteFile file2 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, false);
assertNotNull(file2);
//Create a folder
childName = "folder1";
IRemoteFile folder1 = createFileOrFolder(newArchiveFile.getAbsolutePath(), childName, true);
assertNotNull(folder1);
//Now, check the contents
String[] levelOneNamesToCheck = {"aaa.txt", "bbb.txt", "folder1"};
int[] levalOneTypesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
checkFolderContents(newArchiveFile, levelOneNamesToCheck, levalOneTypesToCheck);
//Now, create some files inside the folder.
String secondLevelChildName = "ccc.exe";
IRemoteFile levelTwoChild1 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
assertNotNull(levelTwoChild1);
secondLevelChildName = "ddd.bat";
IRemoteFile levelTwoChild2 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, false);
assertNotNull(levelTwoChild2);
secondLevelChildName = "another Folder"; //folder with space
IRemoteFile levelTwoChild3 = createFileOrFolder(folder1.getAbsolutePath(), secondLevelChildName, true);
assertNotNull(levelTwoChild3);
//Now, check the contents
String[] levelTwoNamesToCheck = {"ccc.exe", "ddd.bat", "another Folder"};
int[] levalTwoTypesToCheck = {TYPE_FILE, TYPE_FILE, TYPE_FOLDER};
checkFolderContents(folder1, levelTwoNamesToCheck, levalTwoTypesToCheck);
//Now rename one of the text file in the first level:
IRemoteFile childToRename = (IRemoteFile)getChildFromFolder(newArchiveFile, "aaa.txt");
fss.rename(childToRename, "aaa1.txt", mon);
//Now rename one of the folder in the first level
childToRename = (IRemoteFile)getChildFromFolder(newArchiveFile, "folder1");
fss.rename(childToRename, "folder2", mon);
//Check the result of rename
String[] newLevelOneNamesToCheck = {"aaa1.txt", "bbb.txt", "folder2"};
checkFolderContents(newArchiveFile, newLevelOneNamesToCheck, levalOneTypesToCheck);
//Now rename one of the text file in the second level:
IRemoteFile thisFolder = (IRemoteFile)getChildFromFolder(newArchiveFile, "folder2");
childToRename = (IRemoteFile)getChildFromFolder(thisFolder, "ddd.bat");
fss.rename(childToRename, "ddd1.bat", mon);
//Now rename one of the folder in the second level
childToRename = (IRemoteFile)getChildFromFolder(thisFolder, "another Folder");
fss.rename(childToRename, "some folder$", mon);
//Check the result of rename
String[] newLevelTwoNamesToCheck = {"ccc.exe", "ddd1.bat", "some folder$"};
checkFolderContents(thisFolder, newLevelTwoNamesToCheck, levalTwoTypesToCheck);
}
public void testDeleteTarVirtualFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//create the source for testing first
createSourceTarFiles();
String sourceFileName = tarSourceFileName1;
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
assertNotNull(sourceTarFile);
//delete a file from level 2
String parentForFileToDeleteName ="META-INF";
IRemoteFile parentForFileToDelete = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForFileToDeleteName);
assertNotNull(parentForFileToDelete);
String deleteFileName = "MANIFEST.MF";
IRemoteFile fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
assertNotNull(fileToToDelete);
//Now, delete this file
fss.delete(fileToToDelete, mon);
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
assertNull(fileToToDelete);
//then, get directory "java" under org/eclipse/dstore/core
String parentForDirectoryToDeleteName ="org";
IRemoteFile parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(sourceTarFile, parentForDirectoryToDeleteName);
assertNotNull(parentForDirectoryToDelete);
parentForDirectoryToDeleteName ="eclipse";
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
assertNotNull(parentForDirectoryToDelete);
parentForDirectoryToDeleteName ="dstore";
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
assertNotNull(parentForDirectoryToDelete);
parentForDirectoryToDeleteName ="core";
parentForDirectoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, parentForDirectoryToDeleteName);
assertNotNull(parentForDirectoryToDelete);
String directoryToDeleteName = "java";
IRemoteFile directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
//Now, delete this directory
fss.delete(directoryToDelete, mon);
directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
//check result of this operation
String[] contents = {"client", "miners", "model", "server", "util", "Activator.java"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(parentForDirectoryToDelete, contents, typesToCheck);
//And check this directory is not there any more.
directoryToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, directoryToDeleteName);
assertNull(directoryToDelete);
//Now, delete some files and folder inside the a virtual folder.
parentForFileToDelete = (IRemoteFile)getChildFromFolder(parentForDirectoryToDelete, "model");
deleteFileName = "DE.java";
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
assertNotNull(fileToToDelete);
fss.delete(fileToToDelete, mon);
//check the result
fileToToDelete = (IRemoteFile)getChildFromFolder(parentForFileToDelete, deleteFileName);
assertNull(fileToToDelete);
}
public void testCopyBatchToTarArchiveFile() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
//Now, copy the source folder.
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir,sourceFolderName);
assertNotNull(sourceFolder);
//Now, copy one of the folder from the sourceFolder into copiedTargetZipFile
IRemoteFile[] sourceFiles = new IRemoteFile[3];
//Also add some of its children into the batch.
String childToCopyName1 = "aaaaaaaa";
sourceFiles[0] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName1);
String childToCopyName2 = "aaaab";
sourceFiles[1] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName2);
String childToCopyName3 = "epdcdump01.hex12a";
sourceFiles[2] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName3);
fss.copyBatch(sourceFiles, targetTarFile, mon);
//Checking the first copied folder
Object theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName1);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck1 = {"adsf", "eclipse-SDK-3.3M6-win32.zip", "epdcdump01.hex12", "epdcdump01.hex12aaaa"};
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck1, typesToCheck1);
//Checking the second copied folder
theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName2);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck2 = {"features"};
int[] typesToCheck2 = {TYPE_FOLDER};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck2, typesToCheck2);
//Checking the third copied file
theCopiedChild = getChildFromFolder(targetTarFile, childToCopyName3);
assertNotNull(theCopiedChild);
assertTrue(((IRemoteFile)theCopiedChild).isDirectory() != true);
}
public void testCopyBatchToTarVirtualFileLevelFour() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
createSourceTarFiles();
createSourceFolders();
String tarTargetFileName = tarSourceFileName1;
IRemoteFile targetTarFile = (IRemoteFile)getChildFromFolder(tempDir, tarTargetFileName);
assertNotNull(targetTarFile);
//Now, copy the source folder.
String sourceFolderName = folderToCopyName3;
IRemoteFile sourceFolder = (IRemoteFile)getChildFromFolder(tempDir, sourceFolderName);
assertNotNull(sourceFolder);
//Get one of its fourth level children, and copy the folder to there.
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(targetTarFile, "org");
assertNotNull(firstLevelChild);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(firstLevelChild, "eclipse");
assertNotNull(secondLevelChild);
IRemoteFile thirdLevelChild = (IRemoteFile)getChildFromFolder(secondLevelChild, "dstore");
assertNotNull(thirdLevelChild);
IRemoteFile fourthLevelChild = (IRemoteFile)getChildFromFolder(thirdLevelChild, "core");
assertNotNull(fourthLevelChild);
IRemoteFile[] sourceFiles = new IRemoteFile[3];
//Also add some of its children into the batch.
String childToCopyName1 = "aaaaaaaa";
sourceFiles[0] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName1);
String childToCopyName2 = "aaaab";
sourceFiles[1] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName2);
String childToCopyName3 = "epdcdump01.hex12a";
sourceFiles[2] = (IRemoteFile)getChildFromFolder(sourceFolder, childToCopyName3);
fss.copyBatch(sourceFiles, fourthLevelChild, mon);
//Checking the first copied folder
Object theCopiedChild = getChildFromFolder(fourthLevelChild, childToCopyName1);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck1 = {"adsf", "eclipse-SDK-3.3M6-win32.zip", "epdcdump01.hex12", "epdcdump01.hex12aaaa"};
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE, TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck1, typesToCheck1);
//Checking the second copied folder
theCopiedChild = getChildFromFolder(fourthLevelChild, childToCopyName2);
assertNotNull(theCopiedChild);
//Also make sure the copied child has the right contents.
String[] childrenToCheck2 = {"features"};
int[] typesToCheck2 = {TYPE_FOLDER};
checkFolderContents((IRemoteFile)theCopiedChild, childrenToCheck2, typesToCheck2);
//Checking the third copied file
theCopiedChild = getChildFromFolder(fourthLevelChild, childToCopyName3);
assertNotNull(theCopiedChild);
assertTrue(((IRemoteFile)theCopiedChild).isDirectory() != true);
}
public void testCopyBatchTarVirtualFileLevelFive() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
createSourceTarFiles();
String sourceFileName = tarSourceFileName1;
IRemoteFile sourceTarFile = (IRemoteFile)getChildFromFolder(tempDir, sourceFileName);
assertNotNull(sourceTarFile);
//then, create a folder inside the tempDir
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(tempDirPath, folderName, true);
assertNotNull(folder1);
//Get several of its fifth level children, and them into the folder.
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceTarFile, "org");
assertNotNull(firstLevelChild);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(firstLevelChild, "eclipse");
assertNotNull(secondLevelChild);
IRemoteFile thirdLevelChild = (IRemoteFile)getChildFromFolder(secondLevelChild, "dstore");
assertNotNull(thirdLevelChild);
IRemoteFile fourthLevelChild = (IRemoteFile)getChildFromFolder(thirdLevelChild, "core");
assertNotNull(fourthLevelChild);
IRemoteFile[] fifLevelChildrenToCopy = new IRemoteFile[3];
String firstToCopyName = "client";
fifLevelChildrenToCopy[0] = (IRemoteFile)getChildFromFolder(fourthLevelChild, firstToCopyName);
assertNotNull(fifLevelChildrenToCopy[0]);
String secondToCopyName = "miners";
fifLevelChildrenToCopy[1] = (IRemoteFile)getChildFromFolder(fourthLevelChild, secondToCopyName);
assertNotNull(fifLevelChildrenToCopy[1]);
String thirdToCopyName = "Activator.java";
fifLevelChildrenToCopy[2] = (IRemoteFile)getChildFromFolder(fourthLevelChild, thirdToCopyName);
assertNotNull(fifLevelChildrenToCopy[2]);
fss.copyBatch(fifLevelChildrenToCopy, folder1, mon);
Object copiedVirtualFolder1 = getChildFromFolder(folder1, firstToCopyName);
assertNotNull(copiedVirtualFolder1);
String[] contents1 = {"ClientConnection.java", "ConnectionStatus.java"};
int[] typesToCheck1 = {TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)copiedVirtualFolder1, contents1, typesToCheck1);
Object copiedVirtualFolder2 = getChildFromFolder(folder1, secondToCopyName);
assertNotNull(copiedVirtualFolder2);
String[] contents2 = {"Miner.java", "MinerThread.java"};
int[] typesToCheck2 = {TYPE_FILE, TYPE_FILE};
checkFolderContents((IRemoteFile)copiedVirtualFolder2, contents2, typesToCheck2);
Object copiedVirtualFolder3 = getChildFromFolder(folder1, thirdToCopyName);
assertNotNull(copiedVirtualFolder3);
}
public void testSuperTransferDStoreWindowsAndDStore() throws Exception {
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
IFileStore temp = createDir(tempPath, true);

View file

@ -9,6 +9,8 @@
* Xuan Chen (IBM) - initial API and implementation
* - <copied code from org.eclipse.core.tests.internal.localstore/LocalStoreTest (Copyright IBM)>
* - <copied code from org.eclipse.core.tests.harness/CoreTest (Copyright IBM)>
* - <copied code from org.eclipse.core.tests.resources/ResourceTest (Copyright IBM)>
* - <copied code from org.eclipse.core.tests.harness/CoreTest (Copyright IBM)>
*******************************************************************************/
package org.eclipse.rse.tests.subsystems.files;
@ -274,6 +276,62 @@ public class FileServiceBaseTest extends RSEBaseConnectionTestCase {
assertTrue(info.exists() && !info.isDirectory());
}
/**
* <copied code from org.eclipse.core.tests.harness/CoreTest (Copyright IBM)>
* Asserts that a stream closes successfully. Null streams
* are ignored, but failure to close the stream is reported as
* an assertion failure.
* @param stream the input stream to close
*/
protected void assertClose(InputStream stream) {
if (stream == null)
return;
try {
stream.close();
} catch (IOException e) {
fail("Failed close in assertClose");
}
}
/**
* <copied code from org.eclipse.core.tests.harness/CoreTest (Copyright IBM)>
* Return an input stream with some the specified text to use
* as contents for a file resource.
* @param text the input text
* @return the input stream of the input text
*/
public InputStream getContents(String text) {
return new ByteArrayInputStream(text.getBytes());
}
/**
* <copied code from org.eclipse.core.tests.resources/ResourceTest.java (Copyright IBM) >
*
* Returns a boolean value indicating whether or not the contents
* of the given streams are considered to be equal. Closes both input streams.
* @param a input stream a
* @param b input stream b
* @return if both stream are consider to be equal
*/
public boolean compareContent(InputStream a, InputStream b) {
int c, d;
if (a == null && b == null)
return true;
try {
if (a == null || b == null)
return false;
while ((c = a.read()) == (d = b.read()) && (c != -1 && d != -1)) {
//body not needed
}
return (c == -1 && d == -1);
} catch (IOException e) {
return false;
} finally {
assertClose(a);
assertClose(b);
}
}
/**
* Copy the data from the input stream to the output stream.
* Close both streams when finished.