diff options
author | slewis | 2009-02-28 00:20:00 +0000 |
---|---|---|
committer | slewis | 2009-02-28 00:20:00 +0000 |
commit | c9a0c487f51549f824191bc5015f6f94adc49227 (patch) | |
tree | 9ec8641e312c89253c675f74f3d3ec446cd9d6b0 /tests/bundles/org.eclipse.ecf.tests.filetransfer | |
parent | cf7f749cd3fa99ed2fbd96923911d15ed8bfa068 (diff) | |
download | org.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')
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()); + } + } + + +} |