1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-03 23:25:26 +02:00

[202949] fix: [archives] copy a folder from one connection to an archive file in a different connection does not work

This commit is contained in:
Xuan Chen 2007-10-04 04:38:27 +00:00
parent ae203509de
commit 508129509f
7 changed files with 814 additions and 59 deletions

View file

@ -26,6 +26,7 @@
* Xuan Chen (IBM) - [201790] [dnd] Copy and Paste across connections to a Drive doesn't work
* Xuan Chen (IBM) - [202668] [Supertransfer] Subfolders not copied when doing first copy from dstore to Local
* Xuan Chen (IBM) - [202670] [Supertransfer] After doing a copy to a directory that contains folders some folders name's display "deleted"
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
********************************************************************************/
package org.eclipse.rse.files.ui.resources;
@ -1013,12 +1014,19 @@ public class UniversalFileTransferUtility
return null;
}
boolean isTargetArchive = targetFolder.isArchive();
boolean isTargetVirtual = ArchiveHandlerManager.isVirtual(targetFolder.getAbsolutePath());
if (isTargetArchive && !targetFolder.getParentRemoteFileSubSystem().getParentRemoteFileSubSystemConfiguration().supportsArchiveManagement()) return null;
StringBuffer newPathBuf = new StringBuffer(targetFolder.getAbsolutePath());
if (isTargetArchive)
{
newPathBuf.append(ArchiveHandlerManager.VIRTUAL_SEPARATOR);
}
else if (isTargetVirtual)
{
//if the target is a virtual folder, we need to append ArchiveHandlerManager.VIRTUAL_FOLDER_SEPARATOR
//instead of the file separator of the file subsystem.
newPathBuf.append(ArchiveHandlerManager.VIRTUAL_FOLDER_SEPARATOR);
}
else
{
int newPathBufLenth = newPathBuf.length();
@ -1162,7 +1170,7 @@ public class UniversalFileTransferUtility
if (existingFiles != null)
{
IRemoteFile newTargetFolder = (IRemoteFile)existingFiles.get(newPath);
if (!newTargetFolder.exists())
if (null != newTargetFolder && !newTargetFolder.exists())
{
newTargetFolder = targetFS.createFolder(newTargetFolder, monitor);
}

View file

@ -30,6 +30,7 @@
* Kevin Doyle (IBM) - [198576] Renaming a folder directly under a Filter doesn't update children
* David McKnight (IBM) - [199568] Removing synchronized from internalGetChildren
* Kevin Doyle (IBM) - [197855] Can't Delete/Rename/Move a Read-Only File
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
********************************************************************************/
package org.eclipse.rse.internal.files.ui.view;
@ -1535,15 +1536,25 @@ public class SystemViewRemoteFileAdapter
{
FileServiceSubSystem ss = (FileServiceSubSystem)subsys;
SystemSearchString searchString = new SystemSearchString("*", false, false, "*", false, false, true); //$NON-NLS-1$ //$NON-NLS-2$
for (int i = 0; i < initialResources.size(); i++)
{
IRemoteFile remoteFile = (IRemoteFile)initialResources.get(i);
// get all files within directory
if (remoteFile.isDirectory())
{
{
SystemSearchString searchString = null;
if (ArchiveHandlerManager.isVirtual(remoteFile.getAbsolutePath()))
{
//If this file to create flatset with is a virtual directory, we want to make sure the includeArchives flag
//for the searchString is set to true. This way, we could search inside the archive file
searchString = new SystemSearchString("*", false, false, "*", false, true, true); //$NON-NLS-1$ //$NON-NLS-2$
}
else
{
searchString = new SystemSearchString("*", false, false, "*", false, false, true); //$NON-NLS-1$ //$NON-NLS-2$
}
// create the configuration for this folder
IHostSearchResultConfiguration config = ss.createSearchConfiguration(searchSet, remoteFile, searchString);

View file

@ -23,6 +23,7 @@
* Xuan Chen (IBM) - [191367] with supertransfer on, Drag & Drop Folder from DStore to DStore doesn't work
* Martin Oberhuber (Wind River) - [199548] Avoid touching files on setReadOnly() if unnecessary
* Kevin Doyle (IBM) - [191548] Deleting Read-Only directory removes it from view and displays no error
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
*******************************************************************************/
package org.eclipse.rse.dstore.universal.miners;
@ -600,8 +601,14 @@ public class UniversalFileSystemMiner extends Miner {
UniversalServerUtilities.logError(CLASSNAME, "Invalid query type to handleSearch", null); //$NON-NLS-1$
return statusDone(status);
}
if (fileobj.exists()) {
//If the subject is a virtual folder, we could not just use check file.exists() to determine if we need
//to continue process this request or not.
boolean continueSearch = true;
if (!queryType.equals(IUniversalDataStoreConstants.UNIVERSAL_VIRTUAL_FOLDER_DESCRIPTOR) && !fileobj.exists())
{
continueSearch = false;
}
if (continueSearch) {
DataElement arg1 = getCommandArgument(theElement, 1);
DataElement arg2 = getCommandArgument(theElement, 2);
DataElement arg3 = getCommandArgument(theElement, 3);
@ -631,7 +638,7 @@ public class UniversalFileSystemMiner extends Miner {
searchThread.start();
updateCancellableThreads(status.getParent(), searchThread);
return status;
//return status;
}
return statusDone(status);

View file

@ -14,6 +14,7 @@
* Contributors:
* {Name} (company) - description of contribution.
* Xuan Chen (IBM) - [194293] [Local][Archives] Saving file second time in an Archive Errors
* Xuan Chen (IBM) - [202949] [archives] copy a folder from one connection to an archive file in a different connection does not work
*******************************************************************************/
package org.eclipse.rse.services.clientserver.archiveutils;
@ -36,6 +37,7 @@ public class ArchiveHandlerManager
// The string that separates the virtual part of an absolute path from the real part
public static final String VIRTUAL_SEPARATOR = "#virtual#/"; //$NON-NLS-1$
public static final String VIRTUAL_CANONICAL_SEPARATOR = "#virtual#"; //$NON-NLS-1$
public static final String VIRTUAL_FOLDER_SEPARATOR = "/"; //$NON-NLS-1$
// the singleton instance
protected static ArchiveHandlerManager _instance = new ArchiveHandlerManager();

View file

@ -28,6 +28,7 @@ import org.eclipse.rse.core.subsystems.ISubSystem;
import org.eclipse.rse.core.subsystems.ISystemDragDropAdapter;
import org.eclipse.rse.files.ui.resources.UniversalFileTransferUtility;
import org.eclipse.rse.internal.subsystems.files.core.ISystemFilePreferencesConstants;
import org.eclipse.rse.services.clientserver.messages.SystemMessageException;
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;
@ -128,6 +129,10 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
}
public void createSourceZipFiles() throws Exception
{
createSourceZipFiles(fss);
}
public IRemoteFile createSourceZipFiles(IFileServiceSubSystem inputFss) throws Exception
{
/* build scenario */
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
@ -318,36 +323,59 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
content = getRandomString();
createFile(epdcdump01_hex12ab, content);
IRemoteFile targetDir = null;
if (inputFss != fss)
{
//Create the tempDir inside the inputFss
try
{
IRemoteFile homeDirectory = inputFss.getRemoteFileObject(".", mon);
String baseFolderName = "rsetest";
String homeFolderName = homeDirectory.getAbsolutePath();
String testFolderName = FileServiceHelper.getRandomLocation(localFss, homeFolderName, baseFolderName, mon);
targetDir = createFileOrFolder(localFss, homeFolderName, testFolderName, true);
}
catch (Exception e)
{
fail("Problem encountered: " + e.getStackTrace().toString());
}
}
else
{
targetDir = tempDir;
}
//now, copy folderToCopy into the folder in the remote system
IRemoteFile sourceFolderToCopy1 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName1, mon);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy1).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet.addResource(sourceFolderToCopy1);
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects1, targetDir, mon, true);
IRemoteFile sourceFolderToCopy2 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName2, mon);
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy2).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(localFss, srcAdapter2);
fromSet2.addResource(sourceFolderToCopy2);
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects2, tempDir, mon, true);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects2, targetDir, mon, true);
IRemoteFile zipSource1 = createFileOrFolder(tempDir.getAbsolutePath(), zipSourceFileName1, false);
IRemoteFile zipSource1 = createFileOrFolder(inputFss, targetDir.getAbsolutePath(), zipSourceFileName1, false);
assertNotNull(zipSource1);
IRemoteFile zipSourceFolder = (IRemoteFile)getChildFromFolder(tempDir, folderToCopyName1);
fss.copy(zipSourceFolder, zipSource1, folderToCopyName1, mon);
IRemoteFile zipSourceFolder = (IRemoteFile)getChildFromFolder(inputFss, targetDir, folderToCopyName1);
inputFss.copy(zipSourceFolder, zipSource1, folderToCopyName1, mon);
IRemoteFile zipSource2 = createFileOrFolder(tempDir.getAbsolutePath(), zipSourceFileName2, false);
IRemoteFile zipSource2 = createFileOrFolder(inputFss, targetDir.getAbsolutePath(), zipSourceFileName2, false);
assertNotNull(zipSource2);
IRemoteFile zipSourceFolder2 = (IRemoteFile)getChildFromFolder(tempDir, folderToCopyName2);
fss.copy(zipSourceFolder2, zipSource2, folderToCopyName2, mon);
IRemoteFile zipSourceFolder2 = (IRemoteFile)getChildFromFolder(inputFss, targetDir, folderToCopyName2);
inputFss.copy(zipSourceFolder2, zipSource2, folderToCopyName2, mon);
//Then, we need to retrieve children of the tempDir to cache their information.
fss.resolveFilterString(tempDir, null, mon);
inputFss.resolveFilterString(targetDir, null, mon);
//Then, delete the temp folder in the junit workspace.
temp.delete(EFS.NONE, mon);
return targetDir;
}
protected void createSuperTransferFolder(IFileStore temp) throws Exception
@ -2260,45 +2288,6 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
public void testSuperTransferLocalToRemote() throws Exception {
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
IFileStore temp = createDir(tempPath, true);
createSuperTransferFolder(temp);
//Set the superTransfer preference on
IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore();
boolean preference_DOSUPERTRANSFER = store.getBoolean(ISystemFilePreferencesConstants.DOSUPERTRANSFER);
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, true);
//now, copy folderToCopy into the folder in the remote system
IRemoteFile sourceFolderToCopy1 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName3, mon);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy1).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(sourceFolderToCopy1);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, tempDir, mon, true);
//Then, we need to retrieve children of the tempDir to cache their information.
Object[] children = fss.resolveFilterString(tempDir, null, mon);
//Make sure there is no temp archive file left
assertTrue(children.length == 1);
Object theCopiedFolder = getChildFromFolder(tempDir, folderToCopyName3);
assertNotNull(theCopiedFolder);
//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)theCopiedFolder, childrenToCheck, typesToCheck);
//Then, set the preference back to its original value
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, preference_DOSUPERTRANSFER);
//Then, delete the temp folder in the junit workspace.
temp.delete(EFS.NONE, mon);
}
public void testOpenFileFromTarArchive() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
@ -2356,5 +2345,8 @@ public class FileServiceArchiveTest extends FileServiceBaseTest {
sameContent = compareContent(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null));
assertTrue(sameContent);
}
}

