MCPcopy Create free account
hub / github.com/KDAB/GammaRay / QuickMaterialTest

Class QuickMaterialTest

tests/quickmaterialtest.cpp:43–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41}
42
43class QuickMaterialTest : public BaseQuickTest
44{
45 Q_OBJECT
46private slots:
47 void testStaticShader()
48 {
49 if (!showSource("qrc:/manual/shadereffect6.qml"))
50 return;
51
52 auto iface = ObjectBroker::object<MaterialExtensionInterface *>("com.kdab.GammaRay.QuickSceneGraph.material");
53 QVERIFY(iface);
54 QSignalSpy shaderSpy(iface, SIGNAL(gotShader(QString)));
55 QVERIFY(shaderSpy.isValid());
56
57 auto propModel = ObjectBroker::model("com.kdab.GammaRay.QuickSceneGraph.materialPropertyModel");
58 QVERIFY(propModel);
59 QAbstractItemModelTester propModelTest(propModel);
60 QCOMPARE(propModel->rowCount(), 0);
61
62 auto shaderModel = ObjectBroker::model("com.kdab.GammaRay.QuickSceneGraph.shaderModel");
63 QVERIFY(shaderModel);
64 QAbstractItemModelTester shaderModelTest(shaderModel);
65 QCOMPARE(shaderModel->rowCount(), 0);
66
67 auto imageItem = view()->rootObject();
68 QVERIFY(imageItem);
69 QCOMPARE(imageItem->metaObject()->className(), "QQuickImage");
70 Probe::instance()->selectObject(imageItem, QPoint());
71
72 auto obj = ObjectBroker::object<PropertyControllerInterface *>("com.kdab.GammaRay.QuickSceneGraph.controller");
73 auto controller = qobject_cast<PropertyController *>(obj);
74 QVERIFY(controller);
75
76 auto priv = QQuickItemPrivate::get(imageItem);
77 QVERIFY(priv->itemNodeInstance);
78 auto geometryNode = findGeometryNode(priv->itemNodeInstance);
79 QVERIFY(geometryNode);
80 controller->setObject(geometryNode, "QSGGeometryNode");
81
82 QVERIFY(propModel->rowCount() > 1);
83 QCOMPARE(shaderModel->rowCount(), 2);
84
85 iface->getShader(0);
86 QCOMPARE(shaderSpy.size(), 1);
87 QVERIFY(!shaderSpy.at(0).at(0).toString().isEmpty());
88 shaderSpy.clear();
89
90 iface->getShader(1);
91 QCOMPARE(shaderSpy.size(), 1);
92 QVERIFY(!shaderSpy.at(0).at(0).toString().isEmpty());
93
94 controller->setObject(nullptr, QString());
95 }
96
97 void testDynamicShader()
98 {
99 if (!showSource("qrc:/manual/shadereffect6.qml"))
100 return;

Callers

nothing calls this directly

Calls 14

showSourceFunction · 0.85
QPointClass · 0.85
findGeometryNodeFunction · 0.70
QStringClass · 0.50
isValidMethod · 0.45
rowCountMethod · 0.45
classNameMethod · 0.45
metaObjectMethod · 0.45
selectObjectMethod · 0.45
setObjectMethod · 0.45
getShaderMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected