diff options
Diffstat (limited to 'Swiften/FileTransfer/UnitTest/SOCKS5BytestreamServerSessionTest.cpp')
| -rw-r--r-- | Swiften/FileTransfer/UnitTest/SOCKS5BytestreamServerSessionTest.cpp | 71 | 
1 files changed, 36 insertions, 35 deletions
diff --git a/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamServerSessionTest.cpp b/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamServerSessionTest.cpp index c6d246d..06bc98f 100644 --- a/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamServerSessionTest.cpp +++ b/Swiften/FileTransfer/UnitTest/SOCKS5BytestreamServerSessionTest.cpp @@ -4,18 +4,19 @@   * See Documentation/Licenses/GPLv3.txt for more information.   */ -#include "Swiften/Base/ByteArray.h" +#include <Swiften/Base/ByteArray.h>  #include <cppunit/extensions/HelperMacros.h>  #include <cppunit/extensions/TestFactoryRegistry.h>  #include <boost/bind.hpp> -#include "Swiften/FileTransfer/SOCKS5BytestreamServerSession.h" -#include "Swiften/FileTransfer/ByteArrayReadBytestream.h" -#include "Swiften/FileTransfer/SOCKS5BytestreamRegistry.h" -#include "Swiften/Network/DummyConnection.h" -#include "Swiften/EventLoop/DummyEventLoop.h" -#include "Swiften/Base/StartStopper.h" +#include <Swiften/Base/Concat.h> +#include <Swiften/FileTransfer/SOCKS5BytestreamServerSession.h> +#include <Swiften/FileTransfer/ByteArrayReadBytestream.h> +#include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h> +#include <Swiften/Network/DummyConnection.h> +#include <Swiften/EventLoop/DummyEventLoop.h> +#include <Swiften/Base/StartStopper.h>  using namespace Swift; @@ -35,7 +36,7 @@ class SOCKS5BytestreamServerSessionTest : public CppUnit::TestFixture {  			eventLoop = new DummyEventLoop();  			connection = boost::shared_ptr<DummyConnection>(new DummyConnection(eventLoop));  			connection->onDataSent.connect(boost::bind(&SOCKS5BytestreamServerSessionTest::handleDataWritten, this, _1)); -			stream1 = boost::shared_ptr<ByteArrayReadBytestream>(new ByteArrayReadBytestream(ByteArray("abcdefg"))); +			stream1 = boost::shared_ptr<ByteArrayReadBytestream>(new ByteArrayReadBytestream(createByteArray("abcdefg")));  		}  		void tearDown() { @@ -44,48 +45,48 @@ class SOCKS5BytestreamServerSessionTest : public CppUnit::TestFixture {  		}  		void testAuthenticate() { -			std::auto_ptr<SOCKS5BytestreamServerSession> testling(createSession()); +			boost::shared_ptr<SOCKS5BytestreamServerSession> testling(createSession());  			StartStopper<SOCKS5BytestreamServerSession> stopper(testling.get()); -			receive(ByteArray("\x05\x02\x01\x02")); +			receive(createSafeByteArray("\x05\x02\x01\x02")); -			CPPUNIT_ASSERT_EQUAL(ByteArray("\x05\x00", 2), receivedData); +			CPPUNIT_ASSERT(createByteArray("\x05\x00", 2) == receivedData);  		}  		void testAuthenticate_Chunked() { -			std::auto_ptr<SOCKS5BytestreamServerSession> testling(createSession()); +			boost::shared_ptr<SOCKS5BytestreamServerSession> testling(createSession());  			StartStopper<SOCKS5BytestreamServerSession> stopper(testling.get()); -			receive(ByteArray("\x05\x02\x01")); +			receive(createSafeByteArray("\x05\x02\x01")); -			CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(receivedData.getSize())); -			receive(ByteArray("\x01")); -			CPPUNIT_ASSERT_EQUAL(ByteArray("\x05\x00", 2), receivedData); +			CPPUNIT_ASSERT_EQUAL(0, static_cast<int>(receivedData.size())); +			receive(createSafeByteArray("\x01")); +			CPPUNIT_ASSERT(createByteArray("\x05\x00", 2) == receivedData);  		}  		void testRequest() { -			std::auto_ptr<SOCKS5BytestreamServerSession> testling(createSession()); +			boost::shared_ptr<SOCKS5BytestreamServerSession> testling(createSession());  			StartStopper<SOCKS5BytestreamServerSession> stopper(testling.get());  			bytestreams.addBytestream("abcdef", stream1);  			authenticate(); -			ByteArray hostname("abcdef"); -			receive(ByteArray("\x05\x01\x00\x03", 4) + hostname.getSize() + hostname + ByteArray("\x00\x00", 2)); -			CPPUNIT_ASSERT_EQUAL(ByteArray("\x05\x00\x00\x03\x06\x61\x62\x63\x64\x65\x66\x00\x00", 13), ByteArray(receivedData.getData(), 13)); +			ByteArray hostname(createByteArray("abcdef")); +			receive(concat(createSafeByteArray("\x05\x01\x00\x03", 4), createSafeByteArray(hostname.size()), createSafeByteArray(hostname), createSafeByteArray("\x00\x00", 2))); +			CPPUNIT_ASSERT(createByteArray("\x05\x00\x00\x03\x06\x61\x62\x63\x64\x65\x66\x00\x00", 13) == createByteArray(&receivedData[0], 13));  		}  		void testRequest_UnknownBytestream() { -			std::auto_ptr<SOCKS5BytestreamServerSession> testling(createSession()); +			boost::shared_ptr<SOCKS5BytestreamServerSession> testling(createSession());  			StartStopper<SOCKS5BytestreamServerSession> stopper(testling.get());  			authenticate(); -			ByteArray hostname("abcdef"); -			receive(ByteArray("\x05\x01\x00\x03", 4) + hostname.getSize() + hostname + ByteArray("\x00\x00", 2)); -			CPPUNIT_ASSERT_EQUAL(ByteArray("\x05\x04\x00\x03\x06\x61\x62\x63\x64\x65\x66\x00\x00", 13), receivedData); +			ByteArray hostname(createByteArray("abcdef")); +			receive(concat(createSafeByteArray("\x05\x01\x00\x03", 4), createSafeByteArray(hostname.size()), createSafeByteArray(hostname), createSafeByteArray("\x00\x00", 2))); +			CPPUNIT_ASSERT(createByteArray("\x05\x04\x00\x03\x06\x61\x62\x63\x64\x65\x66\x00\x00", 13) == receivedData);  		}  		void testReceiveData() { -			std::auto_ptr<SOCKS5BytestreamServerSession> testling(createSession()); +			boost::shared_ptr<SOCKS5BytestreamServerSession> testling(createSession());  			StartStopper<SOCKS5BytestreamServerSession> stopper(testling.get());  			bytestreams.addBytestream("abcdef", stream1);  			authenticate(); @@ -93,12 +94,12 @@ class SOCKS5BytestreamServerSessionTest : public CppUnit::TestFixture {  			eventLoop->processEvents();  			skipHeader("abcdef"); -			CPPUNIT_ASSERT_EQUAL(ByteArray("abcdefg"), receivedData); +			CPPUNIT_ASSERT(createByteArray("abcdefg") == receivedData);  			CPPUNIT_ASSERT_EQUAL(2, receivedDataChunks);  		}  		void testReceiveData_Chunked() { -			std::auto_ptr<SOCKS5BytestreamServerSession> testling(createSession()); +			boost::shared_ptr<SOCKS5BytestreamServerSession> testling(createSession());  			testling->setChunkSize(3);  			StartStopper<SOCKS5BytestreamServerSession> stopper(testling.get());  			bytestreams.addBytestream("abcdef", stream1); @@ -107,34 +108,34 @@ class SOCKS5BytestreamServerSessionTest : public CppUnit::TestFixture {  			eventLoop->processEvents();  			skipHeader("abcdef"); -			CPPUNIT_ASSERT_EQUAL(ByteArray("abcdefg"), receivedData); +			CPPUNIT_ASSERT(createByteArray("abcdefg") == receivedData);  			CPPUNIT_ASSERT_EQUAL(4, receivedDataChunks);  		}  	private: -		void receive(const ByteArray& data) { +		void receive(const SafeByteArray& data) {  			connection->receive(data);  			eventLoop->processEvents();  		}  		void authenticate() { -			receive(ByteArray("\x05\x02\x01\x02")); +			receive(createSafeByteArray("\x05\x02\x01\x02"));  			receivedData.clear();  			receivedDataChunks = 0;  		}  		void request(const std::string& hostname) { -			receive(ByteArray("\x05\x01\x00\x03", 4) + hostname.size() + hostname + ByteArray("\x00\x00", 2)); +			receive(concat(createSafeByteArray("\x05\x01\x00\x03", 4), createSafeByteArray(hostname.size()), createSafeByteArray(hostname), createSafeByteArray("\x00\x00", 2)));  		}  		void skipHeader(const std::string& hostname) {  			int headerSize = 7 + hostname.size(); -			receivedData = ByteArray(receivedData.getData() + headerSize, receivedData.getSize() - headerSize); +			receivedData = createByteArray(&receivedData[headerSize], receivedData.size() - headerSize);  		} -		void handleDataWritten(const ByteArray& data) { -			receivedData += data; +		void handleDataWritten(const SafeByteArray& data) { +			receivedData.insert(receivedData.end(), data.begin(), data.end());  			receivedDataChunks++;  		} @@ -148,7 +149,7 @@ class SOCKS5BytestreamServerSessionTest : public CppUnit::TestFixture {  		DummyEventLoop* eventLoop;  		SOCKS5BytestreamRegistry bytestreams;  		boost::shared_ptr<DummyConnection> connection; -		ByteArray receivedData; +		std::vector<unsigned char> receivedData;  		int receivedDataChunks;  		boost::shared_ptr<ByteArrayReadBytestream> stream1;  };  | 
 Swift