From 057fd9f3853085b03309e50e9cf8f28e2d0c37ec Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Tue, 25 Aug 2009 07:58:34 +0000 Subject: [PATCH] Msn Filetransfer and tests. --- build.xml | 2 + lib/installer-exclude/jml-1.0b2.jar | Bin 297578 -> 320228 bytes .../icq/OperationSetFileTransferIcqImpl.java | 2 +- .../ProtocolProviderServiceJabberImpl.java | 15 + .../impl/protocol/msn/FileTransferImpl.java | 111 +++++ .../IncomingFileTransferRequestMsnImpl.java | 194 +++++++++ .../msn/OperationSetFileTransferMsnImpl.java | 412 ++++++++++++++++++ .../msn/ProtocolProviderServiceMsnImpl.java | 6 + .../generic/TestOperationSetFileTransfer.java | 10 +- .../msn/MsnProtocolProviderServiceLick.java | 2 + .../msn/TestOperationSetFileTransferImpl.java | 262 +++++++++++ .../msn/msn.provider.slick.manifest.mf | 3 +- 12 files changed, 1012 insertions(+), 7 deletions(-) create mode 100644 src/net/java/sip/communicator/impl/protocol/msn/FileTransferImpl.java create mode 100644 src/net/java/sip/communicator/impl/protocol/msn/IncomingFileTransferRequestMsnImpl.java create mode 100644 src/net/java/sip/communicator/impl/protocol/msn/OperationSetFileTransferMsnImpl.java create mode 100644 test/net/java/sip/communicator/slick/protocol/msn/TestOperationSetFileTransferImpl.java diff --git a/build.xml b/build.xml index 42ccb7d52..c62b59079 100644 --- a/build.xml +++ b/build.xml @@ -1237,6 +1237,8 @@ javax.swing.event, javax.swing.border"/> + diff --git a/lib/installer-exclude/jml-1.0b2.jar b/lib/installer-exclude/jml-1.0b2.jar index 98b58d8893583972c75fb23699faed03db022207..7913786192ef284c43d245a537563990015058c0 100644 GIT binary patch delta 90989 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⪻-jNcs($2Yl1WaP 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 delta 69298 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 F{{z>H>g50c diff --git a/src/net/java/sip/communicator/impl/protocol/icq/OperationSetFileTransferIcqImpl.java b/src/net/java/sip/communicator/impl/protocol/icq/OperationSetFileTransferIcqImpl.java index a36f4c1ea..1f768909c 100644 --- a/src/net/java/sip/communicator/impl/protocol/icq/OperationSetFileTransferIcqImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/icq/OperationSetFileTransferIcqImpl.java @@ -31,7 +31,7 @@ public class OperationSetFileTransferIcqImpl RvConnectionManagerListener { private static final Logger logger = - Logger.getLogger(OperationSetPersistentPresenceIcqImpl.class); + Logger.getLogger(OperationSetFileTransferIcqImpl.class); /** * A call back to the ICQ provider that created us. diff --git a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java index 6cdb119c8..f28093443 100644 --- a/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/jabber/ProtocolProviderServiceJabberImpl.java @@ -796,6 +796,21 @@ public void connectionClosedOnError(Exception exception) logger.error("connectionClosedOnError " + exception.getLocalizedMessage()); + if(exception instanceof XMPPException) + { + StreamError err = ((XMPPException)exception).getStreamError(); + + if(err != null && err.getCode().equals( + XMPPError.Condition.conflict.toString())) + { + fireRegistrationStateChanged(getRegistrationState(), + RegistrationState.CONNECTION_FAILED, + RegistrationStateChangeEvent.REASON_MULTIPLE_LOGINS, + "Connecting multiple times with the same resource"); + return; + } + } + if(!reconnecting) reregister(SecurityAuthority.CONNECTION_FAILED); else diff --git a/src/net/java/sip/communicator/impl/protocol/msn/FileTransferImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/FileTransferImpl.java new file mode 100644 index 000000000..46ff7f88f --- /dev/null +++ b/src/net/java/sip/communicator/impl/protocol/msn/FileTransferImpl.java @@ -0,0 +1,111 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.protocol.msn; + +import java.io.*; + +import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.util.*; +import net.sf.jml.*; + +/** + * The Filetransfer imeplementation for msn. + * @author Damian Minkov + */ +public class FileTransferImpl + extends AbstractFileTransfer +{ + /** + * Logger + */ + private static final Logger logger = + Logger.getLogger(FileTransferImpl.class); + + private String id = null; + private Contact contact = null; + private File file = null; + private int direction = -1; + private long transferedBytes; + private MsnFileTransfer fileTransfer; + + public FileTransferImpl( + MsnFileTransfer fileTransfer, + Contact contact, File file, int direction) + { + this.fileTransfer = fileTransfer; + this.id = fileTransfer.getID(); + this.contact = contact; + this.file = file; + this.direction = direction; + } + + /** + * Cancels this file transfer. When this method is called transfer should + * be interrupted. + */ + public void cancel() + { + fileTransfer.cancel(); + } + + /** + * Returns the number of bytes already transfered through this file transfer. + * + * @return the number of bytes already transfered through this file transfer + */ + public long getTransferedBytes() + { + return transferedBytes; + } + + /** + * Uniquie ID that is identifying the FileTransfer + * if the request has been accepted. + * + * @return the id. + */ + public String getID() + { + return id; + } + + /** + * The file transfer direction. + * @return returns the direction of the file transfer : IN or OUT. + */ + public int getDirection() + { + return direction; + } + + /** + * Returns the file that is transfered. + * + * @return the file + */ + public File getLocalFile() + { + return file; + } + + /** + * Returns the contact that we are transfering files with. + * @return the contact. + */ + public Contact getContact() + { + return contact; + } + + /** + * @param transferedBytes the transferedBytes to set + */ + public void setTransferedBytes(long transferedBytes) + { + this.transferedBytes = transferedBytes; + } +} diff --git a/src/net/java/sip/communicator/impl/protocol/msn/IncomingFileTransferRequestMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/IncomingFileTransferRequestMsnImpl.java new file mode 100644 index 000000000..5f5fd90f0 --- /dev/null +++ b/src/net/java/sip/communicator/impl/protocol/msn/IncomingFileTransferRequestMsnImpl.java @@ -0,0 +1,194 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.protocol.msn; + +import java.io.File; +import java.util.*; + +import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.service.protocol.event.*; +import net.java.sip.communicator.util.*; +import net.sf.jml.*; + +/** + * Msn implementation of the incoming file transfer request + * + * @author Damian Minkov + */ +public class IncomingFileTransferRequestMsnImpl + implements IncomingFileTransferRequest +{ + /** + * Logger + */ + private static final Logger logger = + Logger.getLogger(IncomingFileTransferRequestMsnImpl.class); + + private OperationSetFileTransferMsnImpl fileTransferOpSet; + + /** + * The msn file transfer received + */ + private MsnFileTransfer incomingFileTransfer = null; + + private Contact sender = null; + + private Date date; + + private String id; + + private boolean rejected = false; + + /** + * Constructor + * + * @param fileTransfer msn file transfer request that was received + */ + public IncomingFileTransferRequestMsnImpl( + OperationSetFileTransferMsnImpl fileTransferOpSet, + MsnFileTransfer incomingFileTransfer, + Contact sender, + Date date) + { + this.fileTransferOpSet = fileTransferOpSet; + this.incomingFileTransfer = incomingFileTransfer; + this.sender = sender; + this.date = date; + + id = incomingFileTransfer.getID(); + } + + /** + * Uniquie ID that is identifying the request and then the FileTransfer + * if the request has been accepted. + * + * @return the id. + */ + public String getID() + { + return id; + } + + /** + * Returns a String that represents the name of the file that is being + * received. + * If there is no name, returns null. + * @return a String that represents the name of the file + */ + public String getFileName() + { + return incomingFileTransfer.getFile().getName(); + } + + /** + * Returns a String that represents the description of the file that is + * being received. + * If there is no description available, returns null. + * + * @return a String that represents the description of the file + */ + public String getFileDescription() + { + return ""; + } + + /** + * Returns a long that represents the size of the file that is being + * received. + * If there is no file size available, returns null. + * + * @return a long that represents the size of the file + */ + public long getFileSize() + { + return incomingFileTransfer.getFileTotalSize(); + } + + /** + * Returns a String that represents the name of the sender of the file + * being received. + * If there is no sender name available, returns null. + * + * @return a String that represents the name of the sender + */ + public Contact getSender() + { + return sender; + } + + /** + * Function called to accept and receive the file. + * + * @param file the file to accept + * @return the FileTransfer object managing the transfer + */ + public FileTransfer acceptFile(File file) + { + incomingFileTransfer.setFile(file); + + FileTransferImpl inFileTransfer = + new FileTransferImpl( + incomingFileTransfer, + sender, + file, + FileTransfer.IN); + + FileTransferCreatedEvent event + = new FileTransferCreatedEvent(inFileTransfer, date); + + fileTransferOpSet.fireFileTransferCreated(event); + + inFileTransfer.fireStatusChangeEvent( + FileTransferStatusChangeEvent.PREPARING); + + incomingFileTransfer.start(); + + return inFileTransfer; + } + + /** + * Function called to refuse the file. + */ + public void rejectFile() + { + try + { + rejected = true; + + incomingFileTransfer.cancel(); + + fileTransferOpSet.fireFileTransferRequestRejected( + new FileTransferRequestEvent(fileTransferOpSet, this, date)); + } + catch(IllegalStateException e) + { + logger.debug("Error rejecting file",e); + return; + } + } + + public byte[] getThumbnail() + { + return null; + } + + /** + * @return the date + */ + public Date getDate() + { + return date; + } + + /** + * @return the rejected + */ + public boolean isRejected() + { + return rejected; + } +} diff --git a/src/net/java/sip/communicator/impl/protocol/msn/OperationSetFileTransferMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/OperationSetFileTransferMsnImpl.java new file mode 100644 index 000000000..7d3fdc5ce --- /dev/null +++ b/src/net/java/sip/communicator/impl/protocol/msn/OperationSetFileTransferMsnImpl.java @@ -0,0 +1,412 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.impl.protocol.msn; + +import java.io.*; +import java.util.*; + +import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.service.protocol.event.*; +import net.java.sip.communicator.util.*; +import net.sf.jml.*; +import net.sf.jml.event.*; + +/** + * The Msn protocol filetransfer OperationSet. + * + * @author Damian Minkov + */ +public class OperationSetFileTransferMsnImpl + implements OperationSetFileTransfer +{ + private static final Logger logger = + Logger.getLogger(OperationSetFileTransferMsnImpl.class); + + /** + * A call back to the Msn provider that created us. + */ + private ProtocolProviderServiceMsnImpl msnProvider = null; + + /** + * A list of listeners registered for file transfer events. + */ + private ArrayList fileTransferListeners + = new ArrayList(); + + /** + * A list of active fileTransfers. + */ + private Hashtable activeFileTransfers + = new Hashtable(); + + /** + * Create a new FileTransfer OperationSet over the specified Msn provider + * @param provider + */ + public OperationSetFileTransferMsnImpl( + ProtocolProviderServiceMsnImpl msnProvider) + { + this.msnProvider = msnProvider; + + msnProvider.addRegistrationStateChangeListener( + new RegistrationStateListener()); + } + + + /** + * Sends a file transfer request to the given toContact by + * specifying the local and remote file path and the fromContact, + * sending the file. + * + * @param toContact the contact that should receive the file + * @param file the file to send + * + * @return the transfer object + * + * @throws IllegalStateException if the protocol provider is not registered + * or connected + * @throws IllegalArgumentException if some of the arguments doesn't fit the + * protocol requirements + */ + public FileTransfer sendFile( Contact toContact, + File file) + throws IllegalStateException, + IllegalArgumentException + { + assertConnected(); + + if( !(toContact instanceof ContactMsnImpl) ) + throw new IllegalArgumentException( + "The specified contact is not an msn contact." + toContact); + + MsnFileTransfer ft = msnProvider.getMessenger(). + getFileTransferManager(). + sendFile( + ((ContactMsnImpl)toContact).getSourceContact().getEmail(), + file); + + if(ft == null) + new IllegalStateException( + "A problem occured sending file, contact not found or offline"); + + FileTransferImpl outFileTransfer = new FileTransferImpl( + ft, toContact, file, FileTransfer.OUT); + + + // Notify all interested listeners that a file transfer has been + // created. + FileTransferCreatedEvent event + = new FileTransferCreatedEvent(outFileTransfer, new Date()); + + fireFileTransferCreated(event); + + outFileTransfer.fireStatusChangeEvent( + FileTransferStatusChangeEvent.PREPARING); + + return outFileTransfer; + } + + /** + * Sends a file transfer request to the given toContact by + * specifying the local and remote file path and the fromContact, + * sending the file. + * + * @param toContact the contact that should receive the file + * @param fromContact the contact sending the file + * @param remotePath the remote file path + * @param localPath the local file path + * + * @return the transfer object + * + * @throws IllegalStateException if the protocol provider is not registered + * or connected + * @throws IllegalArgumentException if some of the arguments doesn't fit the + * protocol requirements + */ + public FileTransfer sendFile( Contact toContact, + Contact fromContact, + String remotePath, + String localPath) + throws IllegalStateException, + IllegalArgumentException + { + return this.sendFile(toContact, new File(localPath)); + } + + /** + * Adds the given FileTransferListener that would listen for + * file transfer requests and created file transfers. + * + * @param listener the FileTransferListener to add + */ + public void addFileTransferListener( + FileTransferListener listener) + { + synchronized(fileTransferListeners) + { + if(!fileTransferListeners.contains(listener)) + { + this.fileTransferListeners.add(listener); + } + } + } + + /** + * Removes the given FileTransferListener that listens for + * file transfer requests and created file transfers. + * + * @param listener the FileTransferListener to remove + */ + public void removeFileTransferListener( + FileTransferListener listener) + { + synchronized(fileTransferListeners) + { + this.fileTransferListeners.remove(listener); + } + } + + /** + * Utility method throwing an exception if the stack is not properly + * initialized. + * @throws java.lang.IllegalStateException if the underlying stack is + * not registered and initialized. + */ + private void assertConnected() + throws IllegalStateException + { + if (msnProvider == null) + throw new IllegalStateException( + "The provider must be non-null and signed on the " + +"service before being able to send a file."); + else if (!msnProvider.isRegistered()) + throw new IllegalStateException( + "The provider must be signed on the service before " + +"being able to send a file."); + } + + /** + * Delivers the specified event to all registered file transfer listeners. + * + * @param event the EventObject that we'd like delivered to all + * registered file transfer listeners. + */ + private void fireFileTransferRequest(FileTransferRequestEvent event) + { + Iterator listeners = null; + synchronized (fileTransferListeners) + { + listeners = new ArrayList + (fileTransferListeners).iterator(); + } + + while (listeners.hasNext()) + { + FileTransferListener listener = listeners.next(); + + listener.fileTransferRequestReceived(event); + } + } + + /** + * Delivers the specified event to all registered file transfer listeners. + * + * @param event the EventObject that we'd like delivered to all + * registered file transfer listeners. + */ + void fireFileTransferRequestRejected(FileTransferRequestEvent event) + { + Iterator listeners = null; + synchronized (fileTransferListeners) + { + listeners = new ArrayList + (fileTransferListeners).iterator(); + } + + while (listeners.hasNext()) + { + FileTransferListener listener = listeners.next(); + + listener.fileTransferRequestRejected(event); + } + } + + /** + * Delivers the specified event to all registered file transfer listeners. + * + * @param event the EventObject that we'd like delivered to all + * registered file transfer listeners. + */ + void fireFileTransferRequestCanceled(FileTransferRequestEvent event) + { + Iterator listeners = null; + synchronized (fileTransferListeners) + { + listeners = new ArrayList + (fileTransferListeners).iterator(); + } + + while (listeners.hasNext()) + { + FileTransferListener listener = listeners.next(); + + listener.fileTransferRequestCanceled(event); + } + } + + /** + * Delivers the file transfer to all registered listeners. + * + * @param fileTransfer the FileTransfer that we'd like delivered to + * all registered file transfer listeners. + */ + void fireFileTransferCreated(FileTransferCreatedEvent event) + { + activeFileTransfers.put( + event.getFileTransfer().getID(), event.getFileTransfer()); + + Iterator listeners = null; + synchronized (fileTransferListeners) + { + listeners = new ArrayList + (fileTransferListeners).iterator(); + } + + while (listeners.hasNext()) + { + FileTransferListener listener = listeners.next(); + listener.fileTransferCreated(event); + } + } + + /** + * Our listener that will tell us when we're registered to + */ + private class RegistrationStateListener + implements RegistrationStateChangeListener + { + /** + * The method is called by a ProtocolProvider implementation whenever + * a change in the registration state of the corresponding provider had + * occurred. + * @param evt ProviderStatusChangeEvent the event describing the status + * change. + */ + public void registrationStateChanged(RegistrationStateChangeEvent evt) + { + logger.debug("The provider changed state from: " + + evt.getOldState() + + " to: " + evt.getNewState()); + + if (evt.getNewState() == RegistrationState.REGISTERED) + { + msnProvider.getMessenger().addFileTransferListener( + new FileTransferProtocolListener()); + } + } + } + + /** + * Receives notifications from the slick about new filetransfers + * and filetransfer changes. + */ + private class FileTransferProtocolListener + implements MsnFileTransferListener + { + public void fileTransferRequestReceived(MsnFileTransfer ft) + { + OperationSetPersistentPresenceMsnImpl opSetPersPresence + = (OperationSetPersistentPresenceMsnImpl) + msnProvider.getOperationSet( + OperationSetPersistentPresence.class); + + Contact sender = opSetPersPresence.findContactByID( + ft.getContact().getEmail().getEmailAddress()); + + if(sender == null) + return; + + Date recvDate = new Date(); + + IncomingFileTransferRequest req = + new IncomingFileTransferRequestMsnImpl( + OperationSetFileTransferMsnImpl.this, + ft, sender, recvDate); + + activeFileTransfers.put(ft.getID(), req); + + fireFileTransferRequest( + new FileTransferRequestEvent( + OperationSetFileTransferMsnImpl.this, req, recvDate)); + } + + public void fileTransferStarted(MsnFileTransfer ft) + { + Object ftObj = activeFileTransfers.get(ft.getID()); + + if(ftObj != null && ftObj instanceof FileTransferImpl) + { + FileTransferImpl fileTransfer = (FileTransferImpl)ftObj; + + fileTransfer.fireStatusChangeEvent( + FileTransferStatusChangeEvent.IN_PROGRESS); + } + } + + public void fileTransferProcess(MsnFileTransfer ft) + { + Object ftObj = activeFileTransfers.get(ft.getID()); + + if(ftObj != null && ftObj instanceof FileTransferImpl) + { + FileTransferImpl fileTransfer = (FileTransferImpl)ftObj; + + fileTransfer.setTransferedBytes(ft.getTransferredSize()); + fileTransfer.fireProgressChangeEvent( + System.currentTimeMillis(), ft.getTransferredSize()); + } + } + + public void fileTransferFinished(MsnFileTransfer ft) + { + Object ftObj = activeFileTransfers.get(ft.getID()); + + if(ftObj == null) + return; + + if(ftObj instanceof FileTransferImpl) + { + FileTransferImpl fileTransfer = (FileTransferImpl)ftObj; + + if(ft.getState() == MsnFileTransferState.COMPLETED) + fileTransfer.fireStatusChangeEvent( + FileTransferStatusChangeEvent.COMPLETED); + else if(ft.getState() == MsnFileTransferState.CANCELED) + fileTransfer.fireStatusChangeEvent( + FileTransferStatusChangeEvent.CANCELED); + else if(ft.getState() == MsnFileTransferState.REFUSED) + fileTransfer.fireStatusChangeEvent( + FileTransferStatusChangeEvent.REFUSED); + } + else if(ftObj instanceof IncomingFileTransferRequest) + { + IncomingFileTransferRequestMsnImpl inReq = + (IncomingFileTransferRequestMsnImpl)ftObj; + + if(!inReq.isRejected() + && ft.getState() == MsnFileTransferState.CANCELED) + fireFileTransferRequestCanceled( + new FileTransferRequestEvent( + OperationSetFileTransferMsnImpl.this, + inReq, + inReq.getDate())); + } + + activeFileTransfers.remove(ft.getID()); + } + } +} diff --git a/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java b/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java index f98ea8d66..14a3327e8 100644 --- a/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java +++ b/src/net/java/sip/communicator/impl/protocol/msn/ProtocolProviderServiceMsnImpl.java @@ -297,6 +297,12 @@ protected void initialize(String screenname, OperationSetTypingNotifications.class.getName(), typingNotifications); + OperationSetFileTransferMsnImpl fileTransferOpSet = + new OperationSetFileTransferMsnImpl(this); + supportedOperationSets.put( + OperationSetFileTransfer.class.getName(), + fileTransferOpSet); + isInitialized = true; } } diff --git a/test/net/java/sip/communicator/slick/protocol/generic/TestOperationSetFileTransfer.java b/test/net/java/sip/communicator/slick/protocol/generic/TestOperationSetFileTransfer.java index 9ee5dafdd..ad3f9dd1d 100644 --- a/test/net/java/sip/communicator/slick/protocol/generic/TestOperationSetFileTransfer.java +++ b/test/net/java/sip/communicator/slick/protocol/generic/TestOperationSetFileTransfer.java @@ -85,7 +85,7 @@ public void testSendAndReceive() logger.trace("Start test : send and receive ok."); - File fileToTransfer = getTempFileToTransfer(1234567); + File fileToTransfer = getTempFileToTransfer(123456); OperationSetFileTransfer ftOpSet1 = getOpSetFilTransfer1(); OperationSetFileTransfer ftOpSet2 = getOpSetFilTransfer2(); @@ -108,7 +108,7 @@ public void testSendAndReceive() ftOpSet1.sendFile(getContact1(), fileToTransfer); senderFTListerner.waitForEvent(2000); - receiverFTListerner.waitForEvent(2000); + receiverFTListerner.waitForEvent(8000); senderStatusListener.waitForEvent(2000); // sender @@ -305,7 +305,7 @@ public void testSenderCancelBeforeAccepted() ,fileTransferStatusEvent.getNewStatus()); // the receiver must receive event refused - assertEquals("A file transfer rejected must be received on receiver side" + assertEquals("A file transfer cancel must be received on receiver side" , 1, receiverFTListerner.collectedEvents.size()); fileTransferRequestEvent @@ -350,7 +350,7 @@ public void testReceiverDecline() ftOpSet1.sendFile(getContact1(), fileToTransfer); senderFTListerner.waitForEvent(2000); - receiverFTListerner.waitForEvent(2000); + receiverFTListerner.waitForEvent(6000); senderStatusListener.waitForEvent(2000); // sender @@ -581,7 +581,7 @@ public void testReceiverCancelsWhileTransfering() public void testSenderCancelsWhileTransfering() throws Exception { - if(!enableTestReceiverCancelsWhileTransfering()) + if(!enableTestSenderCancelsWhileTransfering()) return; logger.trace("Start test : Sender will cancel fileTransfer while transfering."); diff --git a/test/net/java/sip/communicator/slick/protocol/msn/MsnProtocolProviderServiceLick.java b/test/net/java/sip/communicator/slick/protocol/msn/MsnProtocolProviderServiceLick.java index a652fbba7..1002e7695 100644 --- a/test/net/java/sip/communicator/slick/protocol/msn/MsnProtocolProviderServiceLick.java +++ b/test/net/java/sip/communicator/slick/protocol/msn/MsnProtocolProviderServiceLick.java @@ -85,6 +85,8 @@ public void start(BundleContext context) addTest(TestOperationSetBasicInstantMessaging.suite()); addTest(TestOperationSetTypingNotifications.suite()); + + addTestSuite(TestOperationSetFileTransferImpl.class); } addTest(TestAccountUninstallation.suite()); diff --git a/test/net/java/sip/communicator/slick/protocol/msn/TestOperationSetFileTransferImpl.java b/test/net/java/sip/communicator/slick/protocol/msn/TestOperationSetFileTransferImpl.java new file mode 100644 index 000000000..dc9cedf7a --- /dev/null +++ b/test/net/java/sip/communicator/slick/protocol/msn/TestOperationSetFileTransferImpl.java @@ -0,0 +1,262 @@ +/* + * SIP Communicator, the OpenSource Java VoIP and Instant Messaging client. + * + * Distributable under LGPL license. + * See terms of license at gnu.org. + */ +package net.java.sip.communicator.slick.protocol.msn; + +import java.util.*; +import net.java.sip.communicator.service.protocol.*; +import net.java.sip.communicator.slick.protocol.generic.*; +import net.java.sip.communicator.util.*; +import org.osgi.framework.*; + +/** + * Implementation for generic file transfer. + * @author Damian Minkov + */ +public class TestOperationSetFileTransferImpl + extends TestOperationSetFileTransfer +{ + private static final Logger logger = + Logger.getLogger(TestOperationSetFileTransferImpl.class); + + private MsnSlickFixture fixture = new MsnSlickFixture(); + + private OperationSetPresence opSetPresence1 = null; + private OperationSetPresence opSetPresence2 = null; + + private OperationSetFileTransfer opSetFT1 = null; + private OperationSetFileTransfer opSetFT2 = null; + + private static Contact contact1 = null; + private static Contact contact2 = null; + + public Contact getContact1() + { + if(contact1 == null) + { + contact1 = opSetPresence1.findContactByID(fixture.userID2); + } + + return contact1; + } + + public Contact getContact2() + { + if(contact2 == null) + { + contact2 = opSetPresence2.findContactByID(fixture.userID1); + } + + return contact2; + } + + public void start() + throws Exception + { + fixture.setUp(); + + Map supportedOperationSets1 = + fixture.provider1.getSupportedOperationSets(); + + if ( supportedOperationSets1 == null + || supportedOperationSets1.size() < 1) + throw new NullPointerException( + "No OperationSet implementations are supported by " + +"this implementation. "); + + //we also need the presence op set in order to retrieve contacts. + opSetPresence1 = + (OperationSetPresence)supportedOperationSets1.get( + OperationSetPresence.class.getName()); + + //if the op set is null show that we're not happy. + if (opSetPresence1 == null) + { + throw new NullPointerException( + "An implementation of the service must provide an " + + "implementation of at least one of the PresenceOperationSets"); + } + + opSetFT1 = + (OperationSetFileTransfer)supportedOperationSets1.get( + OperationSetFileTransfer.class.getName()); + + //if the op set is null show that we're not happy. + if (opSetFT1 == null) + { + throw new NullPointerException( + "An implementation of the service must provide an " + + "implementation of at least one of the FileTransferOperationSets"); + } + + Map supportedOperationSets2 = + fixture.provider2.getSupportedOperationSets(); + + if ( supportedOperationSets2 == null + || supportedOperationSets2.size() < 1) + throw new NullPointerException( + "No OperationSet implementations are supported by " + +"this implementation. "); + + opSetPresence2 = + (OperationSetPresence) supportedOperationSets2.get( + OperationSetPresence.class.getName()); + + //if the op set is null show that we're not happy. + if (opSetPresence2 == null) + { + throw new NullPointerException( + "An implementation of the service must provide an " + + "implementation of at least one of the PresenceOperationSets"); + } + + opSetFT2 = + (OperationSetFileTransfer)supportedOperationSets2.get( + OperationSetFileTransfer.class.getName()); + + //if the op set is null show that we're not happy. + if (opSetFT2 == null) + { + throw new NullPointerException( + "An implementation of the service must provide an " + + "implementation of at least one of the FileTransferOperationSets"); + } + + prepareContactList(); + } + + public void stop() + throws Exception + { + fixture.tearDown(); + } + + /** + * Create the list to be sure that contacts exchanging messages + * exists in each other lists + * @throws Exception + */ + public void prepareContactList() + throws Exception + { + // clear the provider the first time we run a filetransfer list + if(getContact1() == null && getContact2() == null) + fixture.clearProvidersLists(); + + if(getContact1() == null) + { + Object o = new Object(); + synchronized(o) + { + o.wait(2000); + } + + try + { + opSetPresence1.setAuthorizationHandler(new AuthHandler()); + opSetPresence1.subscribe(fixture.userID2); + } + catch (OperationFailedException ex) + { + // the contact already exist its OK + } + } + + if(getContact2() == null) + { + try + { + opSetPresence2.setAuthorizationHandler(new AuthHandler()); + opSetPresence2.subscribe(fixture.userID1); + } + catch (OperationFailedException ex1) + { + // the contact already exist its OK + } + + logger.info("will wait till the list prepare is completed"); + Object o = new Object(); + synchronized(o) + { + o.wait(2000); + } + } + } + + public OperationSetFileTransfer getOpSetFilTransfer1() + { + return opSetFT1; + } + + public OperationSetFileTransfer getOpSetFilTransfer2() + { + return opSetFT2; + } + + public BundleContext getContext() + { + return fixture.bc; + } + + public boolean enableTestSendAndReceive() + { + // as this is the first test to be executed + // make it wait for a while in order user to become online + Object o = new Object(); + synchronized(o) + { + try{o.wait(4000);}catch (Exception e){} + } + + return true; + } + + public boolean enableTestSenderCancelBeforeAccepted() + { + return true; + } + + public boolean enableTestReceiverDecline() + { + return true; + } + + public boolean enableTestReceiverCancelsWhileTransfering() + { + return true; + } + + public boolean enableTestSenderCancelsWhileTransfering() + { + return true; + } + + private class AuthHandler + implements AuthorizationHandler + { + + public AuthorizationResponse processAuthorisationRequest(AuthorizationRequest req, Contact sourceContact) + { + logger.trace("processAuthorisationRequest " + req + " " + + sourceContact); + + return new AuthorizationResponse(AuthorizationResponse.ACCEPT, ""); + } + + public AuthorizationRequest createAuthorizationRequest(Contact contact) + { + logger.trace("createAuthorizationRequest " + contact); + return new AuthorizationRequest(); + } + + public void processAuthorizationResponse(AuthorizationResponse response, Contact sourceContact) + { + logger.debug("auth response from: " + + sourceContact.getAddress() + " " + + response.getResponseCode().getCode()); + } + } +} diff --git a/test/net/java/sip/communicator/slick/protocol/msn/msn.provider.slick.manifest.mf b/test/net/java/sip/communicator/slick/protocol/msn/msn.provider.slick.manifest.mf index 3f6f00a0e..872a50534 100755 --- a/test/net/java/sip/communicator/slick/protocol/msn/msn.provider.slick.manifest.mf +++ b/test/net/java/sip/communicator/slick/protocol/msn/msn.provider.slick.manifest.mf @@ -13,4 +13,5 @@ Import-Package: junit.framework, net.java.sip.communicator.service.protocol, net.java.sip.communicator.service.protocol.event, net.java.sip.communicator.service.protocol.msnconstants, - net.java.sip.communicator.util + net.java.sip.communicator.util, + net.java.sip.communicator.service.fileaccess