diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | bcb704366cb5e333a626c18c308c7e0448a8e69f (patch) | |
tree | f0d6ab7d78ecdd9207cf46536376b44b91a1ca71 /kopete/protocols/oscar/liboscar/tests/redirecttest.cpp | |
download | tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.tar.gz tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kopete/protocols/oscar/liboscar/tests/redirecttest.cpp')
-rw-r--r-- | kopete/protocols/oscar/liboscar/tests/redirecttest.cpp | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/kopete/protocols/oscar/liboscar/tests/redirecttest.cpp b/kopete/protocols/oscar/liboscar/tests/redirecttest.cpp new file mode 100644 index 00000000..a220e13e --- /dev/null +++ b/kopete/protocols/oscar/liboscar/tests/redirecttest.cpp @@ -0,0 +1,117 @@ +//Licensed under the GNU General Public License + +#include <iostream> +#include "redirecttest.h" +#include <qcstring.h> + +using namespace std; +RedirectTest::RedirectTest(int argc, char ** argv) +: QApplication( argc, argv ), + m_transfer(0), + m_task(0) +{ + m_root = new Task(0, true); +} + +RedirectTest::~RedirectTest() +{ + delete m_root; +} + +void RedirectTest::Setup() +{ + m_transfer = new SnacTransfer; + m_task = new ServerRedirectTask( m_root ); +} + +void RedirectTest::Teardown() +{ + delete m_task; + m_task = 0; + m_transfer = 0; +} + +bool RedirectTest::testHandleRedirect() +{ + Buffer* b = SetupBuffer(0x0010, "REDF$"); + m_transfer->setBuffer(b); + + m_task->setService(0x0010); + m_task->setTransfer(m_transfer); + return m_task->handleRedirect(); +} + +bool RedirectTest::testInvalidService() +{ + Buffer* b = SetupBuffer(0x4321, "REDF$"); + m_transfer->setBuffer(b); + + m_task->setService(0x0010); + m_task->setTransfer(m_transfer); + return !m_task->handleRedirect(); +} + +bool RedirectTest::testInvalidCookie() +{ + Buffer* b = SetupBuffer(0x0010, ""); + m_transfer->setBuffer(b); + + m_task->setService(0x0010); + m_task->setTransfer(m_transfer); + return !m_task->handleRedirect(); +} + +bool RedirectTest::testCookieIsSet() +{ + Buffer* b = SetupBuffer(0x0010, "grouch"); + m_transfer->setBuffer(b); + + m_task->setService(0x0010); + m_task->setTransfer(m_transfer); + m_task->handleRedirect(); + + return !m_task->cookie().isEmpty(); +} + +Buffer* RedirectTest::SetupBuffer(WORD Service, QString Cookie) +{ + Buffer* b = new Buffer; + b->addTLV16(0x000D, Service); + b->addWord(0x0005); + b->addWord(0x0010); + b->addString("65.86.43.45:5190", 16); + b->addWord(0x0006); + b->addWord(Cookie.length()); + b->addString(Cookie.latin1(), Cookie.length()); + return b; +} + +void RedirectTest::CheckTest(bool TestPassed) +{ + if ( TestPassed ) + cout << "passed" << endl; + else + cout << "failed" << endl; +} + +int main(int argc, char ** argv) +{ + RedirectTest a( argc, argv ); + + a.Setup(); + a.CheckTest(a.testHandleRedirect()); + a.Teardown(); + + a.Setup(); + a.CheckTest(a.testInvalidService()); + a.Teardown(); + + a.Setup(); + a.CheckTest(a.testInvalidCookie()); + a.Teardown(); + + a.Setup(); + a.CheckTest(a.testCookieIsSet()); + a.Teardown(); +} + |