diff options
Diffstat (limited to 'tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp')
-rw-r--r-- | tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp | 44 |
1 files changed, 42 insertions, 2 deletions
diff --git a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp index 611dc2b843..5326a053b0 100644 --- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp +++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp @@ -62,10 +62,12 @@ public: , m_showAppOnTop(false) , m_requestId(0) , m_requestResult(false) + , m_responseId(-1) { } void setShowAppOnTop(bool showOnTop); + void reloadQml(const QHash<QString, QByteArray> &changesHash); signals: void responseReceived(); @@ -79,6 +81,8 @@ private: public: bool m_requestResult; + int m_responseId; + int m_reloadRequestId; }; class tst_QQmlInspector : public QQmlDataTest @@ -105,6 +109,7 @@ private slots: void connect(); void showAppOnTop(); + void reloadQml(); }; @@ -118,6 +123,18 @@ void QQmlInspectorClient::setShowAppOnTop(bool showOnTop) sendMessage(message); } +void QQmlInspectorClient::reloadQml(const QHash<QString, QByteArray> &changesHash) +{ + QByteArray message; + QDataStream ds(&message, QIODevice::WriteOnly); + m_reloadRequestId = m_requestId; + + ds << QByteArray("request") << m_requestId++ + << QByteArray("reload") << changesHash; + + sendMessage(message); +} + void QQmlInspectorClient::messageReceived(const QByteArray &message) { QDataStream ds(message); @@ -130,8 +147,7 @@ void QQmlInspectorClient::messageReceived(const QByteArray &message) } m_requestResult = false; - int requestId; - ds >> requestId >> m_requestResult; + ds >> m_responseId >> m_requestResult; emit responseReceived(); } @@ -179,6 +195,30 @@ void tst_QQmlInspector::showAppOnTop() QCOMPARE(m_client->m_requestResult, true); } +void tst_QQmlInspector::reloadQml() +{ + QTRY_COMPARE(m_client->state(), QQmlDebugClient::Enabled); + + QByteArray fileContents; + + QFile file(testFile("changes.txt")); + if (file.open(QFile::ReadOnly)) + fileContents = file.readAll(); + file.close(); + + QHash<QString, QByteArray> changesHash; + changesHash.insert("qtquick2.qml", fileContents); + + m_client->reloadQml(changesHash); + QVERIFY(QQmlDebugTest::waitForSignal(m_client, SIGNAL(responseReceived()))); + + QTRY_COMPARE(m_process->output().contains( + QString("version 2.0")), true); + + QCOMPARE(m_client->m_requestResult, true); + QCOMPARE(m_client->m_reloadRequestId, m_client->m_responseId); +} + QTEST_MAIN(tst_QQmlInspector) #include "tst_qqmlinspector.moc" |