summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorkh <karsten.heimrich@theqtcompany.com>2014-11-24 17:39:06 +0100
committerKarsten Heimrich <karsten.heimrich@theqtcompany.com>2014-11-26 14:49:23 +0100
commit64d49f097f25dd019345a7e913e1c4cf8188e168 (patch)
treeda6670298b59bd04db7d1f5dc62a9ceb79082b7b /tests
parentd18b9696e573aa7b3f38784f6c5764b9fe6fd81b (diff)
Implement a way to start the server in debug mode and API cleanup.
1; Passing debug as first argument to the starting server does not start the server side so the server keeps running in an endless loop. This makes it far easier to attach a debugger. 2; API cleanup and unify init function to take port, key, and mode. The address was never able to be changed anyway, so stop passing them around. Change-Id: I2a847f009ed1557a5e136e2b0006de5c62426da2 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
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)