diff options
author | Joona Petrell <joona.t.petrell@nokia.com> | 2010-02-16 06:16:38 (GMT) |
---|---|---|
committer | Joona Petrell <joona.t.petrell@nokia.com> | 2010-02-17 05:11:40 (GMT) |
commit | 060d833d3e0fd5a99876e0717fb26ef93fae30e1 (patch) | |
tree | 75dff625d18ca442088c8b8b07b9979e5cb55544 /tests | |
parent | 7f6317c25e6c1ec457971ab70c850d4d2bbe4cd2 (diff) | |
download | Qt-060d833d3e0fd5a99876e0717fb26ef93fae30e1.zip Qt-060d833d3e0fd5a99876e0717fb26ef93fae30e1.tar.gz Qt-060d833d3e0fd5a99876e0717fb26ef93fae30e1.tar.bz2 |
Add missing NOTIFY signals to various QML item class properties
Reviewed-by: Aaron Kennedy
Diffstat (limited to 'tests')
9 files changed, 367 insertions, 3 deletions
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 9ef10b0..b4a0d0f 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -29,6 +29,7 @@ SUBDIRS += \ qmlgraphicsitem \ # Cover qmlgraphicslistview \ # Cover qmlgraphicsloader \ # Cover + qmlgraphicsmouseregion \ # Cover qmlgraphicsparticles \ # Cover qmlgraphicspathview \ # Cover qmlgraphicspositioners \ # Cover diff --git a/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp b/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp index c0ffeb7..7860bcf 100644 --- a/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp +++ b/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp @@ -39,6 +39,7 @@ ** ****************************************************************************/ #include <qtest.h> +#include <QtTest/QSignalSpy> #include <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcomponent.h> #include <private/qmlgraphicsflickable_p.h> @@ -56,6 +57,10 @@ private slots: void horizontalViewportSize(); void verticalViewportSize(); void properties(); + void overShoot(); + void maximumFlickVelocity(); + void flickDeceleration(); + void pressDelay(); private: QmlEngine engine; @@ -140,6 +145,80 @@ void tst_qmlgraphicsflickable::properties() delete obj; } +void tst_qmlgraphicsflickable::overShoot() +{ + QmlComponent component(&engine); + component.setData("import Qt 4.6; Flickable { overShoot: false; }", QUrl::fromLocalFile("")); + QmlGraphicsFlickable *flickable = qobject_cast<QmlGraphicsFlickable*>(component.create()); + QSignalSpy spy(flickable, SIGNAL(overShootChanged())); + + QVERIFY(flickable); + QVERIFY(!flickable->overShoot()); + + flickable->setOverShoot(true); + QVERIFY(flickable->overShoot()); + QCOMPARE(spy.count(),1); + flickable->setOverShoot(true); + QCOMPARE(spy.count(),1); + + flickable->setOverShoot(false); + QVERIFY(!flickable->overShoot()); + QCOMPARE(spy.count(),2); + flickable->setOverShoot(false); + QCOMPARE(spy.count(),2); +} + +void tst_qmlgraphicsflickable::maximumFlickVelocity() +{ + QmlComponent component(&engine); + component.setData("import Qt 4.6; Flickable { maximumFlickVelocity: 1.0; }", QUrl::fromLocalFile("")); + QmlGraphicsFlickable *flickable = qobject_cast<QmlGraphicsFlickable*>(component.create()); + QSignalSpy spy(flickable, SIGNAL(maximumFlickVelocityChanged())); + + QVERIFY(flickable); + QCOMPARE(flickable->maximumFlickVelocity(), 1.0); + + flickable->setMaximumFlickVelocity(2.0); + QCOMPARE(flickable->maximumFlickVelocity(), 2.0); + QCOMPARE(spy.count(),1); + flickable->setMaximumFlickVelocity(2.0); + QCOMPARE(spy.count(),1); +} + +void tst_qmlgraphicsflickable::flickDeceleration() +{ + QmlComponent component(&engine); + component.setData("import Qt 4.6; Flickable { flickDeceleration: 1.0; }", QUrl::fromLocalFile("")); + QmlGraphicsFlickable *flickable = qobject_cast<QmlGraphicsFlickable*>(component.create()); + QSignalSpy spy(flickable, SIGNAL(flickDecelerationChanged())); + + QVERIFY(flickable); + QCOMPARE(flickable->flickDeceleration(), 1.0); + + flickable->setFlickDeceleration(2.0); + QCOMPARE(flickable->flickDeceleration(), 2.0); + QCOMPARE(spy.count(),1); + flickable->setFlickDeceleration(2.0); + QCOMPARE(spy.count(),1); +} + +void tst_qmlgraphicsflickable::pressDelay() +{ + QmlComponent component(&engine); + component.setData("import Qt 4.6; Flickable { pressDelay: 100; }", QUrl::fromLocalFile("")); + QmlGraphicsFlickable *flickable = qobject_cast<QmlGraphicsFlickable*>(component.create()); + QSignalSpy spy(flickable, SIGNAL(pressDelayChanged())); + + QVERIFY(flickable); + QCOMPARE(flickable->pressDelay(), 100); + + flickable->setPressDelay(200); + QCOMPARE(flickable->pressDelay(), 200); + QCOMPARE(spy.count(),1); + flickable->setPressDelay(200); + QCOMPARE(spy.count(),1); +} + QTEST_MAIN(tst_qmlgraphicsflickable) #include "tst_qmlgraphicsflickable.moc" diff --git a/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp b/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp index c671dae..639f64c 100644 --- a/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp +++ b/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp @@ -39,11 +39,12 @@ ** ****************************************************************************/ #include <qtest.h> +#include <QtTest/QSignalSpy> #include <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcomponent.h> #include <QtDeclarative/qmlcontext.h> #include <QtDeclarative/qmlview.h> -#include <qmlgraphicsitem.h> +#include <QtDeclarative/qmlgraphicsitem.h> class tst_QmlGraphicsItem : public QObject @@ -55,10 +56,13 @@ public: private slots: void keys(); void keyNavigation(); + void smooth(); + void clip(); private: template<typename T> T *findItem(QmlGraphicsItem *parent, const QString &objectName); + QmlEngine engine; }; class KeysTestObject : public QObject @@ -241,6 +245,52 @@ void tst_QmlGraphicsItem::keyNavigation() QVERIFY(item->hasFocus()); } +void tst_QmlGraphicsItem::smooth() +{ + QmlComponent component(&engine); + component.setData("import Qt 4.6; Item { smooth: false; }", QUrl::fromLocalFile("")); + QmlGraphicsItem *item = qobject_cast<QmlGraphicsItem*>(component.create()); + QSignalSpy spy(item, SIGNAL(smoothChanged())); + + QVERIFY(item); + QVERIFY(!item->smooth()); + + item->setSmooth(true); + QVERIFY(item->smooth()); + QCOMPARE(spy.count(),1); + item->setSmooth(true); + QCOMPARE(spy.count(),1); + + item->setSmooth(false); + QVERIFY(!item->smooth()); + QCOMPARE(spy.count(),2); + item->setSmooth(false); + QCOMPARE(spy.count(),2); +} + +void tst_QmlGraphicsItem::clip() +{ + QmlComponent component(&engine); + component.setData("import Qt 4.6\nItem { clip: false\n }", QUrl::fromLocalFile("")); + QmlGraphicsItem *item = qobject_cast<QmlGraphicsItem*>(component.create()); + QSignalSpy spy(item, SIGNAL(clipChanged())); + + QVERIFY(item); + QVERIFY(!item->clip()); + + item->setClip(true); + QVERIFY(item->clip()); + QCOMPARE(spy.count(),1); + item->setClip(true); + QCOMPARE(spy.count(),1); + + item->setClip(false); + QVERIFY(!item->clip()); + QCOMPARE(spy.count(),2); + item->setClip(false); + QCOMPARE(spy.count(),2); +} + template<typename T> T *tst_QmlGraphicsItem::findItem(QmlGraphicsItem *parent, const QString &objectName) { diff --git a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp index 43f58c1..65c0523 100644 --- a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp +++ b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp @@ -42,6 +42,7 @@ #include <QtGui/QGraphicsWidget> #include <QtGui/QGraphicsScene> +#include <QSignalSpy> #include <QtDeclarative/qmlengine.h> #include <QtDeclarative/qmlcomponent.h> #include <private/qmlgraphicsloader_p.h> @@ -259,6 +260,13 @@ void tst_QmlGraphicsLoader::sizeLoaderToItem() loader->setHeight(30); QCOMPARE(rect->width(), 180.0); QCOMPARE(rect->height(), 30.0); + + // notify + QSignalSpy spy(loader, SIGNAL(resizeModeChanged())); + loader->setResizeMode(QmlGraphicsLoader::NoResize); + QCOMPARE(spy.count(),1); + loader->setResizeMode(QmlGraphicsLoader::NoResize); + QCOMPARE(spy.count(),1); } void tst_QmlGraphicsLoader::sizeItemToLoader() diff --git a/tests/auto/declarative/qmlgraphicsmouseregion/data/dragproperties.qml b/tests/auto/declarative/qmlgraphicsmouseregion/data/dragproperties.qml new file mode 100644 index 0000000..5acb3e4 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsmouseregion/data/dragproperties.qml @@ -0,0 +1,28 @@ +import Qt 4.6 +Rectangle { + id: whiteRect + width: 200 + height: 200 + color: "white" + Rectangle { + id: blackRect + objectName: "blackrect" + color: "black" + y: 50 + x: 50 + width: 100 + height: 100 + opacity: (whiteRect.width-blackRect.x+whiteRect.height-blackRect.y-199)/200 + Text { text: blackRect.opacity} + MouseRegion { + objectName: "mouseregion" + anchors.fill: parent + drag.target: blackRect + drag.axis: Drag.XandYAxis + drag.minimumX: 0 + drag.maximumX: whiteRect.width-blackRect.width + drag.minimumY: 0 + drag.maximumY: whiteRect.height-blackRect.height + } + } + }
\ No newline at end of file diff --git a/tests/auto/declarative/qmlgraphicsmouseregion/qmlgraphicsmouseregion.pro b/tests/auto/declarative/qmlgraphicsmouseregion/qmlgraphicsmouseregion.pro new file mode 100644 index 0000000..7a7c8bd --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsmouseregion/qmlgraphicsmouseregion.pro @@ -0,0 +1,9 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative gui network +macx:CONFIG -= app_bundle + +HEADERS += ../shared/testhttpserver.h +SOURCES += tst_qmlgraphicsmouseregion.cpp ../shared/testhttpserver.cpp + +# Define SRCDIR equal to test's source directory +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qmlgraphicsmouseregion/tst_qmlgraphicsmouseregion.cpp b/tests/auto/declarative/qmlgraphicsmouseregion/tst_qmlgraphicsmouseregion.cpp new file mode 100644 index 0000000..7ba076c --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsmouseregion/tst_qmlgraphicsmouseregion.cpp @@ -0,0 +1,142 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QtTest> +#include <QtTest/QSignalSpy> +#include <private/qmlgraphicsmouseregion_p.h> +#include <QtDeclarative/qmlview.h> + +class tst_QmlGraphicsMouseRegion: public QObject +{ + Q_OBJECT +private slots: + void dragProperties(); +private: + QmlView *createView(const QString &filename); +}; + +void tst_QmlGraphicsMouseRegion::dragProperties() +{ + QmlView *canvas = createView(SRCDIR "/data/dragproperties.qml"); + canvas->execute(); + canvas->show(); + canvas->setFocus(); + QVERIFY(canvas->root() != 0); + + QmlGraphicsMouseRegion *mouseRegion = canvas->root()->findChild<QmlGraphicsMouseRegion*>("mouseregion"); + QmlGraphicsDrag *drag = mouseRegion->drag(); + QVERIFY(mouseRegion != 0); + QVERIFY(drag != 0); + + // target + QmlGraphicsItem *blackRect = canvas->root()->findChild<QmlGraphicsItem*>("blackrect"); + QVERIFY(blackRect != 0); + QVERIFY(blackRect == drag->target()); + QmlGraphicsItem *rootItem = qobject_cast<QmlGraphicsItem*>(canvas->root()); + QVERIFY(rootItem != 0); + QSignalSpy targetSpy(drag, SIGNAL(targetChanged())); + drag->setTarget(rootItem); + QCOMPARE(targetSpy.count(),1); + drag->setTarget(rootItem); + QCOMPARE(targetSpy.count(),1); + + // axis + QCOMPARE(drag->axis(), QmlGraphicsDrag::XandYAxis); + QSignalSpy axisSpy(drag, SIGNAL(axisChanged())); + drag->setAxis(QmlGraphicsDrag::XAxis); + QCOMPARE(drag->axis(), QmlGraphicsDrag::XAxis); + QCOMPARE(axisSpy.count(),1); + drag->setAxis(QmlGraphicsDrag::XAxis); + QCOMPARE(axisSpy.count(),1); + + // minimum and maximum properties + QSignalSpy xminSpy(drag, SIGNAL(minimumXChanged())); + QSignalSpy xmaxSpy(drag, SIGNAL(maximumXChanged())); + QSignalSpy yminSpy(drag, SIGNAL(minimumYChanged())); + QSignalSpy ymaxSpy(drag, SIGNAL(maximumYChanged())); + + QCOMPARE(drag->xmin(), 0.0); + QCOMPARE(drag->xmax(), rootItem->width()-blackRect->width()); + QCOMPARE(drag->ymin(), 0.0); + QCOMPARE(drag->ymax(), rootItem->height()-blackRect->height()); + + drag->setXmin(10); + drag->setXmax(10); + drag->setYmin(10); + drag->setYmax(10); + + QCOMPARE(drag->xmin(), 10.0); + QCOMPARE(drag->xmax(), 10.0); + QCOMPARE(drag->ymin(), 10.0); + QCOMPARE(drag->ymax(), 10.0); + + QCOMPARE(xminSpy.count(),1); + QCOMPARE(xmaxSpy.count(),1); + QCOMPARE(yminSpy.count(),1); + QCOMPARE(ymaxSpy.count(),1); + + drag->setXmin(10); + drag->setXmax(10); + drag->setYmin(10); + drag->setYmax(10); + + QCOMPARE(xminSpy.count(),1); + QCOMPARE(xmaxSpy.count(),1); + QCOMPARE(yminSpy.count(),1); + QCOMPARE(ymaxSpy.count(),1); +} + +QmlView *tst_QmlGraphicsMouseRegion::createView(const QString &filename) +{ + QmlView *canvas = new QmlView(0); + canvas->setFixedSize(240,320); + + QFile file(filename); + file.open(QFile::ReadOnly); + QString qml = file.readAll(); + canvas->setQml(qml, filename); + + return canvas; +} + +QTEST_MAIN(tst_QmlGraphicsMouseRegion) + +#include "tst_qmlgraphicsmouseregion.moc" diff --git a/tests/auto/declarative/qmlgraphicsrepeater/data/properties.qml b/tests/auto/declarative/qmlgraphicsrepeater/data/properties.qml new file mode 100644 index 0000000..550ce8d --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsrepeater/data/properties.qml @@ -0,0 +1,11 @@ +import Qt 4.6 + +Row { + Repeater { + objectName: "repeater" + model: 5 + Text { + text: "I'm item " + index + } + } +}
\ No newline at end of file diff --git a/tests/auto/declarative/qmlgraphicsrepeater/tst_qmlgraphicsrepeater.cpp b/tests/auto/declarative/qmlgraphicsrepeater/tst_qmlgraphicsrepeater.cpp index 4297901..ef0ca1d 100644 --- a/tests/auto/declarative/qmlgraphicsrepeater/tst_qmlgraphicsrepeater.cpp +++ b/tests/auto/declarative/qmlgraphicsrepeater/tst_qmlgraphicsrepeater.cpp @@ -38,12 +38,20 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + #include <QtTest/QtTest> +#include <QtTest/QSignalSpy> #include <private/qlistmodelinterface_p.h> -#include <qmlview.h> +#include <QtDeclarative/qmlengine.h> +#include <QtDeclarative/qmlview.h> +#include <QtDeclarative/qmlcontext.h> #include <private/qmlgraphicsrepeater_p.h> #include <private/qmlgraphicstext_p.h> -#include <qmlcontext.h> + +inline QUrl TEST_FILE(const QString &filename) +{ + return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename); +} class tst_QmlGraphicsRepeater : public QObject { @@ -57,6 +65,7 @@ private slots: void stringList(); void dataModel(); void itemModel(); + void properties(); private: QmlView *createView(const QString &filename); @@ -317,6 +326,33 @@ void tst_QmlGraphicsRepeater::itemModel() delete canvas; } +void tst_QmlGraphicsRepeater::properties() +{ + QmlEngine engine; + QmlComponent component(&engine, TEST_FILE("/properties.qml")); + + QmlGraphicsItem *root = qobject_cast<QmlGraphicsItem*>(component.create()); + QVERIFY(root); + + QmlGraphicsRepeater *repeater = findItem<QmlGraphicsRepeater>(root, "repeater"); + QVERIFY(repeater); + + QSignalSpy modelSpy(repeater, SIGNAL(modelChanged())); + repeater->setModel(3); + QCOMPARE(modelSpy.count(),1); + repeater->setModel(3); + QCOMPARE(modelSpy.count(),1); + + QSignalSpy delegateSpy(repeater, SIGNAL(delegateChanged())); + + QmlComponent rectComponent(&engine); + rectComponent.setData("import Qt 4.6; Rectangle {}", QUrl::fromLocalFile("")); + + repeater->setDelegate(&rectComponent); + QCOMPARE(delegateSpy.count(),1); + repeater->setDelegate(&rectComponent); + QCOMPARE(delegateSpy.count(),1); +} QmlView *tst_QmlGraphicsRepeater::createView(const QString &filename) { |