void tst_QQmlPropertyMap::changed() { QQmlPropertyMap map; QSignalSpy spy(&map, SIGNAL(valueChanged(const QString&, const QVariant&))); map.insert(QLatin1String("key1"),100); map.insert(QLatin1String("key2"),200); QCOMPARE(spy.count(), 0); map.clear(QLatin1String("key1")); QCOMPARE(spy.count(), 0); //make changes in QML QQmlEngine engine; QQmlContext *ctxt = engine.rootContext(); ctxt->setContextProperty(QLatin1String("testdata"), &map); QQmlComponent component(&engine); component.setData("import QtQuick 2.0\nText { text: { testdata.key1 = 'Hello World'; 'X' } }", QUrl::fromLocalFile("")); QVERIFY(component.isReady()); QQuickText *txt = qobject_cast<QQuickText*>(component.create()); QVERIFY(txt); QCOMPARE(txt->text(), QString('X')); QCOMPARE(spy.count(), 1); QList<QVariant> arguments = spy.takeFirst(); QCOMPARE(arguments.count(), 2); QCOMPARE(arguments.at(0).toString(),QLatin1String("key1")); QCOMPARE(arguments.at(1).value<QVariant>(),QVariant("Hello World")); QCOMPARE(map.value(QLatin1String("key1")), QVariant("Hello World")); }
void tst_QQmlPropertyMap::clear() { QQmlPropertyMap map; map.insert(QLatin1String("key1"),100); QVERIFY(map.keys().count() == 1); QCOMPARE(map.value(QLatin1String("key1")), QVariant(100)); map.clear(QLatin1String("key1")); QVERIFY(map.keys().count() == 1); QVERIFY(map.contains(QLatin1String("key1"))); QCOMPARE(map.value(QLatin1String("key1")), QVariant()); }
void tst_QQmlPropertyMap::count() { QQmlPropertyMap map; QCOMPARE(map.isEmpty(), true); map.insert(QLatin1String("key1"),100); map.insert(QLatin1String("key2"),200); QCOMPARE(map.count(), 2); QCOMPARE(map.isEmpty(), false); map.insert(QLatin1String("key3"),"Hello World"); QCOMPARE(map.count(), 3); //clearing doesn't remove the key map.clear(QLatin1String("key3")); QCOMPARE(map.count(), 3); QCOMPARE(map.size(), map.count()); }