summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/StreamStack/UnitTest')
-rw-r--r--Swiften/StreamStack/UnitTest/StreamStackTest.cpp302
-rw-r--r--Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp230
2 files changed, 266 insertions, 266 deletions
diff --git a/Swiften/StreamStack/UnitTest/StreamStackTest.cpp b/Swiften/StreamStack/UnitTest/StreamStackTest.cpp
index 84a78fa..7044ad9 100644
--- a/Swiften/StreamStack/UnitTest/StreamStackTest.cpp
+++ b/Swiften/StreamStack/UnitTest/StreamStackTest.cpp
@@ -27,157 +27,157 @@
using namespace Swift;
class StreamStackTest : public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(StreamStackTest);
- CPPUNIT_TEST(testWriteData_NoIntermediateStreamStack);
- CPPUNIT_TEST(testWriteData_OneIntermediateStream);
- CPPUNIT_TEST(testWriteData_TwoIntermediateStreamStack);
- CPPUNIT_TEST(testReadData_NoIntermediateStreamStack);
- CPPUNIT_TEST(testReadData_OneIntermediateStream);
- CPPUNIT_TEST(testReadData_TwoIntermediateStreamStack);
- CPPUNIT_TEST(testAddLayer_ExistingOnWriteDataSlot);
- CPPUNIT_TEST_SUITE_END();
-
- public:
- void setUp() {
- physicalStream_ = new TestLowLayer();
- xmppStream_ = new XMPPLayer(&parserFactories_, &serializers_, &xmlParserFactory_, ClientStreamType);
- elementsReceived_ = 0;
- dataWriteReceived_ = 0;
- }
-
- void tearDown() {
- delete physicalStream_;
- delete xmppStream_;
- }
-
- void testWriteData_NoIntermediateStreamStack() {
- StreamStack testling(xmppStream_, physicalStream_);
-
- xmppStream_->writeData("foo");
-
- CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), physicalStream_->data_.size());
- CPPUNIT_ASSERT_EQUAL(createSafeByteArray("foo"), physicalStream_->data_[0]);
- }
-
- void testWriteData_OneIntermediateStream() {
- StreamStack testling(xmppStream_, physicalStream_);
- boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
- testling.addLayer(xStream.get());
-
- xmppStream_->writeData("foo");
-
- CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), physicalStream_->data_.size());
- CPPUNIT_ASSERT_EQUAL(createSafeByteArray("Xfoo"), physicalStream_->data_[0]);
- }
-
- void testWriteData_TwoIntermediateStreamStack() {
- StreamStack testling(xmppStream_, physicalStream_);
- boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
- boost::shared_ptr<MyStreamLayer> yStream(new MyStreamLayer("Y"));
- testling.addLayer(xStream.get());
- testling.addLayer(yStream.get());
-
- xmppStream_->writeData("foo");
-
- CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), physicalStream_->data_.size());
- CPPUNIT_ASSERT_EQUAL(createSafeByteArray("XYfoo"), physicalStream_->data_[0]);
- }
-
- void testReadData_NoIntermediateStreamStack() {
- StreamStack testling(xmppStream_, physicalStream_);
- xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
-
- physicalStream_->onDataRead(createSafeByteArray("<stream:stream xmlns:stream='http://etherx.jabber.org/streams'><presence/>"));
-
- CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
- }
-
- void testReadData_OneIntermediateStream() {
- StreamStack testling(xmppStream_, physicalStream_);
- xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
- boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("<"));
- testling.addLayer(xStream.get());
-
- physicalStream_->onDataRead(createSafeByteArray("stream:stream xmlns:stream='http://etherx.jabber.org/streams'><presence/>"));
-
- CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
- }
-
- void testReadData_TwoIntermediateStreamStack() {
- StreamStack testling(xmppStream_, physicalStream_);
- xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
- boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("s"));
- boost::shared_ptr<MyStreamLayer> yStream(new MyStreamLayer("<"));
- testling.addLayer(xStream.get());
- testling.addLayer(yStream.get());
-
- physicalStream_->onDataRead(createSafeByteArray("tream:stream xmlns:stream='http://etherx.jabber.org/streams'><presence/>"));
-
- CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
- }
-
- void testAddLayer_ExistingOnWriteDataSlot() {
- StreamStack testling(xmppStream_, physicalStream_);
- xmppStream_->onWriteData.connect(boost::bind(&StreamStackTest::handleWriteData, this, _1));
- boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
- testling.addLayer(xStream.get());
-
- xmppStream_->writeData("foo");
-
- CPPUNIT_ASSERT_EQUAL(1, dataWriteReceived_);
- }
-
- void handleElement(boost::shared_ptr<ToplevelElement>) {
- ++elementsReceived_;
- }
-
- void handleWriteData(const SafeByteArray&) {
- ++dataWriteReceived_;
- }
-
- private:
- class MyStreamLayer : public StreamLayer {
- public:
- MyStreamLayer(const std::string& prepend) : prepend_(prepend) {
- }
-
- virtual void writeData(const SafeByteArray& data) {
- writeDataToChildLayer(concat(createSafeByteArray(prepend_), data));
- }
-
- virtual void handleDataRead(const SafeByteArray& data) {
- writeDataToParentLayer(concat(createSafeByteArray(prepend_), data));
- }
-
- private:
- std::string prepend_;
- };
-
- class TestLowLayer : public LowLayer {
- public:
- TestLowLayer() {
- }
-
- virtual void writeData(const SafeByteArray& data) {
- data_.push_back(data);
- }
-
- void onDataRead(const SafeByteArray& data) {
- writeDataToParentLayer(data);
- }
-
- std::vector<SafeByteArray> data_;
- };
-
-
- private:
- FullPayloadParserFactoryCollection parserFactories_;
- FullPayloadSerializerCollection serializers_;
- TestLowLayer* physicalStream_;
- PlatformXMLParserFactory xmlParserFactory_;
- XMPPLayer* xmppStream_;
- int elementsReceived_;
- int dataWriteReceived_;
+ CPPUNIT_TEST_SUITE(StreamStackTest);
+ CPPUNIT_TEST(testWriteData_NoIntermediateStreamStack);
+ CPPUNIT_TEST(testWriteData_OneIntermediateStream);
+ CPPUNIT_TEST(testWriteData_TwoIntermediateStreamStack);
+ CPPUNIT_TEST(testReadData_NoIntermediateStreamStack);
+ CPPUNIT_TEST(testReadData_OneIntermediateStream);
+ CPPUNIT_TEST(testReadData_TwoIntermediateStreamStack);
+ CPPUNIT_TEST(testAddLayer_ExistingOnWriteDataSlot);
+ CPPUNIT_TEST_SUITE_END();
+
+ public:
+ void setUp() {
+ physicalStream_ = new TestLowLayer();
+ xmppStream_ = new XMPPLayer(&parserFactories_, &serializers_, &xmlParserFactory_, ClientStreamType);
+ elementsReceived_ = 0;
+ dataWriteReceived_ = 0;
+ }
+
+ void tearDown() {
+ delete physicalStream_;
+ delete xmppStream_;
+ }
+
+ void testWriteData_NoIntermediateStreamStack() {
+ StreamStack testling(xmppStream_, physicalStream_);
+
+ xmppStream_->writeData("foo");
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), physicalStream_->data_.size());
+ CPPUNIT_ASSERT_EQUAL(createSafeByteArray("foo"), physicalStream_->data_[0]);
+ }
+
+ void testWriteData_OneIntermediateStream() {
+ StreamStack testling(xmppStream_, physicalStream_);
+ boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
+ testling.addLayer(xStream.get());
+
+ xmppStream_->writeData("foo");
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), physicalStream_->data_.size());
+ CPPUNIT_ASSERT_EQUAL(createSafeByteArray("Xfoo"), physicalStream_->data_[0]);
+ }
+
+ void testWriteData_TwoIntermediateStreamStack() {
+ StreamStack testling(xmppStream_, physicalStream_);
+ boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
+ boost::shared_ptr<MyStreamLayer> yStream(new MyStreamLayer("Y"));
+ testling.addLayer(xStream.get());
+ testling.addLayer(yStream.get());
+
+ xmppStream_->writeData("foo");
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), physicalStream_->data_.size());
+ CPPUNIT_ASSERT_EQUAL(createSafeByteArray("XYfoo"), physicalStream_->data_[0]);
+ }
+
+ void testReadData_NoIntermediateStreamStack() {
+ StreamStack testling(xmppStream_, physicalStream_);
+ xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
+
+ physicalStream_->onDataRead(createSafeByteArray("<stream:stream xmlns:stream='http://etherx.jabber.org/streams'><presence/>"));
+
+ CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
+ }
+
+ void testReadData_OneIntermediateStream() {
+ StreamStack testling(xmppStream_, physicalStream_);
+ xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
+ boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("<"));
+ testling.addLayer(xStream.get());
+
+ physicalStream_->onDataRead(createSafeByteArray("stream:stream xmlns:stream='http://etherx.jabber.org/streams'><presence/>"));
+
+ CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
+ }
+
+ void testReadData_TwoIntermediateStreamStack() {
+ StreamStack testling(xmppStream_, physicalStream_);
+ xmppStream_->onElement.connect(boost::bind(&StreamStackTest::handleElement, this, _1));
+ boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("s"));
+ boost::shared_ptr<MyStreamLayer> yStream(new MyStreamLayer("<"));
+ testling.addLayer(xStream.get());
+ testling.addLayer(yStream.get());
+
+ physicalStream_->onDataRead(createSafeByteArray("tream:stream xmlns:stream='http://etherx.jabber.org/streams'><presence/>"));
+
+ CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
+ }
+
+ void testAddLayer_ExistingOnWriteDataSlot() {
+ StreamStack testling(xmppStream_, physicalStream_);
+ xmppStream_->onWriteData.connect(boost::bind(&StreamStackTest::handleWriteData, this, _1));
+ boost::shared_ptr<MyStreamLayer> xStream(new MyStreamLayer("X"));
+ testling.addLayer(xStream.get());
+
+ xmppStream_->writeData("foo");
+
+ CPPUNIT_ASSERT_EQUAL(1, dataWriteReceived_);
+ }
+
+ void handleElement(boost::shared_ptr<ToplevelElement>) {
+ ++elementsReceived_;
+ }
+
+ void handleWriteData(const SafeByteArray&) {
+ ++dataWriteReceived_;
+ }
+
+ private:
+ class MyStreamLayer : public StreamLayer {
+ public:
+ MyStreamLayer(const std::string& prepend) : prepend_(prepend) {
+ }
+
+ virtual void writeData(const SafeByteArray& data) {
+ writeDataToChildLayer(concat(createSafeByteArray(prepend_), data));
+ }
+
+ virtual void handleDataRead(const SafeByteArray& data) {
+ writeDataToParentLayer(concat(createSafeByteArray(prepend_), data));
+ }
+
+ private:
+ std::string prepend_;
+ };
+
+ class TestLowLayer : public LowLayer {
+ public:
+ TestLowLayer() {
+ }
+
+ virtual void writeData(const SafeByteArray& data) {
+ data_.push_back(data);
+ }
+
+ void onDataRead(const SafeByteArray& data) {
+ writeDataToParentLayer(data);
+ }
+
+ std::vector<SafeByteArray> data_;
+ };
+
+
+ private:
+ FullPayloadParserFactoryCollection parserFactories_;
+ FullPayloadSerializerCollection serializers_;
+ TestLowLayer* physicalStream_;
+ PlatformXMLParserFactory xmlParserFactory_;
+ XMPPLayer* xmppStream_;
+ int elementsReceived_;
+ int dataWriteReceived_;
};
CPPUNIT_TEST_SUITE_REGISTRATION(StreamStackTest);
diff --git a/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp b/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp
index 0250666..86e02ba 100644
--- a/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp
+++ b/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp
@@ -23,121 +23,121 @@
using namespace Swift;
class XMPPLayerTest : public CppUnit::TestFixture {
- CPPUNIT_TEST_SUITE(XMPPLayerTest);
- CPPUNIT_TEST(testParseData_Error);
- CPPUNIT_TEST(testResetParser);
- CPPUNIT_TEST(testResetParser_FromSlot);
- CPPUNIT_TEST(testWriteHeader);
- CPPUNIT_TEST(testWriteElement);
- CPPUNIT_TEST(testWriteFooter);
- CPPUNIT_TEST_SUITE_END();
-
- public:
- void setUp() {
- lowLayer_ = new DummyLowLayer();
- testling_ = new XMPPLayerExposed(&parserFactories_, &serializers_, &xmlParserFactory_, ClientStreamType);
- testling_->setChildLayer(lowLayer_);
- elementsReceived_ = 0;
- errorReceived_ = 0;
- }
-
- void tearDown() {
- delete testling_;
- delete lowLayer_;
- }
-
- void testParseData_Error() {
- testling_->onError.connect(boost::bind(&XMPPLayerTest::handleError, this));
-
- testling_->handleDataRead(createSafeByteArray("<iq>"));
-
- CPPUNIT_ASSERT_EQUAL(1, errorReceived_);
- }
-
- void testResetParser() {
- testling_->onElement.connect(boost::bind(&XMPPLayerTest::handleElement, this, _1));
- testling_->onError.connect(boost::bind(&XMPPLayerTest::handleError, this));
-
- testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" >"));
- testling_->resetParser();
- testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" >"));
- testling_->handleDataRead(createSafeByteArray("<presence/>"));
-
- CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
- CPPUNIT_ASSERT_EQUAL(0, errorReceived_);
- }
-
- void testResetParser_FromSlot() {
- testling_->onElement.connect(boost::bind(&XMPPLayerTest::handleElementAndReset, this, _1));
- testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" ><presence/>"));
- testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" ><presence/>"));
-
- CPPUNIT_ASSERT_EQUAL(2, elementsReceived_);
- CPPUNIT_ASSERT_EQUAL(0, errorReceived_);
- }
-
- void testWriteHeader() {
- ProtocolHeader header;
- header.setTo("example.com");
- testling_->writeHeader(header);
-
- CPPUNIT_ASSERT_EQUAL(std::string("<?xml version=\"1.0\"?><stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" to=\"example.com\" version=\"1.0\">"), lowLayer_->writtenData);
- }
-
- void testWriteElement() {
- testling_->writeElement(boost::make_shared<Presence>());
-
- CPPUNIT_ASSERT_EQUAL(std::string("<presence/>"), lowLayer_->writtenData);
- }
-
- void testWriteFooter() {
- testling_->writeFooter();
-
- CPPUNIT_ASSERT_EQUAL(std::string("</stream:stream>"), lowLayer_->writtenData);
- }
-
- void handleElement(boost::shared_ptr<ToplevelElement>) {
- ++elementsReceived_;
- }
-
- void handleElementAndReset(boost::shared_ptr<ToplevelElement>) {
- ++elementsReceived_;
- testling_->resetParser();
- }
-
- void handleError() {
- ++errorReceived_;
- }
-
- private:
- class XMPPLayerExposed : public XMPPLayer {
- public:
- XMPPLayerExposed(
- PayloadParserFactoryCollection* payloadParserFactories,
- PayloadSerializerCollection* payloadSerializers,
- XMLParserFactory* xmlParserFactory,
- StreamType streamType) : XMPPLayer(payloadParserFactories, payloadSerializers, xmlParserFactory, streamType) {}
-
- using XMPPLayer::handleDataRead;
- using HighLayer::setChildLayer;
- };
-
- class DummyLowLayer : public LowLayer {
- public:
- virtual void writeData(const SafeByteArray& data) {
- writtenData += byteArrayToString(ByteArray(data.begin(), data.end()));
- }
-
- std::string writtenData;
- };
-
- FullPayloadParserFactoryCollection parserFactories_;
- FullPayloadSerializerCollection serializers_;
- DummyLowLayer* lowLayer_;
- XMPPLayerExposed* testling_;
- PlatformXMLParserFactory xmlParserFactory_;
- int elementsReceived_;
- int errorReceived_;
+ CPPUNIT_TEST_SUITE(XMPPLayerTest);
+ CPPUNIT_TEST(testParseData_Error);
+ CPPUNIT_TEST(testResetParser);
+ CPPUNIT_TEST(testResetParser_FromSlot);
+ CPPUNIT_TEST(testWriteHeader);
+ CPPUNIT_TEST(testWriteElement);
+ CPPUNIT_TEST(testWriteFooter);
+ CPPUNIT_TEST_SUITE_END();
+
+ public:
+ void setUp() {
+ lowLayer_ = new DummyLowLayer();
+ testling_ = new XMPPLayerExposed(&parserFactories_, &serializers_, &xmlParserFactory_, ClientStreamType);
+ testling_->setChildLayer(lowLayer_);
+ elementsReceived_ = 0;
+ errorReceived_ = 0;
+ }
+
+ void tearDown() {
+ delete testling_;
+ delete lowLayer_;
+ }
+
+ void testParseData_Error() {
+ testling_->onError.connect(boost::bind(&XMPPLayerTest::handleError, this));
+
+ testling_->handleDataRead(createSafeByteArray("<iq>"));
+
+ CPPUNIT_ASSERT_EQUAL(1, errorReceived_);
+ }
+
+ void testResetParser() {
+ testling_->onElement.connect(boost::bind(&XMPPLayerTest::handleElement, this, _1));
+ testling_->onError.connect(boost::bind(&XMPPLayerTest::handleError, this));
+
+ testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" >"));
+ testling_->resetParser();
+ testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" >"));
+ testling_->handleDataRead(createSafeByteArray("<presence/>"));
+
+ CPPUNIT_ASSERT_EQUAL(1, elementsReceived_);
+ CPPUNIT_ASSERT_EQUAL(0, errorReceived_);
+ }
+
+ void testResetParser_FromSlot() {
+ testling_->onElement.connect(boost::bind(&XMPPLayerTest::handleElementAndReset, this, _1));
+ testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" ><presence/>"));
+ testling_->handleDataRead(createSafeByteArray("<stream:stream to=\"example.com\" xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" ><presence/>"));
+
+ CPPUNIT_ASSERT_EQUAL(2, elementsReceived_);
+ CPPUNIT_ASSERT_EQUAL(0, errorReceived_);
+ }
+
+ void testWriteHeader() {
+ ProtocolHeader header;
+ header.setTo("example.com");
+ testling_->writeHeader(header);
+
+ CPPUNIT_ASSERT_EQUAL(std::string("<?xml version=\"1.0\"?><stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" to=\"example.com\" version=\"1.0\">"), lowLayer_->writtenData);
+ }
+
+ void testWriteElement() {
+ testling_->writeElement(boost::make_shared<Presence>());
+
+ CPPUNIT_ASSERT_EQUAL(std::string("<presence/>"), lowLayer_->writtenData);
+ }
+
+ void testWriteFooter() {
+ testling_->writeFooter();
+
+ CPPUNIT_ASSERT_EQUAL(std::string("</stream:stream>"), lowLayer_->writtenData);
+ }
+
+ void handleElement(boost::shared_ptr<ToplevelElement>) {
+ ++elementsReceived_;
+ }
+
+ void handleElementAndReset(boost::shared_ptr<ToplevelElement>) {
+ ++elementsReceived_;
+ testling_->resetParser();
+ }
+
+ void handleError() {
+ ++errorReceived_;
+ }
+
+ private:
+ class XMPPLayerExposed : public XMPPLayer {
+ public:
+ XMPPLayerExposed(
+ PayloadParserFactoryCollection* payloadParserFactories,
+ PayloadSerializerCollection* payloadSerializers,
+ XMLParserFactory* xmlParserFactory,
+ StreamType streamType) : XMPPLayer(payloadParserFactories, payloadSerializers, xmlParserFactory, streamType) {}
+
+ using XMPPLayer::handleDataRead;
+ using HighLayer::setChildLayer;
+ };
+
+ class DummyLowLayer : public LowLayer {
+ public:
+ virtual void writeData(const SafeByteArray& data) {
+ writtenData += byteArrayToString(ByteArray(data.begin(), data.end()));
+ }
+
+ std::string writtenData;
+ };
+
+ FullPayloadParserFactoryCollection parserFactories_;
+ FullPayloadSerializerCollection serializers_;
+ DummyLowLayer* lowLayer_;
+ XMPPLayerExposed* testling_;
+ PlatformXMLParserFactory xmlParserFactory_;
+ int elementsReceived_;
+ int errorReceived_;
};
CPPUNIT_TEST_SUITE_REGISTRATION(XMPPLayerTest);