summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp49
1 files changed, 26 insertions, 23 deletions
diff --git a/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp b/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp
index 21683e8..77e6f7e 100644
--- a/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp
+++ b/Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp
@@ -13,35 +13,34 @@
#include "Swiften/Elements/Presence.h"
#include "Swiften/Base/ByteArray.h"
#include "Swiften/StreamStack/XMPPLayer.h"
+#include "Swiften/StreamStack/LowLayer.h"
#include "Swiften/Parser/PayloadParsers/FullPayloadParserFactoryCollection.h"
#include "Swiften/Serializer/PayloadSerializers/FullPayloadSerializerCollection.h"
using namespace Swift;
-class XMPPLayerTest : public CppUnit::TestFixture
-{
+class XMPPLayerTest : public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE(XMPPLayerTest);
- //FIXME: re-enable tests!
- //CPPUNIT_TEST(testParseData_Error);
- //CPPUNIT_TEST(testResetParser);
- //CPPUNIT_TEST(testResetParser_FromSlot);
- //CPPUNIT_TEST(testWriteHeader);
- //CPPUNIT_TEST(testWriteElement);
- //CPPUNIT_TEST(testWriteFooter);
+ 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:
- XMPPLayerTest() {}
-
void setUp() {
+ lowLayer_ = new DummyLowLayer();
testling_ = new XMPPLayerExposed(&parserFactories_, &serializers_, ClientStreamType);
+ testling_->setChildLayer(lowLayer_);
elementsReceived_ = 0;
- dataReceived_ = "";
errorReceived_ = 0;
}
void tearDown() {
delete testling_;
+ delete lowLayer_;
}
void testParseData_Error() {
@@ -75,26 +74,23 @@ class XMPPLayerTest : public CppUnit::TestFixture
}
void testWriteHeader() {
- testling_->onWriteData.connect(boost::bind(&XMPPLayerTest::handleWriteData, this, _1));
ProtocolHeader header;
header.setTo("example.com");
testling_->writeHeader(header);
- CPPUNIT_ASSERT_EQUAL(String("<?xml version=\"1.0\"?><stream:stream xmlns=\"jabber:client\" xmlns:stream=\"http://etherx.jabber.org/streams\" to=\"example.com\" version=\"1.0\">"), dataReceived_);
+ CPPUNIT_ASSERT_EQUAL(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_->onWriteData.connect(boost::bind(&XMPPLayerTest::handleWriteData, this, _1));
testling_->writeElement(boost::shared_ptr<Presence>(new Presence()));
- CPPUNIT_ASSERT_EQUAL(String("<presence/>"), dataReceived_);
+ CPPUNIT_ASSERT_EQUAL(String("<presence/>"), lowLayer_->writtenData);
}
void testWriteFooter() {
- testling_->onWriteData.connect(boost::bind(&XMPPLayerTest::handleWriteData, this, _1));
testling_->writeFooter();
- CPPUNIT_ASSERT_EQUAL(String("</stream:stream>"), dataReceived_);
+ CPPUNIT_ASSERT_EQUAL(String("</stream:stream>"), lowLayer_->writtenData);
}
void handleElement(boost::shared_ptr<Element>) {
@@ -106,10 +102,6 @@ class XMPPLayerTest : public CppUnit::TestFixture
testling_->resetParser();
}
- void handleWriteData(ByteArray ba) {
- dataReceived_ += std::string(ba.getData(), ba.getSize());
- }
-
void handleError() {
++errorReceived_;
}
@@ -121,14 +113,25 @@ class XMPPLayerTest : public CppUnit::TestFixture
PayloadParserFactoryCollection* payloadParserFactories,
PayloadSerializerCollection* payloadSerializers,
StreamType streamType) : XMPPLayer(payloadParserFactories, payloadSerializers, streamType) {}
+
using XMPPLayer::handleDataRead;
+ using HighLayer::setChildLayer;
+ };
+
+ class DummyLowLayer : public LowLayer {
+ public:
+ virtual void writeData(const ByteArray& data) {
+ writtenData += std::string(data.getData(), data.getSize());
+ }
+
+ String writtenData;
};
FullPayloadParserFactoryCollection parserFactories_;
FullPayloadSerializerCollection serializers_;
+ DummyLowLayer* lowLayer_;
XMPPLayerExposed* testling_;
int elementsReceived_;
- String dataReceived_;
int errorReceived_;
};