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, QHttp::Error ) ),
26 SLOT( requestFinished( int, QHttp::Error ) )
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 qRegisterMetaType<QHttp::Error>("QHttp::Error");
46 QSignalSpy rf( iComm, SIGNAL(requestFinished( int, QHttp::Error )) );
47 QCOMPARE( rf.isValid(), true );
49 iRequestId = iComm->request( "", QString("").toAscii() );
50 for(int i=0; iRequestId != 0 && i < 5000/250; i++ )
53 //verify requestStarted
54 QCOMPARE( rs.count(), 1 );
55 QList<QVariant> args = rs.takeFirst();
56 QCOMPARE( args.at(0).type(), QVariant::Int );
58 //verify requestFinished
59 QCOMPARE( rf.count(), 1 );
60 args = rf.takeFirst();
61 QCOMPARE( args.at(0).type(), QVariant::Int );
62 QCOMPARE( args.at(1).typeName(), "QHttp::Error" );
65 QCOMPARE( rp.count(), 1 );
66 args = rp.takeFirst();
67 QCOMPARE( args.at(0).type(), QVariant::Int );
68 QCOMPARE( args.at(1).type(), QVariant::Int );
69 QCOMPARE( args.at(2).type(), QVariant::Int );
72 void TestCommunication::testRequestAndResponse()
74 const QString command = "text/xml; charset=utf-8; action=\"http://schemas.microsoft.com/exchange/services/2006/messages/GetUserAvailability\"";
75 QFile file("input.xml");
76 if(!file.open(QIODevice::ReadOnly))
78 QFAIL( "Error opening input.xml" );
80 QByteArray content = file.readAll();
82 iRequestId = iComm->request( command, content );
83 int id_fail = iComm->request( "", QString("").toAscii() );
84 QVERIFY( iRequestId != 0 );
85 QCOMPARE( id_fail, 0 );
86 for(int i=0; iRequestId != 0 && i < 5000/250; i++ )
88 const QByteArray& response = iComm->response( 0 );
89 QVERIFY( response.contains("GetUserAvailabilityResponse") );
90 iRequestId = iComm->request( "", QString("").toAscii() );
91 QVERIFY( iRequestId != 0 );
92 QVERIFY( response.isEmpty() );
95 void TestCommunication::requestFinished( int aRequestId, QHttp::Error /*aError*/ )
97 QCOMPARE( aRequestId, iRequestId );