View file

@ -31,9 +31,11 @@ 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.clientserver.messages.SystemMessageException;
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;
@ -90,9 +92,24 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
//super transfer
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testSuperTransferLocalToRemote"));
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testSuperTransferDStoreWindowsAndDStore"));
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testSuperTransferDStoreToLocal"));
//open a virtual file in tar archive
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testOpenFileFromTarArchive")); //$NON-NLS-1$
//copy the virtual folder across connections
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVirtualFileFromDStoreToLocal")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVirtualFileLevelTwoFromDStoreToLocal")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVirtualFileFromLocalToDStore")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVirtualFileLevelTwoFromLocalToDStore")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFLevelTwoToArchiveFromDStoreToLocal")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFLevelTwoToArchiveFromLocalToDStore")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFToArchiveFromDStoreToLocal")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFToArchiveFromLocalToDStore")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFToVFFromDStoreToLocal")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFToVFLevelTwoFromDStoreToLocal")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFToVFFromLocalToDStore")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testCopyVFToVFLevelTwoFromLocalToDStore")); //$NON-NLS-1$
return suite;
}
@ -186,6 +203,47 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
super.tearDown();
}
public void testSuperTransferLocalToRemote() throws Exception {
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
IFileStore temp = createDir(tempPath, true);
createSuperTransferFolder(temp);
//Set the superTransfer preference on
IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore();
boolean preference_DOSUPERTRANSFER = store.getBoolean(ISystemFilePreferencesConstants.DOSUPERTRANSFER);
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, true);
//now, copy folderToCopy into the folder in the remote system
IRemoteFile sourceFolderToCopy1 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName3, mon);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy1).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(sourceFolderToCopy1);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, tempDir, mon, true);
//Then, we need to retrieve children of the tempDir to cache their information.
Object[] children = fss.resolveFilterString(tempDir, null, mon);
//Make sure there is no temp archive file left
assertTrue(children.length == 1);
Object theCopiedFolder = getChildFromFolder(tempDir, folderToCopyName3);
assertNotNull(theCopiedFolder);
//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)theCopiedFolder, childrenToCheck, typesToCheck);
//Then, set the preference back to its original value
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, preference_DOSUPERTRANSFER);
//Then, delete the temp folder in the junit workspace.
temp.delete(EFS.NONE, mon);
}
public void testSuperTransferDStoreWindowsAndDStore() throws Exception {
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
IFileStore temp = createDir(tempPath, true);
@ -271,8 +329,678 @@ public class FileServiceArchiveTestDStore extends FileServiceArchiveTest {
//Then, set the preference back to its original value
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, preference_DOSUPERTRANSFER);
//delete the windows dstore temp file just created
try {
dstoreWindowsFss.delete(dstoreWindowsTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
//Then, delete the temp folder in the junit workspace.
temp.delete(EFS.NONE, mon);
}
public void testSuperTransferDStoreToLocal() throws Exception {
String tempPath = getWorkspace().getRoot().getLocation().append("temp").toString();
IFileStore temp = createDir(tempPath, true);
createSuperTransferFolder(temp);
//Set the superTransfer preference on
IPreferenceStore store = RSEUIPlugin.getDefault().getPreferenceStore();
boolean preference_DOSUPERTRANSFER = store.getBoolean(ISystemFilePreferencesConstants.DOSUPERTRANSFER);
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, true);
//now, copy folderToCopy into the folder in the remote system
IRemoteFile sourceFolderToCopy1 = localFss.getRemoteFileObject(tempPath + '\\' + folderToCopyName3, mon);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy1).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet1 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet1.addResource(sourceFolderToCopy1);
ISystemResourceSet tempObjects1 = srcAdapter1.doDrag(fromSet1, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects1, tempDir, mon, true);
//Then, we need to retrieve children of the tempDir to cache their information.
fss.resolveFilterString(tempDir, null, mon);
//Then, create a temparory directory the My Home of the Local connection
//Create a temparory directory in My Home
IRemoteFile localTempDir = null;
try
{
IRemoteFile homeDirectory = localFss.getRemoteFileObject(".", mon);
String baseFolderName = "rsetest";
String homeFolderName = homeDirectory.getAbsolutePath();
String testFolderName = FileServiceHelper.getRandomLocation(localFss, homeFolderName, baseFolderName, mon);
localTempDir = createFileOrFolder(localFss, homeFolderName, testFolderName, true);
}
catch (Exception e)
{
fail("Problem encountered: " + e.getStackTrace().toString());
}
//now, copy that folder in the Dstore connection into the folder in local connection
IRemoteFile sourceFolderToCopy2 = (IRemoteFile)getChildFromFolder(tempDir, folderToCopyName3);
ISystemDragDropAdapter srcAdapter2 = (ISystemDragDropAdapter) ((IAdaptable) sourceFolderToCopy2).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet2 = new SystemRemoteResourceSet(fss, srcAdapter2);
fromSet2.addResource(sourceFolderToCopy2);
ISystemResourceSet tempObjects2 = srcAdapter2.doDrag(fromSet2, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects2, localTempDir, mon, true);
Object[] localChildren = localFss.resolveFilterString(localTempDir, null, mon);
//Make sure there is no temp archive file left
assertTrue(localChildren.length == 1);
//then verify the result of copy
Object theCopiedFolderLocal = getChildFromFolder(localFss, localTempDir, folderToCopyName3);
assertNotNull(theCopiedFolderLocal);
//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(localFss, (IRemoteFile)theCopiedFolderLocal, childrenToCheck, typesToCheck);
//Then, set the preference back to its original value
store.setValue(ISystemFilePreferencesConstants.DOSUPERTRANSFER, preference_DOSUPERTRANSFER);
//delete the windows dstore temp file just created
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
//Then, delete the temp folder in the junit workspace.
temp.delete(EFS.NONE, mon);
}
public void testCopyVirtualFileFromDStoreToLocal() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
createSourceZipFiles();
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(tempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//Create the tempDir inside the Local connection first.
IRemoteFile localTempDir = null;
try
{
IRemoteFile homeDirectory = localFss.getRemoteFileObject(".", mon);
String baseFolderName = "rsetest";
String homeFolderName = homeDirectory.getAbsolutePath();
String testFolderName = FileServiceHelper.getRandomLocation(localFss, homeFolderName, baseFolderName, mon);
localTempDir = createFileOrFolder(localFss, homeFolderName, testFolderName, true);
}
catch (Exception e)
{
fail("Problem encountered: " + e.getStackTrace().toString());
}
//then, create a folder inside the tempDir inside the Local connection
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(localFss, localTempDir.getAbsolutePath(), folderName, true);
assertNotNull(folder1);
//Now, copy one of the folder from the zip file into folder1
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceZipFile, folderToCopyName1);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) firstLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(fss, srcAdapter1);
fromSet3.addResource(firstLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, folder1, mon, true);
//make sure some delay before checking the result
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(localFss, folder1, folderToCopyName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Team", "TypeFilters", "xuanchentp", ".compatibility", ".project"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents(localFss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVirtualFileLevelTwoFromDStoreToLocal() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
createSourceZipFiles();
//copy the zip file first.
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(tempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//Create the tempDir inside the Local connection first.
IRemoteFile localTempDir = null;
try
{
IRemoteFile homeDirectory = localFss.getRemoteFileObject(".", mon);
String baseFolderName = "rsetest";
String homeFolderName = homeDirectory.getAbsolutePath();
String testFolderName = FileServiceHelper.getRandomLocation(localFss, homeFolderName, baseFolderName, mon);
localTempDir = createFileOrFolder(localFss, homeFolderName, testFolderName, true);
}
catch (Exception e)
{
fail("Problem encountered: " + e.getStackTrace().toString());
}
//then, create a folder inside the tempDir inside the Local connection
String folderName = "folder1";
String secondLeveChildName = "Team";
IRemoteFile folder1 = createFileOrFolder(localFss, localTempDir.getAbsolutePath(), folderName, true);
assertNotNull(folder1);
//Now, copy one of the level two folder from the zip file into folder1
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceZipFile, folderToCopyName1);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(firstLevelChild, "Team");
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) secondLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(fss, srcAdapter1);
fromSet3.addResource(secondLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, folder1, mon, true);
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(localFss, folder1, secondLeveChildName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Connections", "Filters", "profile.xmi"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(localFss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVirtualFileFromLocalToDStore() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
IRemoteFile sourceZipLocation = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(localFss, sourceZipLocation, sourceZipFileName);
assertNotNull(sourceZipFile);
//then, create a folder inside the tempDir inside the DStore connection
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(fss, tempDir.getAbsolutePath(), folderName, true);
assertNotNull(folder1);
//Now, copy one of the folder from the zip file in Local connection into folder1
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(localFss, sourceZipFile, folderToCopyName1);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) firstLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(firstLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, folder1, mon, true);
Object copiedVirtualFolder = getChildFromFolder(fss, folder1, folderToCopyName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Team", "TypeFilters", "xuanchentp", ".compatibility", ".project"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents(fss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(sourceZipLocation, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVirtualFileLevelTwoFromLocalToDStore() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
IRemoteFile sourceZipLocation = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(localFss, sourceZipLocation, sourceZipFileName);
assertNotNull(sourceZipFile);
//then, create a folder inside the tempDir inside the DStore connection
String folderName = "folder1";
IRemoteFile folder1 = createFileOrFolder(fss, tempDir.getAbsolutePath(), folderName, true);
assertNotNull(folder1);
//Now, copy one of the folder from the zip file in Local connection into folder1
//Now, copy one of the level two folder from the zip file into folder1
String secondLeveChildName = "Team";
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(localFss, sourceZipFile, folderToCopyName1);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(localFss, firstLevelChild, secondLeveChildName);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) secondLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(secondLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, folder1, mon, true);
Object copiedVirtualFolder = getChildFromFolder(fss, folder1, secondLeveChildName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Connections", "Filters", "profile.xmi"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(fss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(sourceZipLocation, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFToArchiveFromDStoreToLocal() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(tempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the first level virtual child of a zip file
//in local temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, zipSourceFileName2);
//IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(localFss, destinationArchiveFile, folderToCopyName2);
//Now, copy one of the folder from the zip file in dstore into destinationVirtualFolder
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceZipFile, folderToCopyName1);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) firstLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(fss, srcAdapter1);
fromSet3.addResource(firstLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationArchiveFile, mon, true);
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(localFss, destinationArchiveFile, folderToCopyName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Team", "TypeFilters", "xuanchentp", ".compatibility", ".project"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents(localFss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFLevelTwoToArchiveFromDStoreToLocal() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(tempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the second level virtual child of a zip file
//in local temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, zipSourceFileName2);
//IRemoteFile firstChild = (IRemoteFile)getChildFromFolder(localFss, destinationArchiveFile, folderToCopyName2);
//IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(localFss, firstChild, "20070319");
//the source is a second level child of a zip file in dstore connection temp dir
String secondLeveChildName = "Team";
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(fss, sourceZipFile, folderToCopyName1);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(fss, firstLevelChild, secondLeveChildName);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) secondLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(fss, srcAdapter1);
fromSet3.addResource(secondLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationArchiveFile, mon, true);
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(localFss, destinationArchiveFile, secondLeveChildName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Connections", "Filters", "profile.xmi"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(localFss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFToArchiveFromLocalToDStore() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
//Source zip file is from Local connection
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the first level virtual child of a zip file
//in dstore temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(fss, tempDir, zipSourceFileName2);
//IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(fss, destinationArchiveFile, folderToCopyName2);
//Now, copy one of the folder from the zip file in local into destinationVirtualFolder
//First, drag the virtual folder from the local zip file
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(localFss, sourceZipFile, folderToCopyName1);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) firstLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(firstLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
//The drop to the destination virtual folder in dstore connection.
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationArchiveFile, mon, true);
//The result is in the dstore connection
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(fss, destinationArchiveFile, folderToCopyName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Team", "TypeFilters", "xuanchentp", ".compatibility", ".project"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents(fss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFLevelTwoToArchiveFromLocalToDStore() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
//Source zip file is in local connection
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the second level virtual child of a zip file
//in dstore temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(fss, tempDir, zipSourceFileName2);
//IRemoteFile firstChild = (IRemoteFile)getChildFromFolder(fss, destinationArchiveFile, folderToCopyName2);
//IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(fss, firstChild, "20070319");
//the source is a second level child of a zip file in local connection temp dir
String secondLeveChildName = "Team";
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(localFss, sourceZipFile, folderToCopyName1);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(localFss, firstLevelChild, secondLeveChildName);
//Now, copy one of the folder from the zip file in local into destinationVirtualFolder
//First, drag the virtual folder from the local zip file
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) secondLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(secondLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationArchiveFile, mon, true);
//The result is in the dstore connection
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(fss, destinationArchiveFile, secondLeveChildName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Connections", "Filters", "profile.xmi"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(fss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFToVFFromDStoreToLocal() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(tempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the first level virtual child of a zip file
//in local temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, zipSourceFileName2);
IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(localFss, destinationArchiveFile, folderToCopyName2);
//Now, copy one of the folder from the zip file in dstore into destinationVirtualFolder
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(sourceZipFile, folderToCopyName1);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) firstLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(fss, srcAdapter1);
fromSet3.addResource(firstLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationVirtualFolder, mon, true);
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(localFss, destinationVirtualFolder, folderToCopyName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Team", "TypeFilters", "xuanchentp", ".compatibility", ".project"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents(localFss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFToVFLevelTwoFromDStoreToLocal() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(tempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the second level virtual child of a zip file
//in local temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, zipSourceFileName2);
IRemoteFile firstChild = (IRemoteFile)getChildFromFolder(localFss, destinationArchiveFile, folderToCopyName2);
IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(localFss, firstChild, "20070319");
//the source is a second level child of a zip file in dstore connection temp dir
String secondLeveChildName = "Team";
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(fss, sourceZipFile, folderToCopyName1);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(fss, firstLevelChild, secondLeveChildName);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) secondLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(fss, srcAdapter1);
fromSet3.addResource(secondLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationVirtualFolder, mon, true);
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(localFss, destinationVirtualFolder, secondLeveChildName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Connections", "Filters", "profile.xmi"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(localFss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFToVFFromLocalToDStore() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
//Source zip file is from Local connection
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the first level virtual child of a zip file
//in dstore temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(fss, tempDir, zipSourceFileName2);
IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(fss, destinationArchiveFile, folderToCopyName2);
//Now, copy one of the folder from the zip file in local into destinationVirtualFolder
//First, drag the virtual folder from the local zip file
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(localFss, sourceZipFile, folderToCopyName1);
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) firstLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(firstLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
//The drop to the destination virtual folder in dstore connection.
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationVirtualFolder, mon, true);
//The result is in the dstore connection
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(fss, destinationVirtualFolder, folderToCopyName1);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Team", "TypeFilters", "xuanchentp", ".compatibility", ".project"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE, TYPE_FILE};
checkFolderContents(fss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
public void testCopyVFToVFLevelTwoFromLocalToDStore() throws Exception {
if (!RSETestsPlugin.isTestCaseEnabled("FileServiceTest.testCreateFile")) return; //$NON-NLS-1$
//Create the zip files in dstore connection.
createSourceZipFiles();
//Create the zip files in local connection
IRemoteFile localTempDir = createSourceZipFiles(localFss);
String sourceZipFileName = zipSourceFileName1;
//Source zip file is in local connection
IRemoteFile sourceZipFile = (IRemoteFile)getChildFromFolder(localFss, localTempDir, sourceZipFileName);
assertNotNull(sourceZipFile);
//The destination is the second level virtual child of a zip file
//in dstore temp dir
IRemoteFile destinationArchiveFile = (IRemoteFile)getChildFromFolder(fss, tempDir, zipSourceFileName2);
IRemoteFile firstChild = (IRemoteFile)getChildFromFolder(fss, destinationArchiveFile, folderToCopyName2);
IRemoteFile destinationVirtualFolder = (IRemoteFile)getChildFromFolder(fss, firstChild, "20070319");
//the source is a second level child of a zip file in local connection temp dir
String secondLeveChildName = "Team";
IRemoteFile firstLevelChild = (IRemoteFile)getChildFromFolder(localFss, sourceZipFile, folderToCopyName1);
IRemoteFile secondLevelChild = (IRemoteFile)getChildFromFolder(localFss, firstLevelChild, secondLeveChildName);
//Now, copy one of the folder from the zip file in local into destinationVirtualFolder
//First, drag the virtual folder from the local zip file
ISystemDragDropAdapter srcAdapter1 = (ISystemDragDropAdapter) ((IAdaptable) secondLevelChild).getAdapter(ISystemDragDropAdapter.class);
SystemRemoteResourceSet fromSet3 = new SystemRemoteResourceSet(localFss, srcAdapter1);
fromSet3.addResource(secondLevelChild);
ISystemResourceSet tempObjects3 = srcAdapter1.doDrag(fromSet3, mon);
UniversalFileTransferUtility.copyWorkspaceResourcesToRemote((SystemWorkspaceResourceSet)tempObjects3, destinationVirtualFolder, mon, true);
//The result is in the dstore connection
Thread.sleep(50);
Object copiedVirtualFolder = getChildFromFolder(fss, destinationVirtualFolder, secondLeveChildName);
assertNotNull(copiedVirtualFolder);
String[] contents = {"Connections", "Filters", "profile.xmi"};
int[] typesToCheck = {TYPE_FOLDER, TYPE_FOLDER, TYPE_FILE};
checkFolderContents(fss, (IRemoteFile)copiedVirtualFolder, contents, typesToCheck);
//Now, need to delete the temp dir in the Local connection
try {
localFss.delete(localTempDir, mon);
} catch(SystemMessageException msg) {
//ensure that super.tearDown() can run
System.err.println("Exception on deleting local temp dir: "+msg.getLocalizedMessage()); //$NON-NLS-1$
}
}
}

View file

@ -12,16 +12,25 @@ package org.eclipse.rse.tests.subsystems.files;
import junit.framework.TestSuite;
import org.eclipse.core.filesystem.EFS;
import org.eclipse.core.filesystem.IFileStore;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.rse.core.IRSESystemType;
import org.eclipse.rse.core.model.IHost;
import org.eclipse.rse.core.model.ISystemRegistry;
import org.eclipse.rse.core.model.ISystemResourceSet;
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;
@ -61,7 +70,7 @@ public class FileServiceArchiveTestDStoreWindows extends FileServiceArchiveTest
//suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStoreWindows.class, "testRenameVirtualFileBigZip")); //$NON-NLS-1$
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStoreWindows.class, "testSuperTransferLocalToRemote"));
suite.addTest(TestSuite.createTest(FileServiceArchiveTestDStore.class, "testSuperTransferDStoreToLocal"));
return suite;
}
@ -143,7 +152,5 @@ public class FileServiceArchiveTestDStoreWindows extends FileServiceArchiveTest
store.setValue(ISystemPreferencesConstants.ALERT_NONSSL, fPreference_ALERT_NONSSL);
super.tearDown();
}
}