diff options
author | Michael Brasser <michael.brasser@nokia.com> | 2009-04-22 04:47:24 (GMT) |
---|---|---|
committer | Michael Brasser <michael.brasser@nokia.com> | 2009-04-22 04:47:24 (GMT) |
commit | 2366667fc97eb6a56203b2dd7dac776ff4164abd (patch) | |
tree | b2acb6cc6bfe475d7e619e4788973b61fff775e0 /tests/auto/declarative/repeater | |
parent | 2c762f3b8b284a7c6dc0c499b7052013bad5b707 (diff) | |
download | Qt-2366667fc97eb6a56203b2dd7dac776ff4164abd.zip Qt-2366667fc97eb6a56203b2dd7dac776ff4164abd.tar.gz Qt-2366667fc97eb6a56203b2dd7dac776ff4164abd.tar.bz2 |
Initial import of kinetic-dui branch from the old kinetic
Diffstat (limited to 'tests/auto/declarative/repeater')
-rw-r--r-- | tests/auto/declarative/repeater/data/repeater.xml | 7 | ||||
-rw-r--r-- | tests/auto/declarative/repeater/repeater.pro | 6 | ||||
-rw-r--r-- | tests/auto/declarative/repeater/tst_repeater.cpp | 91 |
3 files changed, 104 insertions, 0 deletions
diff --git a/tests/auto/declarative/repeater/data/repeater.xml b/tests/auto/declarative/repeater/data/repeater.xml new file mode 100644 index 0000000..f863716 --- /dev/null +++ b/tests/auto/declarative/repeater/data/repeater.xml @@ -0,0 +1,7 @@ +<Rect id="container" width="240" height="320" color="white"> + <Repeater id="repeater" width="240" height="320" dataSource="{testData}"> + <Component> + <Text y="{index*20}" text="{modelData}"/> + </Component> + </Repeater> +</Rect> diff --git a/tests/auto/declarative/repeater/repeater.pro b/tests/auto/declarative/repeater/repeater.pro new file mode 100644 index 0000000..0ecd7ee --- /dev/null +++ b/tests/auto/declarative/repeater/repeater.pro @@ -0,0 +1,6 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative +SOURCES += tst_repeater.cpp + +# Define SRCDIR equal to test's source directory +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp new file mode 100644 index 0000000..cdf1716 --- /dev/null +++ b/tests/auto/declarative/repeater/tst_repeater.cpp @@ -0,0 +1,91 @@ +#include <QtTest/QtTest> +#include <qlistmodelinterface.h> +#include <qfxview.h> +#include <qfxrepeater.h> +#include <qfxtext.h> +#include <qmlcontext.h> + +class tst_QFxRepeater : public QObject +{ + Q_OBJECT +public: + tst_QFxRepeater(); + +private slots: + void stringList(); + +private: + QFxView *createView(const QString &filename); + template<typename T> + T *findItem(QFxItem *parent, const QString &id); +}; + +tst_QFxRepeater::tst_QFxRepeater() +{ +} + +void tst_QFxRepeater::stringList() +{ + QFxView *canvas = createView(SRCDIR "/data/repeater.xml"); + + QStringList data; + data << "One"; + data << "Two"; + data << "Three"; + data << "Four"; + + QmlContext *ctxt = canvas->rootContext(); + ctxt->setProperty("testData", data); + + canvas->execute(); + qApp->processEvents(); + + QFxRepeater *repeater = findItem<QFxRepeater>(canvas->root(), "repeater"); + QVERIFY(repeater != 0); + + QFxItem *container = findItem<QFxItem>(canvas->root(), "container"); + QVERIFY(container != 0); + + QCOMPARE(container->children()->count(), data.count() + 1); + + for (int i = 1; i < container->children()->count(); ++i) { + QFxText *name = qobject_cast<QFxText*>(container->children()->at(i)); + QVERIFY(name != 0); + QCOMPARE(name->text(), data.at(i-1)); + } + + delete canvas; +} + + +QFxView *tst_QFxRepeater::createView(const QString &filename) +{ + QFxView *canvas = new QFxView(0); + canvas->setFixedSize(240,320); + + QFile file(filename); + file.open(QFile::ReadOnly); + QString xml = file.readAll(); + canvas->setXml(xml, filename); + + return canvas; +} + +template<typename T> +T *tst_QFxRepeater::findItem(QFxItem *parent, const QString &id) +{ + const QMetaObject &mo = T::staticMetaObject; + if (mo.cast(parent) && (id.isEmpty() || parent->id() == id)) + return static_cast<T*>(parent); + for (int i = 0; i < parent->children()->count(); ++i) { + QFxItem *item = findItem<T>(parent->children()->at(i), id); + if (item) + return static_cast<T*>(item); + } + + return 0; +} + +QTEST_MAIN(tst_QFxRepeater) + +#include "tst_repeater.moc" |