diff options
-rw-r--r-- | Swiften/StreamStack/UnitTest/XMPPLayerTest.cpp | 49 |
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_; }; |