From a3220e460bdcb9bc878bfe37721a7798ac8c2d64 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Mon, 5 Nov 2012 11:04:21 +0100 Subject: qmlscene can start with either an Item or Window as the qml root MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before, it assumed that the root is an Item and needs to have a Window created. But it's useful for an application to have a Window as the root, and it was already possible by writing a different C++ main function (see qtdeclarative/examples/window/window/window.cpp). It doesn't take much to give qmlscene this flexibility too. Change-Id: Ie808e78a42074e13aa9d3c87723ec9ac8fdbaf4a Reviewed-by: Samuel Rødal --- .../debugger/qqmlinspector/tst_qqmlinspector.cpp | 38 +++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp') diff --git a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp index f1a6c23a3f..5848b42028 100644 --- a/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp +++ b/tests/auto/qml/debugger/qqmlinspector/tst_qqmlinspector.cpp @@ -67,6 +67,8 @@ public: { } +private: + void startQmlsceneProcess(const char *qmlFile); private: QQmlDebugProcess *m_process; @@ -80,9 +82,10 @@ private slots: void connect(); void showAppOnTop(); void reloadQml(); + void reloadQmlWindow(); }; -void tst_QQmlInspector::init() +void tst_QQmlInspector::startQmlsceneProcess(const char *qmlFile) { const QString argument = "-qmljsdebugger=port:" STR_PORT ",block"; @@ -97,6 +100,10 @@ void tst_QQmlInspector::init() m_connection->connectToHost(QLatin1String("127.0.0.1"), PORT); } +void tst_QQmlInspector::init() +{ +} + void tst_QQmlInspector::cleanup() { if (QTest::currentTestFailed()) { @@ -110,11 +117,13 @@ void tst_QQmlInspector::cleanup() void tst_QQmlInspector::connect() { + startQmlsceneProcess("qtquick2.qml"); QTRY_COMPARE(m_client->state(), QQmlDebugClient::Enabled); } void tst_QQmlInspector::showAppOnTop() { + startQmlsceneProcess("qtquick2.qml"); QTRY_COMPARE(m_client->state(), QQmlDebugClient::Enabled); m_client->setShowAppOnTop(true); @@ -128,6 +137,7 @@ void tst_QQmlInspector::showAppOnTop() void tst_QQmlInspector::reloadQml() { + startQmlsceneProcess("qtquick2.qml"); QTRY_COMPARE(m_client->state(), QQmlDebugClient::Enabled); QByteArray fileContents; @@ -150,6 +160,32 @@ void tst_QQmlInspector::reloadQml() QCOMPARE(m_client->m_reloadRequestId, m_client->m_responseId); } +void tst_QQmlInspector::reloadQmlWindow() +{ + startQmlsceneProcess("window.qml"); + 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 changesHash; + changesHash.insert("window.qml", fileContents); + + m_client->reloadQml(changesHash); + QVERIFY(QQmlDebugTest::waitForSignal(m_client, SIGNAL(responseReceived()))); + + QEXPECT_FAIL("", "cannot debug with a QML file containing a top-level Window", Abort); + 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" -- cgit v1.2.3