summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-03-30 01:21:48 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-03-30 01:21:48 (GMT)
commitc4f59859a589b76419e9133110eda850223f03dd (patch)
tree051b589cc93c609f0668a5c748efec854723b487 /tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
parent4fb6cae4dd0c6a90008780df606abb8a9e73cb2c (diff)
parent1494bc444f43e98250f9d29c50a128e5cf4ca328 (diff)
downloadQt-c4f59859a589b76419e9133110eda850223f03dd.zip
Qt-c4f59859a589b76419e9133110eda850223f03dd.tar.gz
Qt-c4f59859a589b76419e9133110eda850223f03dd.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: (136 commits) Make QDeclarativeListProperty a class Fix qdeclarativedom::loadDynamicProperty test Correctly parent repeater items. Make sure cursor delegate is parented. Allow just one dimension to be set, the other scaled accordingly Simplify import path. Removed unneeded code. Update autotest a little Improve QML compiler statistics Use error enum not numbers Pass test. doc test error code too QDeclarativeItem::setParentItem should not modify the QObject parent Doc Ensure currentIndex is updated when PathView items are removed/moved Visual test fixes. Doc Relayout items when Flow size changes. Make sure the image reader thread is shutdown properly ...
Diffstat (limited to 'tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp')
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
index c5bdfc8..fe5f5a2 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
@@ -43,6 +43,7 @@
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativeimageprovider.h>
#include <private/qdeclarativeimage_p.h>
+#include <QImageReader>
// QDeclarativeImageProvider::request() is run in an idle thread where possible
// Be generous in our timeout.
@@ -76,28 +77,35 @@ private:
class TestProvider : public QDeclarativeImageProvider
{
public:
- QImage request(const QString &id) {
- QImage image;
- image.load(SRCDIR "/data/" + id);
- return image;
+ QImage request(const QString &id, QSize *size, const QSize& requested_size) {
+ QImageReader io(SRCDIR "/data/" + id);
+ if (size) *size = io.size();
+ if (requested_size.isValid())
+ io.setScaledSize(requested_size);
+ return io.read();
}
};
void tst_qdeclarativeimageprovider::imageSource_data()
{
QTest::addColumn<QString>("source");
+ QTest::addColumn<QString>("properties");
+ QTest::addColumn<QSize>("size");
QTest::addColumn<QString>("error");
- QTest::newRow("exists") << "image://test/exists.png" << "";
- QTest::newRow("missing") << "image://test/no-such-file.png"
+ QTest::newRow("exists") << "image://test/exists.png" << "" << QSize(100,100) << "";
+ QTest::newRow("scaled") << "image://test/exists.png" << "sourceSize: \"80x30\"" << QSize(80,30) << "";
+ QTest::newRow("missing") << "image://test/no-such-file.png" << "" << QSize()
<< "\"Failed to get image from provider: image://test/no-such-file.png\" ";
- QTest::newRow("unknown provider") << "image://bogus/exists.png"
+ QTest::newRow("unknown provider") << "image://bogus/exists.png" << "" << QSize()
<< "\"Failed to get image from provider: image://bogus/exists.png\" ";
}
void tst_qdeclarativeimageprovider::imageSource()
{
QFETCH(QString, source);
+ QFETCH(QString, properties);
+ QFETCH(QSize, size);
QFETCH(QString, error);
if (!error.isEmpty())
@@ -106,7 +114,7 @@ void tst_qdeclarativeimageprovider::imageSource()
engine.addImageProvider("test", new TestProvider);
QVERIFY(engine.imageProvider("test") != 0);
- QString componentStr = "import Qt 4.6\nImage { source: \"" + source + "\" }";
+ QString componentStr = "import Qt 4.6\nImage { source: \"" + source + "\"; " + properties + " }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
@@ -118,8 +126,10 @@ void tst_qdeclarativeimageprovider::imageSource()
if (error.isEmpty()) {
TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
- QCOMPARE(obj->width(), 100.);
- QCOMPARE(obj->height(), 100.);
+ QCOMPARE(obj->width(), 100.0);
+ QCOMPARE(obj->height(), 100.0);
+ QCOMPARE(obj->pixmap().width(), size.width());
+ QCOMPARE(obj->pixmap().height(), size.height());
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
QCOMPARE(obj->progress(), 1.0);
} else {