Esempio n. 1
0
void tst_QQuickView::engine()
{
    QQmlEngine *engine = new QQmlEngine;
    QVERIFY(!engine->incubationController());

    QQuickView *view = new QQuickView(engine, 0);
    QVERIFY(view);
    QVERIFY(engine->incubationController() == view->incubationController());

    QQuickView *view2 = new QQuickView(engine, 0);
    QVERIFY(view);
    QVERIFY(engine->incubationController() == view->incubationController());
    delete view;
    QVERIFY(!engine->incubationController());

    engine->setIncubationController(view2->incubationController());
    QVERIFY(engine->incubationController() == view2->incubationController());
    delete view2;
    QVERIFY(!engine->incubationController());

    QQuickView *view3 = new QQuickView;
    QQuickView *view4 = new QQuickView(view3->engine(), 0);

    QVERIFY(view3->engine());
    QVERIFY(view4->engine());
    QCOMPARE(view3->engine(), view4->engine());
    delete view3;
    QVERIFY(!view4->engine());
    QTest::ignoreMessage(QtWarningMsg, "QQuickView: invalid qml engine. ");
    view4->setSource(QUrl());

    QCOMPARE(view4->status(), QQuickView::Error);
    QVERIFY(!view4->errors().isEmpty());
    QCOMPARE(view4->errors().back().description(), QLatin1String("QQuickView: invalid qml engine."));
    delete view4;
}