aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDamian Jansen <damian.jansen@nokia.com>2012-06-14 16:19:02 +1000
committerQt by Nokia <qt-info@nokia.com>2012-06-25 08:59:12 +0200
commita034dc196ebaf82731a8bbe2bf602c5c527c9f76 (patch)
tree63d8c7f66683ffa394cbb57a818c64f8dc8341f7 /tests
parentd8dcb8ea98f117bb07e866a3ce7fd3c30243e346 (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')
-rw-r--r--tests/auto/quick/qquickborderimage/tst_qquickborderimage.cpp51
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"