1 #include <QtTest/QtTest>
2 #include "Configuration.h"
3 #include "ConnectionSettings.h"
4 #include "TestCommunication.h"
5 #include "Communication.h"
6 #include "MessagingUtils.h"
10 static const QString server = "192.168.0.35";
11 static const QString user = "maemo";
12 static const QString pass = "P@ssw0rd";
13 static const unsigned int refresh = 1;
15 void TestCommunication::initTestCase()
17 ConnectionSettings *conn = new ConnectionSettings( server, user, pass, refresh );
19 iComm = new Communication( *conn );
20 QVERIFY( iComm != 0 );
24 SIGNAL( requestFinished( int, int ) ),
26 SLOT( requestFinished( int, int ) )
30 void TestCommunication::cleanupTestCase()
35 void TestCommunication::init() { }
37 void TestCommunication::cleanup() { }
39 void TestCommunication::testPublicSignals()
41 QSignalSpy rp( iComm, SIGNAL(readProgress( int, int, int )) );
42 QCOMPARE( rp.isValid(), true );
43 QSignalSpy rs( iComm, SIGNAL(requestStarted( int )) );
44 QCOMPARE( rs.isValid(), true );
45 QSignalSpy rf( iComm, SIGNAL(requestFinished( int, int )) );
46 QCOMPARE( rf.isValid(), true );
48 iRequestId = iComm->request( "", QString("").toAscii() );
49 for(int i=0; iRequestId != 0 && i < 5000/250; i++ )
52 //verify requestStarted
53 QCOMPARE( rs.count(), 1 );
54 QList<QVariant> args = rs.takeFirst();
55 QCOMPARE( args.at(0).type(), QVariant::Int );
57 //verify requestFinished
58 QCOMPARE( rf.count(), 1 );
59 args = rf.takeFirst();
60 QCOMPARE( args.at(0).type(), QVariant::Int );
61 QCOMPARE( args.at(1).type(), QVariant::Int );
64 QCOMPARE( rp.count(), 1 );
65 args = rp.takeFirst();
66 QCOMPARE( args.at(0).type(), QVariant::Int );
67 QCOMPARE( args.at(1).type(), QVariant::Int );
68 QCOMPARE( args.at(2).type(), QVariant::Int );
71 void TestCommunication::testRequestAndResponse()
73 const QString command = "text/xml; charset=utf-8; action=\"http://schemas.microsoft.com/exchange/services/2006/messages/GetUserAvailability\"";
74 QFile file("input.xml");
75 if(!file.open(QIODevice::ReadOnly))
77 QFAIL( "Error opening input.xml" );
79 QByteArray content = file.readAll();
82 int id_ok = iComm->request( command, content );
84 int id_fail = iComm->request( "", QString("").toAscii() );
85 QVERIFY( iRequestId != 0 );
86 QVERIFY( id_fail != 0 );
87 qDebug() << "id_ok:" << id_ok;
88 qDebug() << "id_fail: " << id_fail;
89 for(int i=0; iRequestId != 0 && i < 5000/250; i++ )
91 qDebug() << "iError:" << iError;
92 QVERIFY( iError == 0 );
93 QByteArray* response = iComm->response( id_ok );
94 QVERIFY( response != NULL );
95 QVERIFY( !response->isEmpty() );
96 if( response->contains("GetUserAvailabilityResponse") == FALSE )
100 QVERIFY( response->contains("GetUserAvailabilityResponse") );
102 response = iComm->response( 0 );
103 QVERIFY( response == NULL );
106 void TestCommunication::requestFinished( int aRequestId, int aError )
108 qDebug() << "TestCommunication::requestFinished:" << aRequestId << aError;
109 if( aRequestId == iRequestId )