CntContactCardDataItem::CntContactCardDataItem(const QString& aTitle, int aPosition, bool aIsFocusable) : mIcon(HbIcon()), mSecondaryIcon(HbIcon()), mTitle(aTitle), mValueText(QString("")), mAction(QString("")), mActionDescriptor(QContactActionDescriptor()), mValueTextElideMode(Qt::ElideNone), mIsFocusable(aIsFocusable), mExtension(NULL), mExtensionActionIndex(0), mPosition(aPosition) { }
void tst_QContactActions::testDescriptor() { // first, test retrieving an invalid action QContactAction* invalidAction = QContactAction::action(QContactActionDescriptor()); QVERIFY(invalidAction == 0); // should be null. QContact c; QContactEmailAddress e; e.setEmailAddress("*****@*****.**"); c.saveDetail(&e); QContactPhoneNumber p; p.setNumber("12345"); c.saveDetail(&p); QVERIFY(QContactAction::availableActions().contains("SendEmail")); QVERIFY(QContactAction::availableActions("tst_qcontactactions:sendemailaction").contains("SendEmail")); QContactActionDescriptor sendEmailDescriptor; QContactActionDescriptor multiActionOneDescriptor; QContactActionDescriptor multiActionTwoDescriptor; QList<QContactActionDescriptor> descrs = QContactAction::actionDescriptors(); QContactAction* sendEmailAction = 0; for (int i = 0; i < descrs.size(); i++) { QContactActionDescriptor temp = descrs.at(i); if (temp.actionName() == QString("SendEmail")) { sendEmailAction = QContactAction::action(temp); QVERIFY(c.availableActions().contains(temp)); // has an email address, so should be available QVERIFY(temp.supportsContact(c)); sendEmailDescriptor = temp; } else if (temp.actionName() == QString("call")) { if (temp.metaData(QString(QLatin1String("Provider"))) == QString(QLatin1String("sip"))) { multiActionOneDescriptor = temp; } else { multiActionTwoDescriptor = temp; } } } QVERIFY(sendEmailDescriptor.isValid()); QVERIFY(multiActionOneDescriptor.isValid()); QVERIFY(multiActionTwoDescriptor.isValid()); QVERIFY(sendEmailAction != 0); delete sendEmailAction; // now test equivalence. The send email action descriptor should // have a different action name to both multi action one and two. QVERIFY(sendEmailDescriptor.actionName() != multiActionOneDescriptor.actionName()); QVERIFY(sendEmailDescriptor.actionName() != multiActionTwoDescriptor.actionName()); QVERIFY(sendEmailDescriptor != multiActionOneDescriptor); QVERIFY(sendEmailDescriptor != multiActionTwoDescriptor); // multi action one and two should have the same action name, service // name and implementation (minor) version. BUT they have different // implementations (Provider is different) so they should NOT be equal. QVERIFY(multiActionOneDescriptor.actionName() == multiActionTwoDescriptor.actionName()); QVERIFY(multiActionOneDescriptor.serviceName() == multiActionTwoDescriptor.serviceName()); QVERIFY(multiActionOneDescriptor.implementationVersion() == multiActionTwoDescriptor.implementationVersion()); QVERIFY(multiActionOneDescriptor != multiActionTwoDescriptor); // verify that the meta data is reported correctly QVERIFY(multiActionOneDescriptor.metaData("Provider") != multiActionTwoDescriptor.metaData("Provider")); }