Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2009-02-28 00:20:00 +0000
committerslewis2009-02-28 00:20:00 +0000
commitc9a0c487f51549f824191bc5015f6f94adc49227 (patch)
tree9ec8641e312c89253c675f74f3d3ec446cd9d6b0 /tests/bundles/org.eclipse.ecf.tests.filetransfer
parentcf7f749cd3fa99ed2fbd96923911d15ed8bfa068 (diff)
downloadorg.eclipse.ecf-c9a0c487f51549f824191bc5015f6f94adc49227.tar.gz
org.eclipse.ecf-c9a0c487f51549f824191bc5015f6f94adc49227.tar.xz
org.eclipse.ecf-c9a0c487f51549f824191bc5015f6f94adc49227.zip
Contributions from attachment 127064 on bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=263613
Diffstat (limited to 'tests/bundles/org.eclipse.ecf.tests.filetransfer')
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLBrowseTest.java20
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLPartialRetrieveTest.java1
-rwxr-xr-xtests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java27
-rw-r--r--tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTestUnknownHost.java122
4 files changed, 162 insertions, 8 deletions
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLBrowseTest.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLBrowseTest.java
index 30f92e1bc..2a059aa49 100755
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLBrowseTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLBrowseTest.java
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 2008 Composent, Inc. and others.
+ * Copyright (c) 2008, 2009 Composent, Inc., IBM and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -7,14 +7,16 @@
*
* Contributors:
* Composent, Inc. - initial API and implementation
+ *
*****************************************************************************/
package org.eclipse.ecf.tests.filetransfer;
import java.net.URL;
+import java.net.UnknownHostException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Iterator;
+import java.util.List;
import org.eclipse.ecf.filetransfer.IRemoteFile;
import org.eclipse.ecf.filetransfer.IRemoteFileAttributes;
@@ -28,7 +30,7 @@ import org.eclipse.ecf.filetransfer.identity.IFileID;
public class URLBrowseTest extends AbstractBrowseTestCase {
public URL[] testURLs = null;
- private Collection events;
+ private List events;
/* (non-Javadoc)
* @see org.eclipse.ecf.tests.filetransfer.AbstractBrowseTestCase#setUp()
@@ -78,6 +80,18 @@ public class URLBrowseTest extends AbstractBrowseTestCase {
}
+ public void testBrowseUnknownHost() throws Exception {
+ testBrowse(new URL(URLRetrieveTestUnknownHost.HTTP_UNKNOWN_HOST_URL));
+ Thread.sleep(3000);
+ assertHasEventCount(events, IRemoteFileSystemBrowseEvent.class, 1);
+ IRemoteFileSystemBrowseEvent event = (IRemoteFileSystemBrowseEvent) events.get(0);
+ assertNotNull(event);
+ final IRemoteFile[] remoteFiles = event.getRemoteFiles();
+ assertNull(remoteFiles);
+ assertNotNull(event.getException());
+ assertTrue(event.getException() instanceof UnknownHostException);
+ }
+
protected void verifyRemoteFilesWithoutLastModifiedAndContentLength(final IRemoteFile[] remoteFiles) {
for (int i = 0; i < remoteFiles.length; i++) {
final IRemoteFile first = remoteFiles[i];
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLPartialRetrieveTest.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLPartialRetrieveTest.java
index 1766c97d5..1941d3272 100755
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLPartialRetrieveTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLPartialRetrieveTest.java
@@ -120,6 +120,7 @@ public class URLPartialRetrieveTest extends ContainerAbstractTestCase {
isDone = true;
notify.notify();
}
+ session = ((IIncomingFileTransferReceiveDoneEvent) event).getSource();
}
}
};
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java
index 70323f205..7a85379cf 100755
--- a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTest.java
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 2004 Composent, Inc. and others.
+ * Copyright (c) 2004 Composent, Inc., and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -18,7 +18,6 @@ import java.net.URL;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.ecf.filetransfer.IFileTransferListener;
-import org.eclipse.ecf.filetransfer.IncomingFileTransferException;
import org.eclipse.ecf.filetransfer.events.IFileTransferConnectStartEvent;
import org.eclipse.ecf.filetransfer.events.IIncomingFileTransferReceiveDataEvent;
import org.eclipse.ecf.filetransfer.events.IIncomingFileTransferReceiveDoneEvent;
@@ -100,6 +99,24 @@ public class URLRetrieveTest extends AbstractRetrieveTestCase {
assertTrue(tmpFile.length() > 0);
}
+ protected void testReceiveFails(String url) throws Exception {
+ assertNotNull(retrieveAdapter);
+ final IFileTransferListener listener = createFileTransferListener();
+ try {
+ final IFileID fileID = createFileID(new URL(url));
+ retrieveAdapter.sendRetrieveRequest(fileID, listener, null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(e.toString());
+ }
+
+ waitForDone(10000);
+
+ assertHasNoEvent(startEvents, IIncomingFileTransferReceiveStartEvent.class);
+ assertHasNoEvent(dataEvents, IIncomingFileTransferReceiveDataEvent.class);
+ assertHasEvent(doneEvents, IIncomingFileTransferReceiveDoneEvent.class);
+ }
+
public void testReceiveFile() throws Exception {
//addProxy("composent.com",3129,"foo\\bar","password");
testReceive(HTTP_RETRIEVE);
@@ -115,10 +132,10 @@ public class URLRetrieveTest extends AbstractRetrieveTestCase {
public void testFailedReceive() throws Exception {
try {
- testReceive(HTTP_404_FAIL_RETRIEVE);
- fail();
+ testReceiveFails(HTTP_404_FAIL_RETRIEVE);
} catch (final Exception e) {
- assertTrue(e instanceof IncomingFileTransferException);
+ e.printStackTrace();
+ fail(e.toString());
}
}
diff --git a/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTestUnknownHost.java b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTestUnknownHost.java
new file mode 100644
index 000000000..20e4af081
--- /dev/null
+++ b/tests/bundles/org.eclipse.ecf.tests.filetransfer/src/org/eclipse/ecf/tests/filetransfer/URLRetrieveTestUnknownHost.java
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM, and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.ecf.tests.filetransfer;
+
+import java.net.URL;
+import java.net.UnknownHostException;
+
+import org.eclipse.ecf.filetransfer.FileTransferJob;
+import org.eclipse.ecf.filetransfer.IFileTransferListener;
+import org.eclipse.ecf.filetransfer.events.IFileTransferConnectStartEvent;
+import org.eclipse.ecf.filetransfer.events.IIncomingFileTransferReceiveDataEvent;
+import org.eclipse.ecf.filetransfer.events.IIncomingFileTransferReceiveDoneEvent;
+import org.eclipse.ecf.filetransfer.events.IIncomingFileTransferReceiveStartEvent;
+import org.eclipse.ecf.filetransfer.identity.IFileID;
+
+public class URLRetrieveTestUnknownHost extends AbstractRetrieveTestCase {
+
+ public static final String HTTP_UNKNOWN_HOST_URL = "http://unknown-abcdefghi.eclipse.org/foo";
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see junit.framework.TestCase#setUp()
+ */
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+ /*
+ * (non-Javadoc)
+ *
+ * @see junit.framework.TestCase#tearDown()
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ protected void testReceive(String url, IFileTransferListener listener)
+ throws Exception {
+ assertNotNull(retrieveAdapter);
+ final IFileID fileID = createFileID(new URL(url));
+ retrieveAdapter.sendRetrieveRequest(fileID, listener, null);
+ waitForDone(10000);
+ }
+
+ public void testReceiveFile_unknownHostWithoutConnectJob() throws Exception {
+ final IFileTransferListener listener = createFileTransferListener();
+ try {
+ // path does not matter as server does not respond.
+ testReceive(HTTP_UNKNOWN_HOST_URL, listener);
+ assertHasEvent(startConnectEvents,
+ IFileTransferConnectStartEvent.class);
+ assertHasNoEvent(startEvents,
+ IIncomingFileTransferReceiveStartEvent.class);
+ assertHasNoEvent(dataEvents,
+ IIncomingFileTransferReceiveDataEvent.class);
+ assertHasEvent(doneEvents,
+ IIncomingFileTransferReceiveDoneEvent.class);
+ IIncomingFileTransferReceiveDoneEvent doneEvent = (IIncomingFileTransferReceiveDoneEvent) doneEvents
+ .get(0);
+ assertTrue(doneEvent.getException().toString(), doneEvent
+ .getException() instanceof UnknownHostException);
+ assertTrue(doneEvent.getSource().isDone());
+ assertSame(doneEvent.getException(), doneEvent.getSource()
+ .getException());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(e.toString());
+ }
+ }
+
+ public void testReceiveFile_unknownHostWithConnectJob() throws Exception {
+ final IFileTransferListener listener = createFileTransferListener();
+ final FileTransferListenerWrapper lw = new FileTransferListenerWrapper(
+ listener) {
+ protected void handleStartConnectEvent(
+ final IFileTransferConnectStartEvent event) {
+ assertNotNull(event.getFileID());
+ assertNotNull(event.getFileID().getFilename());
+
+ FileTransferJob connectJob = event.prepareConnectJob(null);
+ connectJob.addJobChangeListener(new JobChangeTraceListener(
+ startTime));
+ event.connectUsingJob(connectJob);
+ }
+ };
+ try {
+ // path does not matter as server does not respond.
+ testReceive(HTTP_UNKNOWN_HOST_URL, lw);
+
+ assertHasEvent(startConnectEvents,
+ IFileTransferConnectStartEvent.class);
+ assertHasNoEvent(startEvents,
+ IIncomingFileTransferReceiveStartEvent.class);
+ assertHasNoEvent(dataEvents,
+ IIncomingFileTransferReceiveDataEvent.class);
+ assertHasEvent(doneEvents,
+ IIncomingFileTransferReceiveDoneEvent.class);
+ IIncomingFileTransferReceiveDoneEvent doneEvent = (IIncomingFileTransferReceiveDoneEvent) doneEvents
+ .get(0);
+ assertTrue(doneEvent.getException().toString(), doneEvent
+ .getException() instanceof UnknownHostException);
+ assertTrue(doneEvent.getSource().isDone());
+ assertSame(doneEvent.getException(), doneEvent.getSource()
+ .getException());
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail(e.toString());
+ }
+ }
+
+
+}

Back to the top