~renatofilho/ubuntu-ui-toolkit/fix-1236464

« back to all changes in this revision

Viewing changes to tests/unit_x11/tst_statesaver/tst_statesaver.cpp

  • Committer: Tarmac
  • Author(s): Zsombor Egri
  • Date: 2013-10-07 13:27:28 UTC
  • mfrom: (769.2.6 statesaver-uid)
  • Revision ID: tarmac-20131007132728-yh47ea0fe8ih8s44
Tests proving component state saving added, minor fix disabling state saving when attachee ID is not specified or absolute ID cannot be computed.

Approved by PS Jenkins bot, Christian Dywan.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 */
18
18
 
19
19
#include <QtTest/QtTest>
 
20
#include <QtTest/QSignalSpy>
20
21
#include <QtCore/QCoreApplication>
21
22
#include <QtQml/QQmlEngine>
22
23
#include <QtQuick/QQuickView>
42
43
private:
43
44
    QString m_modulePath;
44
45
 
45
 
    QQuickView *createView(const QString &file)
 
46
    QQuickView *createView(const QString &file, QSignalSpy **spy = 0)
46
47
    {
47
48
        QQuickView *view = new QQuickView(0);
 
49
        if (spy) {
 
50
            *spy = new QSignalSpy(view->engine(), SIGNAL(warnings(QList<QQmlError>)));
 
51
            (*spy)->setParent(view);
 
52
        }
48
53
        view->engine()->addImportPath(m_modulePath);
49
54
        view->setSource(QUrl::fromLocalFile(file));
50
55
        if (!view->rootObject()) {
223
228
 
224
229
    void test_InvalidUID()
225
230
    {
226
 
        QQuickView *view = createView("InvalidUID.qml");
 
231
        QSignalSpy *spy;
 
232
        QQuickView *view = createView("InvalidUID.qml", &spy);
227
233
        QVERIFY(view);
 
234
        QCOMPARE(spy->count(), 1);
228
235
        QObject *testItem = view->rootObject()->findChild<QObject*>("testItem");
229
236
        QVERIFY(testItem);
230
237
 
231
238
        testItem->setObjectName("updated");
232
239
        delete view;
233
240
 
234
 
        view = createView("InvalidUID.qml");
 
241
        view = createView("InvalidUID.qml", &spy);
235
242
        QVERIFY(view);
 
243
        QCOMPARE(spy->count(), 1);
236
244
        testItem = view->rootObject()->findChild<QObject*>("updated");
237
245
        QVERIFY(testItem == 0);
238
246
        delete view;
257
265
 
258
266
    void test_InvalidGroupProperty()
259
267
    {
260
 
        QQuickView *view = createView("InvalidGroupProperty.qml");
 
268
        QSignalSpy *spy;
 
269
        QQuickView *view = createView("InvalidGroupProperty.qml", &spy);
261
270
        QVERIFY(view);
 
271
        QCOMPARE(spy->count(), 1);
262
272
        QObject *testItem = view->rootObject()->findChild<QObject*>("testItem");
263
273
        QVERIFY(testItem);
264
274
 
265
275
        testItem->setObjectName("group");
266
276
        delete view;
267
277
 
268
 
        view = createView("InvalidGroupProperty.qml");
 
278
        view = createView("InvalidGroupProperty.qml", &spy);
269
279
        QVERIFY(view);
 
280
        QCOMPARE(spy->count(), 1);
270
281
        testItem = view->rootObject()->findChild<QObject*>("group");
271
282
        QVERIFY(testItem == 0);
272
283
        delete view;
347
358
        delete view;
348
359
    }
349
360
 
 
361
    void test_ComponentsWithStateSavers()
 
362
    {
 
363
        QQuickView *view = createView("ComponentsWithStateSavers.qml");
 
364
        QVERIFY(view);
 
365
        QObject *control1 = view->rootObject()->findChild<QObject*>("control1");
 
366
        QVERIFY(control1);
 
367
        QObject *control2 = view->rootObject()->findChild<QObject*>("control2");
 
368
        QVERIFY(control2);
 
369
        UCStateSaverAttached *stateSaver1 = qobject_cast<UCStateSaverAttached*>(qmlAttachedPropertiesObject<UCStateSaver>(control1, false));
 
370
        QVERIFY(stateSaver1);
 
371
        QVERIFY(stateSaver1->enabled());
 
372
        UCStateSaverAttached *stateSaver2 = qobject_cast<UCStateSaverAttached*>(qmlAttachedPropertiesObject<UCStateSaver>(control2, false));
 
373
        QVERIFY(stateSaver2);
 
374
        QVERIFY(stateSaver2->enabled());
 
375
 
 
376
        QVERIFY(control1->setProperty("color", QColor("green")));
 
377
        QVERIFY(control2->setProperty("color", QColor("blue")));
 
378
        delete view;
 
379
 
 
380
        view = createView("ComponentsWithStateSavers.qml");
 
381
        control1 = view->rootObject()->findChild<QObject*>("control1");
 
382
        QVERIFY(control1);
 
383
        control2 = view->rootObject()->findChild<QObject*>("control2");
 
384
        QVERIFY(control2);
 
385
        stateSaver1 = qobject_cast<UCStateSaverAttached*>(qmlAttachedPropertiesObject<UCStateSaver>(control1, false));
 
386
        QVERIFY(stateSaver1);
 
387
        QVERIFY(stateSaver1->enabled());
 
388
        stateSaver2 = qobject_cast<UCStateSaverAttached*>(qmlAttachedPropertiesObject<UCStateSaver>(control2, false));
 
389
        QVERIFY(stateSaver2);
 
390
        QVERIFY(stateSaver2->enabled());
 
391
        QVERIFY(view);
 
392
 
 
393
        QCOMPARE(control1->property("color"), QVariant(QColor("green")));
 
394
        QCOMPARE(control2->property("color"), QVariant(QColor("blue")));
 
395
        delete view;
 
396
    }
 
397
 
 
398
    void test_ComponentsWithStateSaversNoId()
 
399
    {
 
400
        QSignalSpy *spy;
 
401
        QQuickView *view = createView("ComponentsWithStateSaversNoId.qml", &spy);
 
402
        QVERIFY(view);
 
403
        QObject *control1 = view->rootObject()->findChild<QObject*>("control1");
 
404
        QVERIFY(control1);
 
405
        QObject *control2 = view->rootObject()->findChild<QObject*>("control2");
 
406
        QVERIFY(control2);
 
407
        UCStateSaverAttached *stateSaver1 = qobject_cast<UCStateSaverAttached*>(qmlAttachedPropertiesObject<UCStateSaver>(control1, false));
 
408
        QVERIFY(stateSaver1);
 
409
        QVERIFY(stateSaver1->enabled() == false);
 
410
        QCOMPARE(spy->count(), 1);
 
411
        UCStateSaverAttached *stateSaver2 = qobject_cast<UCStateSaverAttached*>(qmlAttachedPropertiesObject<UCStateSaver>(control2, false));
 
412
        QVERIFY(stateSaver2);
 
413
        QVERIFY(stateSaver2->enabled());
 
414
        delete view;
 
415
    }
350
416
};
351
417
 
352
418
QTEST_MAIN(tst_StateSaverTest)