diff options
| author | Alex Clayton <alex.clayton@isode.com> | 2016-02-08 12:30:12 (GMT) |
|---|---|---|
| committer | Alex Clayton <alex.clayton@isode.com> | 2016-02-16 11:02:39 (GMT) |
| commit | 2ebf488dfee7156fbbe0b3d3eccebe13d86a8634 (patch) | |
| tree | 8f0c873e2048e9f3a5bca51f358f60b21e690dd2 /src/com/isode | |
| parent | 810abab2eb236c68c75025e383609d952af71e4f (diff) | |
| download | stroke-2ebf488dfee7156fbbe0b3d3eccebe13d86a8634.zip stroke-2ebf488dfee7156fbbe0b3d3eccebe13d86a8634.tar.bz2 | |
Add the FileTransfer tests
Add the missing FileTransfer tests to stroke. When porting the tests
I found some of them were failing and required changes to the classes
being tested to fix. Had to add a DummyNetworkEnvironment as well for
the OutgoingJingleFileTransferTest.
Test-information:
All unit tests pass.
Change-Id: Id511a556ef3a5d66e0e107f36f736db3bbb3a437
Diffstat (limited to 'src/com/isode')
7 files changed, 76 insertions, 21 deletions
diff --git a/src/com/isode/stroke/base/ByteArray.java b/src/com/isode/stroke/base/ByteArray.java index 997cc6e..f1181f5 100644 --- a/src/com/isode/stroke/base/ByteArray.java +++ b/src/com/isode/stroke/base/ByteArray.java @@ -5,3 +5,3 @@ /* - * Copyright (c) 2010-2015, Isode Limited, London, England. + * Copyright (c) 2010-2016, Isode Limited, London, England. * All rights reserved. @@ -63,2 +63,10 @@ public class ByteArray { } + + /** + * Constructs a new {@link ByteArray} containing the user supplied byte. + * @param b a byte. + */ + public ByteArray(byte b) { + append(b); + } diff --git a/src/com/isode/stroke/base/SafeByteArray.java b/src/com/isode/stroke/base/SafeByteArray.java index 437346f..f07cbe1 100644 --- a/src/com/isode/stroke/base/SafeByteArray.java +++ b/src/com/isode/stroke/base/SafeByteArray.java @@ -1,3 +1,3 @@ /* - * Copyright (c) 2011-2015, Isode Limited, London, England. + * Copyright (c) 2011-2016, Isode Limited, London, England. * All rights reserved. @@ -36,2 +36,10 @@ public class SafeByteArray extends ByteArray { } + + /** + * Constructs a new {@link SafeByteArray} containing the user supplied byte. + * @param b a byte. + */ + public SafeByteArray(byte b) { + super(b); + } diff --git a/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java b/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java index 41528fa..5b3542f 100644 --- a/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java +++ b/src/com/isode/stroke/filetransfer/ByteArrayReadBytestream.java @@ -1,3 +1,3 @@ /* - * Copyright (c) 2010-2015 Isode Limited. + * Copyright (c) 2010-2016 Isode Limited. * All rights reserved. @@ -13,2 +13,4 @@ package com.isode.stroke.filetransfer; +import java.util.Arrays; + import com.isode.stroke.base.ByteArray; @@ -32,5 +34,5 @@ public class ByteArrayReadBytestream extends ReadBytestream { } - String s = data.toString(); - s = s.substring(position, position+readSize); - ByteArray result = new ByteArray(s); + byte[] rawBytes = data.getData(); + byte[] resultRawBytes = Arrays.copyOfRange(rawBytes, position, position+readSize); + ByteArray result = new ByteArray(resultRawBytes); diff --git a/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java b/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java index 10760a1..c5a1f11 100644 --- a/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java +++ b/src/com/isode/stroke/filetransfer/OutgoingJingleFileTransfer.java @@ -6,3 +6,3 @@ /* - * Copyright (c) 2013-2015 Isode Limited. + * Copyright (c) 2013-2016 Isode Limited. * All rights reserved. @@ -102,2 +102,3 @@ public class OutgoingJingleFileTransfer extends JingleFileTransfer implements Ou this.fileInfo = fileInfo; + this.options = options; this.session = session; diff --git a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java index 3e51b5f..18e4484 100644 --- a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java +++ b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamClientSession.java @@ -57,3 +57,3 @@ public class SOCKS5BytestreamClientSession extends SOCKS5AbstractBytestreamSessi - private ByteArray unprocessedData; + private final ByteArray unprocessedData = new ByteArray(); private ByteArray authenticateAddress; @@ -229,8 +229,5 @@ public class SOCKS5BytestreamClientSession extends SOCKS5AbstractBytestreamSessi logger_.fine("\n"); - SafeByteArray header = new SafeByteArray(new byte[]{0x05, 0x01, 0x00, 0x03}); - SafeByteArray message = header; - String destinationlength = Integer.toString(destination.length()); - message.append(new SafeByteArray(destinationlength)); - authenticateAddress = new ByteArray(destination); - message.append(authenticateAddress); + SafeByteArray message = new SafeByteArray(new byte[]{0x05, 0x01, 0x00, 0x03}); + message.append((byte)destination.length()); + message.append(destination); message.append(new SafeByteArray(new byte[]{0x00, 0x00})); // 2 byte for port @@ -326,3 +323,5 @@ public class SOCKS5BytestreamClientSession extends SOCKS5AbstractBytestreamSessi connectFinishedConnection.disconnect(); - dataWrittenConnection.disconnect(); + if (dataWrittenConnection != null) { + dataWrittenConnection.disconnect(); + } dataReadConnection.disconnect(); diff --git a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java index 8452e36..8facca0 100644 --- a/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java +++ b/src/com/isode/stroke/filetransfer/SOCKS5BytestreamServerSession.java @@ -17,2 +17,3 @@ import com.isode.stroke.base.ByteArray; import com.isode.stroke.base.SafeByteArray; +import com.isode.stroke.base.StartStoppable; import com.isode.stroke.signals.SignalConnection; @@ -25,3 +26,3 @@ import java.util.logging.Logger; -public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSession { +public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSession implements StartStoppable { @@ -29,3 +30,3 @@ public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSess private SOCKS5BytestreamRegistry bytestreams; - private ByteArray unprocessedData; + private ByteArray unprocessedData = new ByteArray(); private State state; @@ -133,4 +134,8 @@ public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSess dataReadConnection.disconnect(); - dataWrittenConnection.disconnect(); - dataAvailableConnection.disconnect(); + if (dataWrittenConnection != null) { + dataWrittenConnection.disconnect(); + } + if (dataAvailableConnection != null) { + dataAvailableConnection.disconnect(); + } readBytestream = null; @@ -182,6 +187,6 @@ public class SOCKS5BytestreamServerSession extends SOCKS5AbstractBytestreamSess boolean hasBytestream = bytestreams.hasBytestream(streamID); - SafeByteArray result = new SafeByteArray("0x05"); + SafeByteArray result = new SafeByteArray((byte)0x05); result.append(hasBytestream ? (byte)0x0 : (byte)0x4); result.append(new ByteArray(new byte[]{0x00, 0x03})); - result.append(Integer.toString(requestID.getSize())); + result.append((byte)requestID.getSize()); result.append(requestID.append(new ByteArray(new byte[]{0x00, 0x00}))); diff --git a/src/com/isode/stroke/network/DummyNetworkEnvironment.java b/src/com/isode/stroke/network/DummyNetworkEnvironment.java new file mode 100644 index 0000000..32524d9 --- /dev/null +++ b/src/com/isode/stroke/network/DummyNetworkEnvironment.java @@ -0,0 +1,32 @@ +/* Copyright (c) 2016, Isode Limited, London, England. + * All rights reserved. + * + * Acquisition and use of this software and related materials for any + * purpose requires a written license agreement from Isode Limited, + * or a written license from an organisation licensed by Isode Limited + * to grant such a license. + * + */ +package com.isode.stroke.network; + +import java.util.Vector; + +/** + * Dummy {@link NetworkEnvironment} for testing, returns an empty vector + * of {@link NetworkInterface} + */ +public class DummyNetworkEnvironment extends NetworkEnvironment { + + /** + * Constructor + */ + public DummyNetworkEnvironment() { + // Empty Constructor + } + + @Override + public Vector<NetworkInterface> getNetworkInterfaces() { + return new Vector<NetworkInterface>(); + } + +} |
Swift