summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/installer/clientserver/tst_clientserver.cpp79
1 files changed, 69 insertions, 10 deletions
diff --git a/tests/auto/installer/clientserver/tst_clientserver.cpp b/tests/auto/installer/clientserver/tst_clientserver.cpp
index 7b1764285..1c135c0b5 100644
--- a/tests/auto/installer/clientserver/tst_clientserver.cpp
+++ b/tests/auto/installer/clientserver/tst_clientserver.cpp
@@ -53,32 +53,87 @@ class tst_ClientServer : public QObject
Q_OBJECT
private slots:
- void testServerConnection()
+ void initTestCase()
+ {
+ RemoteClient::instance().setActive(true);
+ }
+
+ void testServerConnectDebug()
{
RemoteServer server;
- server.init(39999, QHostAddress::LocalHost, Protocol::Mode::Debug);
+ server.init(Protocol::DefaultPort, QString(Protocol::DefaultAuthorizationKey),
+ Protocol::Mode::Debug);
server.start();
QTcpSocket socket;
- socket.connectToHost(QHostAddress::LocalHost, 39999);
+ socket.connectToHost(QHostAddress(QLatin1String(Protocol::DefaultHostAddress)),
+ Protocol::DefaultPort);
QVERIFY2(socket.waitForConnected(), "Could not connect to server.");
+ QCOMPARE(socket.state() == QAbstractSocket::ConnectedState, true);
+
+ QDataStream stream;
+ stream.setDevice(&socket);
+ stream << QString::fromLatin1(Protocol::Authorize) << QString(Protocol::DefaultAuthorizationKey);
+
+ socket.waitForBytesWritten(-1);
+ if (!socket.bytesAvailable())
+ socket.waitForReadyRead(-1);
+
+ quint32 size; stream >> size;
+ bool authorized;
+ stream >> authorized;
+ QCOMPARE(authorized, true);
+
+ socket.flush();
+ stream << QString::fromLatin1(Protocol::Authorize) << QString("SomeKey");
+ socket.waitForBytesWritten(-1);
+ if (!socket.bytesAvailable())
+ socket.waitForReadyRead(-1);
+
+ stream >> size;
+ stream >> authorized;
+ QCOMPARE(authorized, false);
}
- void testClientConnection()
+ void testServerConnectRelease()
{
RemoteServer server;
- server.init(39999, QHostAddress::LocalHost, Protocol::Mode::Debug);
+ quint16 port = (30000 + qrand() % 100);
+ server.init(port, QString("SomeKey"), Protocol::Mode::Production);
server.start();
QTcpSocket socket;
- RemoteClient::instance().init(39999, QHostAddress::LocalHost, Protocol::Mode::Debug);
- QVERIFY2(RemoteClient::instance().connect(&socket), "Could not connect to server.");
+ socket.connectToHost(QHostAddress(QLatin1String(Protocol::DefaultHostAddress)), port);
+ QVERIFY2(socket.waitForConnected(), "Could not connect to server.");
+ QCOMPARE(socket.state() == QAbstractSocket::ConnectedState, true);
+
+ QDataStream stream;
+ stream.setDevice(&socket);
+ stream << QString::fromLatin1(Protocol::Authorize) << QString("SomeKey");
+
+ socket.waitForBytesWritten(-1);
+ if (!socket.bytesAvailable())
+ socket.waitForReadyRead(-1);
+
+ quint32 size; stream >> size;
+ bool authorized;
+ stream >> authorized;
+ QCOMPARE(authorized, true);
+
+ socket.flush();
+ stream << QString::fromLatin1(Protocol::Authorize) << QString(Protocol::DefaultAuthorizationKey);
+ socket.waitForBytesWritten(-1);
+ if (!socket.bytesAvailable())
+ socket.waitForReadyRead(-1);
+
+ stream >> size;
+ stream >> authorized;
+ QCOMPARE(authorized, false);
}
void testQSettingsWrapper()
{
RemoteServer server;
- server.init(39999, QHostAddress::LocalHost, Protocol::Mode::Debug);
server.start();
QSettingsWrapper wrapper("digia", "clientserver");
@@ -194,7 +249,6 @@ private slots:
void testQProcessWrapper()
{
RemoteServer server;
- server.init(39999, QHostAddress::LocalHost, Protocol::Mode::Debug);
server.start();
{
@@ -291,7 +345,6 @@ private slots:
void testRemoteFileEngine()
{
RemoteServer server;
- server.init(39999, QHostAddress::LocalHost, Protocol::Mode::Debug);
server.start();
QString filename;
@@ -319,6 +372,12 @@ private slots:
file.write(QProcess::systemEnvironment().join(QLatin1String("\n")).toLocal8Bit());
QCOMPARE(file.atEnd(), true);
}
+
+ void cleanupTestCase()
+ {
+ RemoteClient::instance().setActive(false);
+ RemoteClient::instance().shutdown();
+ }
};
QTEST_MAIN(tst_ClientServer)