qtmobility/plugins/contacts/symbian/tsrc/ut_symbian/ut_cntfiltering.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 5 453da2cfceef
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    67         QVERIFY(error == KErrNone);
    67         QVERIFY(error == KErrNone);
    68     mFilters = new QHash<QContactFilter::FilterType, TFilter>;
    68     mFilters = new QHash<QContactFilter::FilterType, TFilter>;
    69 
    69 
    70     // Remove all contacts from the database
    70     // Remove all contacts from the database
    71     QList<QContactLocalId> cnt_ids = mCntMng->contactIds();
    71     QList<QContactLocalId> cnt_ids = mCntMng->contactIds();
    72     mCntMng->removeContacts(&cnt_ids);
    72     mCntMng->removeContacts(cnt_ids, 0);
    73     cnt_ids = mCntMng->contactIds();
    73     cnt_ids = mCntMng->contactIds();
    74     QVERIFY(0 == cnt_ids.count());
    74     QVERIFY(0 == cnt_ids.count());
    75     parseFilters();
    75     parseFilters();
    76     createContacts();
    76     createContacts();
    77 }
    77 }
   426 void TestFiltering::testContactDetailFilter_1()
   426 void TestFiltering::testContactDetailFilter_1()
   427 {
   427 {
   428     QList<QContactLocalId> cnt_ids;
   428     QList<QContactLocalId> cnt_ids;
   429     QContactManager::Error error;
   429     QContactManager::Error error;
   430     QList<QContactSortOrder> sortOrder;
   430     QList<QContactSortOrder> sortOrder;
       
   431     
       
   432     QContactSortOrder sortOrderFirstName;
       
   433     sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
       
   434         QContactName::FieldFirstName);
       
   435 
       
   436     QContactSortOrder sortOrderLastName;
       
   437     sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
       
   438         QContactName::FieldLastName);
       
   439 
       
   440     sortOrder.append(sortOrderFirstName);
       
   441     sortOrder.append(sortOrderLastName);
   431 
   442 
   432     QList<TFilter> fs = mFilters->values(QContactFilter::ContactDetailFilter);
   443     QList<TFilter> fs = mFilters->values(QContactFilter::ContactDetailFilter);
   433     int cnt = fs.count();
   444     int cnt = fs.count();
   434     for(int i=0; i< cnt; i++) {
   445     for(int i=0; i< cnt; i++) {
   435         qDebug() << fs[i].name;
   446         qDebug() << fs[i].name;
   463     // Test Contact Sip field support
   474     // Test Contact Sip field support
   464     QList<QContactLocalId> cnt_ids;
   475     QList<QContactLocalId> cnt_ids;
   465     QContactManager::Error error;
   476     QContactManager::Error error;
   466     QList<QContactSortOrder> sortOrder;
   477     QList<QContactSortOrder> sortOrder;
   467     
   478     
       
   479     QContactSortOrder sortOrderFirstName;
       
   480     sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
       
   481         QContactName::FieldFirstName);
       
   482 
       
   483     QContactSortOrder sortOrderLastName;
       
   484     sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
       
   485         QContactName::FieldLastName);
       
   486 
       
   487     sortOrder.append(sortOrderFirstName);
       
   488     sortOrder.append(sortOrderLastName);
       
   489     
   468     QContactDetailFilter cdf1;
   490     QContactDetailFilter cdf1;
   469     cdf1.setDetailDefinitionName(QContactOnlineAccount::DefinitionName, QContactOnlineAccount::SubTypeSip);
   491     cdf1.setDetailDefinitionName(QContactOnlineAccount::DefinitionName, QContactOnlineAccount::SubTypeSip);
   470     cdf1.setValue("sip");
   492     cdf1.setValue("sip");
   471     cdf1.setMatchFlags(QContactFilter::MatchStartsWith);
   493     cdf1.setMatchFlags(QContactFilter::MatchStartsWith);
   472     cnt_ids = mCntMng->contactIds(cdf1, sortOrder);
   494     cnt_ids = mCntMng->contactIds(cdf1, sortOrder);
   579     QList<QContactSortOrder> sortOrder;
   601     QList<QContactSortOrder> sortOrder;
   580     
   602     
   581     QContactRelationshipFilter groupFilter;                   
   603     QContactRelationshipFilter groupFilter;                   
   582     groupFilter.setRelationshipType(QContactRelationship::HasMember);
   604     groupFilter.setRelationshipType(QContactRelationship::HasMember);
   583     groupFilter.setRelatedContactId(groupContact.id());                
   605     groupFilter.setRelatedContactId(groupContact.id());                
   584     groupFilter.setRelatedContactRole(QContactRelationshipFilter::First);
   606     groupFilter.setRelatedContactRole(QContactRelationship::First);
   585 
   607 
   586     
   608     
   587     cnt_ids = mCntMng->contactIds(groupFilter, sortOrder);
   609     cnt_ids = mCntMng->contactIds(groupFilter, sortOrder);
   588     error = mCntMng->error();
   610     error = mCntMng->error();
   589     
   611     
   601 
   623 
   602 void TestFiltering::testIntersectionFilter_1()
   624 void TestFiltering::testIntersectionFilter_1()
   603 {
   625 {
   604     //Create first filter
   626     //Create first filter
   605     QContactDetailFilter f1;
   627     QContactDetailFilter f1;
   606     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirst);
   628     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirstName);
   607     f1.setValue("John");
   629     f1.setValue("John");
   608     f1.setMatchFlags(QContactFilter::MatchStartsWith);
   630     f1.setMatchFlags(QContactFilter::MatchStartsWith);
   609     //Create second filter
   631     //Create second filter
   610     QContactDetailFilter f2;
   632     QContactDetailFilter f2;
   611     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   633     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   617     QContactIntersectionFilter filter;
   639     QContactIntersectionFilter filter;
   618     filter.append(f1);
   640     filter.append(f1);
   619     filter.append(f2);
   641     filter.append(f2);
   620     QList<QContactSortOrder> sortOrder;
   642     QList<QContactSortOrder> sortOrder;
   621     QContactManager::Error error;
   643     QContactManager::Error error;
       
   644     
       
   645     QContactSortOrder sortOrderFirstName;
       
   646     sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
       
   647         QContactName::FieldFirstName);
       
   648 
       
   649     QContactSortOrder sortOrderLastName;
       
   650     sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
       
   651         QContactName::FieldLastName);
       
   652 
       
   653     sortOrder.append(sortOrderFirstName);
       
   654     sortOrder.append(sortOrderLastName);
   622 
   655 
   623     //Search for contacts 
   656     //Search for contacts 
   624     cnt_ids = mCntMng->contactIds(filter, sortOrder);
   657     cnt_ids = mCntMng->contactIds(filter, sortOrder);
   625     error = mCntMng->error();
   658     error = mCntMng->error();
   626 
   659 
   648 
   681 
   649 void TestFiltering::testIntersectionFilter_2()
   682 void TestFiltering::testIntersectionFilter_2()
   650 {
   683 {
   651     //Create first filter
   684     //Create first filter
   652     QContactDetailFilter f1;
   685     QContactDetailFilter f1;
   653     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirst);
   686     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirstName);
   654     f1.setValue("John");
   687     f1.setValue("John");
   655     f1.setMatchFlags(QContactFilter::MatchStartsWith);
   688     f1.setMatchFlags(QContactFilter::MatchStartsWith);
   656     //Create second filter
   689     //Create second filter
   657     QContactDetailFilter f2;
   690     QContactDetailFilter f2;
   658     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   691     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   659     f2.setValue("Len.Jo@nok");
   692     f2.setValue("Len.Jo@nok");
   660     f2.setMatchFlags(QContactFilter::MatchStartsWith);
   693     f2.setMatchFlags(QContactFilter::MatchStartsWith);
   661     
   694     
   662     //Create third filter
   695     //Create third filter
   663     QContactDetailFilter f3;
   696     QContactDetailFilter f3;
   664     f3.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirst);
   697     f3.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirstName);
   665     f3.setValue("Mic");
   698     f3.setValue("Mic");
   666     f3.setMatchFlags(QContactFilter::MatchStartsWith);
   699     f3.setMatchFlags(QContactFilter::MatchStartsWith);
   667     //Create fourth filter
   700     //Create fourth filter
   668     QContactDetailFilter f4;
   701     QContactDetailFilter f4;
   669     f4.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   702     f4.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   716 
   749 
   717 void TestFiltering::testUnionFilter_1()
   750 void TestFiltering::testUnionFilter_1()
   718 {
   751 {
   719     //Create first filter
   752     //Create first filter
   720     QContactDetailFilter f1;
   753     QContactDetailFilter f1;
   721     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirst);
   754     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirstName);
   722     f1.setValue("Mic");
   755     f1.setValue("Mic");
   723     f1.setMatchFlags(QContactFilter::MatchStartsWith);
   756     f1.setMatchFlags(QContactFilter::MatchStartsWith);
   724     //Create second filter
   757     //Create second filter
   725     QContactDetailFilter f2;
   758     QContactDetailFilter f2;
   726     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   759     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   732     QContactUnionFilter filter;
   765     QContactUnionFilter filter;
   733     filter.append(f1);
   766     filter.append(f1);
   734     filter.append(f2);
   767     filter.append(f2);
   735     QList<QContactSortOrder> sortOrder;
   768     QList<QContactSortOrder> sortOrder;
   736     QContactManager::Error error;
   769     QContactManager::Error error;
       
   770     
       
   771     QContactSortOrder sortOrderFirstName;
       
   772     sortOrderFirstName.setDetailDefinitionName(QContactName::DefinitionName,
       
   773         QContactName::FieldFirstName);
       
   774 
       
   775     QContactSortOrder sortOrderLastName;
       
   776     sortOrderLastName.setDetailDefinitionName(QContactName::DefinitionName,
       
   777         QContactName::FieldLastName);
       
   778 
       
   779     sortOrder.append(sortOrderFirstName);
       
   780     sortOrder.append(sortOrderLastName);
   737 
   781 
   738     //Search for contacts 
   782     //Search for contacts 
   739     cnt_ids = mCntMng->contactIds(filter, sortOrder);
   783     cnt_ids = mCntMng->contactIds(filter, sortOrder);
   740     error = mCntMng->error();
   784     error = mCntMng->error();
   741     
   785     
   763 
   807 
   764 void TestFiltering::testUnionFilter_2()
   808 void TestFiltering::testUnionFilter_2()
   765 {
   809 {
   766     //Create first filter
   810     //Create first filter
   767     QContactDetailFilter f1;
   811     QContactDetailFilter f1;
   768     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirst);
   812     f1.setDetailDefinitionName(QContactName::DefinitionName, QContactName::FieldFirstName);
   769     f1.setValue("n");
   813     f1.setValue("n");
   770     f1.setMatchFlags(QContactFilter::MatchContains);
   814     f1.setMatchFlags(QContactFilter::MatchContains);
   771     //Create second filter
   815     //Create second filter
   772     QContactDetailFilter f2;
   816     QContactDetailFilter f2;
   773     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   817     f2.setDetailDefinitionName(QContactEmailAddress::DefinitionName, QContactEmailAddress::FieldEmailAddress);
   853             QString firstName("Micheal");
   897             QString firstName("Micheal");
   854             QString lastName("Jack");
   898             QString lastName("Jack");
   855             QContactLocalId cid = cnt_ids.at( i );    
   899             QContactLocalId cid = cnt_ids.at( i );    
   856             QContact contact = mCntMng->contact( cid );
   900             QContact contact = mCntMng->contact( cid );
   857             QContactName contactName = contact.detail( QContactName::DefinitionName );
   901             QContactName contactName = contact.detail( QContactName::DefinitionName );
   858             QVERIFY( firstName == contactName.value( QContactName::FieldFirst ) );
   902             QVERIFY( firstName == contactName.value( QContactName::FieldFirstName ) );
   859             QVERIFY( lastName == contactName.value( QContactName::FieldLast ) );
   903             QVERIFY( lastName == contactName.value( QContactName::FieldLastName ) );
   860             } 
   904             } 
   861 }
   905 }
   862 
   906 
   863 
   907 
   864 void TestFiltering::testFilterSupported()
   908 void TestFiltering::testFilterSupported()
   914     CntSymbianSrvConnection srvConnection;
   958     CntSymbianSrvConnection srvConnection;
   915     CntDbInfo dbInfo;
   959     CntDbInfo dbInfo;
   916     QString sqlquery;
   960     QString sqlquery;
   917     QContactManager::Error error;
   961     QContactManager::Error error;
   918     CntFilterDetail filterDtl(*m_database,srvConnection,dbInfo);
   962     CntFilterDetail filterDtl(*m_database,srvConnection,dbInfo);
   919     filterDtl.createSelectQuery(f1,sqlquery,error);
   963     filterDtl.createSelectQuery(f1,sqlquery,&error);
   920     QVERIFY(error == QContactManager::NotSupportedError);
   964     QVERIFY(error == QContactManager::NotSupportedError);
   921     
   965     
   922     CntFilterDefault filterDefault(*m_database,srvConnection,dbInfo);
   966     CntFilterDefault filterDefault(*m_database,srvConnection,dbInfo);
   923     filterDefault.createSelectQuery(f1,sqlquery,error);
   967     error = QContactManager::NoError;
       
   968     filterDefault.createSelectQuery(f1,sqlquery,&error);
   924     QVERIFY(error == QContactManager::NotSupportedError);
   969     QVERIFY(error == QContactManager::NotSupportedError);
   925         
   970         
   926     CntFilterChangeLog filterChangeLog(*m_database,srvConnection,dbInfo);
   971     CntFilterChangeLog filterChangeLog(*m_database,srvConnection,dbInfo);
   927     filterChangeLog.createSelectQuery(f1,sqlquery,error);
   972     error = QContactManager::NoError;
       
   973     filterChangeLog.createSelectQuery(f1,sqlquery,&error);
   928     QVERIFY(error == QContactManager::NotSupportedError);
   974     QVERIFY(error == QContactManager::NotSupportedError);
   929     
   975     
   930     CntFilterRelationship filterRlationship(*m_database,srvConnection,dbInfo);
   976     CntFilterRelationship filterRlationship(*m_database,srvConnection,dbInfo);
   931     filterRlationship.createSelectQuery(f1,sqlquery,error);
   977     error = QContactManager::NoError;
       
   978     filterRlationship.createSelectQuery(f1,sqlquery,&error);
   932     QVERIFY(error == QContactManager::NotSupportedError); 
   979     QVERIFY(error == QContactManager::NotSupportedError); 
   933        
   980        
   934 
   981 
   935     CntFilterLocalId filterLocalId(*m_database,srvConnection,dbInfo);
   982     CntFilterLocalId filterLocalId(*m_database,srvConnection,dbInfo);
   936     filterLocalId.createSelectQuery(f1,sqlquery,error);
   983     error = QContactManager::NoError;
       
   984     filterLocalId.createSelectQuery(f1,sqlquery,&error);
   937     QVERIFY(error == QContactManager::NotSupportedError);
   985     QVERIFY(error == QContactManager::NotSupportedError);
   938         
   986         
   939     CntFilterInvalid filterInvalid(*m_database,srvConnection,dbInfo);
   987     CntFilterInvalid filterInvalid(*m_database,srvConnection,dbInfo);
   940     filterInvalid.createSelectQuery(f1,sqlquery,error);
   988     error = QContactManager::NoError;
       
   989     filterInvalid.createSelectQuery(f1,sqlquery,&error);
   941     QVERIFY(error == QContactManager::NotSupportedError);
   990     QVERIFY(error == QContactManager::NotSupportedError);
   942             
   991             
   943     CntFilterAction filterAction(*m_database,srvConnection,dbInfo);
   992     CntFilterAction filterAction(*m_database,srvConnection,dbInfo);
   944     filterAction.createSelectQuery(f1,sqlquery,error);
   993     error = QContactManager::NoError;
       
   994     filterAction.createSelectQuery(f1,sqlquery,&error);
   945     QVERIFY(error == QContactManager::NotSupportedError);
   995     QVERIFY(error == QContactManager::NotSupportedError);
   946                
   996                
   947     CntFilterUnion filterUnion(*m_database,srvConnection,dbInfo);
   997     CntFilterUnion filterUnion(*m_database,srvConnection,dbInfo);
   948     filterUnion.filterSupported(f1);
   998     error = QContactManager::NoError;
       
   999     filterUnion.createSelectQuery(f1,sqlquery,&error);
   949     QVERIFY(error == QContactManager::NotSupportedError);
  1000     QVERIFY(error == QContactManager::NotSupportedError);
   950                
  1001                
   951     CntFilterIntersection filterIntersection(*m_database,srvConnection,dbInfo);
  1002     CntFilterIntersection filterIntersection(*m_database,srvConnection,dbInfo);
   952     filterIntersection.createSelectQuery(f1,sqlquery,error);
  1003     error = QContactManager::NoError;
       
  1004     filterIntersection.createSelectQuery(f1,sqlquery,&error);
   953     QVERIFY(error == QContactManager::NotSupportedError);
  1005     QVERIFY(error == QContactManager::NotSupportedError);
   954     
  1006     
   955     }
  1007     }
   956 //QTEST_MAIN(TestFiltering);
  1008 //QTEST_MAIN(TestFiltering);
   957 /*int main(int argc, char *argv[]) 
  1009 /*int main(int argc, char *argv[])