diff options
author | Damian Jansen <damian.jansen@nokia.com> | 2012-06-14 16:19:02 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-25 08:59:12 +0200 |
commit | a034dc196ebaf82731a8bbe2bf602c5c527c9f76 (patch) | |
tree | 63d8c7f66683ffa394cbb57a818c64f8dc8341f7 /tests/auto/quick/qquickborderimage | |
parent | d8dcb8ea98f117bb07e866a3ce7fd3c30243e346 (diff) |
Remove superfluous statusChanged signal
If the file name is empty, or is a local file, statusChanged would be
emitted twice.
Task-number: QTBUG-26155
Change-Id: Id341d1c76d45e3fca19260293f632b0b51a34e90
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickborderimage')
-rw-r--r-- | tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp b/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp index c6c3f6cbd6..9bffdbc0f3 100644 --- a/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp +++ b/tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp @@ -44,6 +44,7 @@ #include <QTcpSocket> #include <QDir> #include <QPainter> +#include <QSignalSpy> #include <QtQml/qqmlengine.h> #include <QtQml/qqmlcomponent.h> @@ -60,6 +61,8 @@ #define SERVER_PORT 14446 #define SERVER_ADDR "http://127.0.0.1:14446" +Q_DECLARE_METATYPE(QQuickImageBase::Status) + class tst_qquickborderimage : public QQmlDataTest { @@ -84,6 +87,9 @@ private slots: void pendingRemoteRequest(); void pendingRemoteRequest_data(); + void statusChanges(); + void statusChanges_data(); + private: QQmlEngine engine; }; @@ -396,6 +402,51 @@ void tst_qquickborderimage::pendingRemoteRequest_data() QTest::newRow("sci file") << "http://localhost/none.sci"; } +//QTBUG-26155 +void tst_qquickborderimage::statusChanges_data() +{ + QTest::addColumn<QString>("source"); + QTest::addColumn<int>("emissions"); + QTest::addColumn<bool>("remote"); + QTest::addColumn<QQuickImageBase::Status>("finalStatus"); + + QTest::newRow("localfile") << testFileUrl("colors.png").toString() << 1 << false << QQuickImageBase::Ready; + QTest::newRow("nofile") << "" << 0 << false << QQuickImageBase::Null; + QTest::newRow("nonexistent") << testFileUrl("thisfiledoesnotexist.png").toString() << 1 << false << QQuickImageBase::Error; + QTest::newRow("noprotocol") << QString("thisfiledoesnotexisteither.png") << 2 << false << QQuickImageBase::Error; + QTest::newRow("remote") << "http://localhost:14446/colors.png" << 2 << true << QQuickImageBase::Ready; +} + +void tst_qquickborderimage::statusChanges() +{ + QFETCH(QString, source); + QFETCH(int, emissions); + QFETCH(bool, remote); + QFETCH(QQuickImageBase::Status, finalStatus); + + TestHTTPServer *server = 0; + if (remote) { + server = new TestHTTPServer(SERVER_PORT); + QVERIFY(server->isValid()); + server->serveDirectory(dataDirectory(), TestHTTPServer::Delay); + } + + QString componentStr = "import QtQuick 2.0\nBorderImage { width: 300; height: 300 }"; + QQmlComponent component(&engine); + component.setData(componentStr.toLatin1(), QUrl("")); + + QQuickBorderImage *obj = qobject_cast<QQuickBorderImage*>(component.create()); + qRegisterMetaType<QQuickImageBase::Status>(); + QSignalSpy spy(obj, SIGNAL(statusChanged(QQuickImageBase::Status))); + QVERIFY(obj != 0); + obj->setSource(source); + QTRY_VERIFY(obj->status() == finalStatus); + QCOMPARE(spy.count(), emissions); + + delete obj; + delete server; +} + QTEST_MAIN(tst_qquickborderimage) #include "tst_qquickborderimage.moc" |