logsui/logscntfinder/tsrc/st_logscntfinder/src/st_logscntfinder.cpp
changeset 14 f27aebe284bb
parent 11 64a47b97e1e1
child 16 c5af8598d22c
equal deleted inserted replaced
11:64a47b97e1e1 14:f27aebe284bb
    20 
    20 
    21 #include <qtcontacts.h>
    21 #include <qtcontacts.h>
    22 #include <QtTest/QtTest>
    22 #include <QtTest/QtTest>
    23 #include <hbinputsettingproxy.h>
    23 #include <hbinputsettingproxy.h>
    24 
    24 
    25 
    25 #define CHECK_HIGHLIGHTS( index, expected )\
    26 #define CHECK_RESULTS( count, first, last )\
    26         QVERIFY( checkHighlights( index, expected ) )
       
    27 
       
    28 #define CHECK_RESULTS( count, first, last, highlights )\
    27     for(int i=0;i<count; i++ ) {\
    29     for(int i=0;i<count; i++ ) {\
    28         if ( i == 0 ) {\
    30         if ( i == 0 ) {\
    29             QCOMPARE(m_finder->resultAt(0).firstName().at(0).text(), QString(first));\
    31             QCOMPARE(m_finder->resultAt(0).firstName().at(0).text(), QString(first));\
    30             QCOMPARE(m_finder->resultAt(0).lastName().at(0).text(), QString(last));\
    32             QCOMPARE(m_finder->resultAt(0).lastName().at(0).text(), QString(last));\
       
    33             CHECK_HIGHLIGHTS( 0,highlights );\
    31         } else {\
    34         } else {\
    32             m_finder->resultAt(i);\
    35             m_finder->resultAt(i);\
    33         }\
    36         }\
    34     }
    37     }
    35 
    38 
    36         
    39 
       
    40 
       
    41 bool ST_LogsCntFinder::checkHighlights( int index,int expected )
       
    42 {
       
    43     bool foundOne = false;
       
    44     const LogsCntEntry& entry = m_finder->resultAt( index );
       
    45     int ndx = 0;
       
    46     while( !foundOne && ndx < entry.firstName().count() ) {
       
    47         foundOne = entry.firstName().at( ndx++ ).highlights() == expected;
       
    48     }
       
    49     
       
    50     ndx = 0;
       
    51     while( !foundOne && ndx < entry.lastName().count() ) {
       
    52         foundOne = entry.lastName().at( ndx++ ).highlights() == expected;
       
    53     }
       
    54     
       
    55     foundOne = !foundOne ? entry.phoneNumber().highlights() == expected : foundOne;
       
    56     
       
    57     
       
    58     return foundOne;
       
    59 }
       
    60 
       
    61              
    37 void ST_LogsCntFinder::initTestCase()
    62 void ST_LogsCntFinder::initTestCase()
    38 {
    63 {
    39     //open symbian database
    64     //open symbian database
    40     m_manager = new QContactManager("symbian");
    65     m_manager = new QContactManager("symbian");
    41 }
    66 }
   135 
   160 
   136     int contactsCount = m_manager->contactIds().count();
   161     int contactsCount = m_manager->contactIds().count();
   137     QCOMPARE(contactsCount, 18);
   162     QCOMPARE(contactsCount, 18);
   138 }
   163 }
   139 
   164 
   140 void ST_LogsCntFinder::createContactsWithNonMappedChars()
   165 void ST_LogsCntFinder::createContactsWithSpecialChars()
   141 {
   166 {
   142     
   167     
   143     createOneContact( QString("Hannu%"), QString(""), QString("932472398") );
   168     createOneContact( QString("Hannu%"), QString(""), QString("932472398") );
   144     createOneContact( QString("%Hannu"), QString(""), QString("932472398") );
   169     createOneContact( QString("%Hannu"), QString(""), QString("932472398") );
   145     
   170     
   367     createContacts();
   392     createContacts();
   368 
   393 
   369     m_finder->predictiveSearchQuery( QString("5") );
   394     m_finder->predictiveSearchQuery( QString("5") );
   370     QCOMPARE( m_finder->resultsCount(), 5 );
   395     QCOMPARE( m_finder->resultsCount(), 5 );
   371     //see half of matched results
   396     //see half of matched results
   372     CHECK_RESULTS( 3, "Jonn", "Ennon" );
   397     CHECK_RESULTS( 3, "Jonn", "Ennon", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   373     
   398     
   374     m_finder->predictiveSearchQuery( QString("56") );
   399     m_finder->predictiveSearchQuery( QString("56") );
   375     QCOMPARE( m_finder->resultsCount(), 2 );
   400     QCOMPARE( m_finder->resultsCount(), 2 );
   376     //see half of matched results
   401     //see half of matched results
   377     CHECK_RESULTS( 1, "Jonn", "Ennon" );
   402     CHECK_RESULTS( 1, "Jonn", "Ennon", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   378     
   403     
   379     m_finder->predictiveSearchQuery( QString("5") );
   404     m_finder->predictiveSearchQuery( QString("5") );
   380     QCOMPARE( m_finder->resultsCount(), 5 );
   405     QCOMPARE( m_finder->resultsCount(), 5 );
   381     CHECK_RESULTS( 3, "Jonn", "Ennon" );
   406     CHECK_RESULTS( 3, "Jonn", "Ennon", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   382 
   407 
   383     m_finder->predictiveSearchQuery( QString("56") );
   408     m_finder->predictiveSearchQuery( QString("56") );
   384     QCOMPARE( m_finder->resultsCount(), 2 );
   409     QCOMPARE( m_finder->resultsCount(), 2 );
   385     //see half of matched results
   410     //see half of matched results
   386     CHECK_RESULTS( 1, "Jonn", "Ennon" );
   411     CHECK_RESULTS( 1, "Jonn", "Ennon", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   387     
   412     
   388 }
   413 }
   389 
   414 
   390 // 5 -> 56 -> 5 -> 56   (all cached)
   415 // 5 -> 56 -> 5 -> 56   (all cached)
   391 void ST_LogsCntFinder::testPredictiveSearchQueryFullyCached()
   416 void ST_LogsCntFinder::testPredictiveSearchQueryFullyCached()
   394 
   419 
   395     //case 1
   420     //case 1
   396     m_finder->predictiveSearchQuery( QString("5") );
   421     m_finder->predictiveSearchQuery( QString("5") );
   397     QCOMPARE( m_finder->resultsCount(), 5 );
   422     QCOMPARE( m_finder->resultsCount(), 5 );
   398     //see all matched results
   423     //see all matched results
   399     CHECK_RESULTS( 5, "Jonn", "Ennon" );
   424     CHECK_RESULTS( 5, "Jonn", "Ennon", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   400     
   425     
   401     m_finder->predictiveSearchQuery( QString("56") );
   426     m_finder->predictiveSearchQuery( QString("56") );
   402     QCOMPARE( m_finder->resultsCount(), 2 );
   427     QCOMPARE( m_finder->resultsCount(), 2 );
   403     //see all of matched results
   428     //see all of matched results
   404     CHECK_RESULTS( 2, "Jonn", "Ennon" );
   429     CHECK_RESULTS( 2, "Jonn", "Ennon", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   405     
   430     
   406     m_finder->predictiveSearchQuery( QString("5") );
   431     m_finder->predictiveSearchQuery( QString("5") );
   407     QCOMPARE( m_finder->resultsCount(), 5 );
   432     QCOMPARE( m_finder->resultsCount(), 5 );
   408     //see all of matched results
   433     //see all of matched results
   409     CHECK_RESULTS( 5, "Jonn", "Ennon" );
   434     CHECK_RESULTS( 5, "Jonn", "Ennon", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   410 
   435 
   411     m_finder->predictiveSearchQuery( QString("56") );
   436     m_finder->predictiveSearchQuery( QString("56") );
   412     QCOMPARE( m_finder->resultsCount(), 2 );
   437     QCOMPARE( m_finder->resultsCount(), 2 );
   413     //see all of matched results
   438     //see all of matched results
   414     CHECK_RESULTS( 2, "Jonn", "Ennon" );
   439     CHECK_RESULTS( 2, "Jonn", "Ennon", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   415     
   440     
   416 }
   441 }
   417 
   442 
   418 // 6 -> 69 (no match) -> 692 (no match) -> 69 (no match) -> 6 -> 69    (not all cached)
   443 // 6 -> 69 (no match) -> 692 (no match) -> 69 (no match) -> 6 -> 69    (not all cached)
   419 void ST_LogsCntFinder::testPredictiveSearchQueryPartialCachedNoResults()
   444 void ST_LogsCntFinder::testPredictiveSearchQueryPartialCachedNoResults()
   421     createContacts();
   446     createContacts();
   422 		
   447 		
   423     m_finder->predictiveSearchQuery( QString("6") );
   448     m_finder->predictiveSearchQuery( QString("6") );
   424     QCOMPARE( m_finder->resultsCount(), 3 );
   449     QCOMPARE( m_finder->resultsCount(), 3 );
   425     //see half of matched results
   450     //see half of matched results
   426     CHECK_RESULTS( 2, "Maria-Zola", "Jones" );
   451     CHECK_RESULTS( 2, "Maria-Zola", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   427     
   452     
   428     m_finder->predictiveSearchQuery( QString("69") );
   453     m_finder->predictiveSearchQuery( QString("69") );
   429     QCOMPARE( m_finder->resultsCount(), 0 );
   454     QCOMPARE( m_finder->resultsCount(), 0 );
   430     m_finder->predictiveSearchQuery( QString("692") );
   455     m_finder->predictiveSearchQuery( QString("692") );
   431     QCOMPARE( m_finder->resultsCount(), 0 );
   456     QCOMPARE( m_finder->resultsCount(), 0 );
   433     QCOMPARE( m_finder->resultsCount(), 0 );
   458     QCOMPARE( m_finder->resultsCount(), 0 );
   434     
   459     
   435     m_finder->predictiveSearchQuery( QString("6") );
   460     m_finder->predictiveSearchQuery( QString("6") );
   436     QCOMPARE( m_finder->resultsCount(), 3 );
   461     QCOMPARE( m_finder->resultsCount(), 3 );
   437     //see half of matched results
   462     //see half of matched results
   438     CHECK_RESULTS( 2, "Maria-Zola", "Jones" );
   463     CHECK_RESULTS( 2, "Maria-Zola", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   439     
   464     
   440     m_finder->predictiveSearchQuery( QString("69") );
   465     m_finder->predictiveSearchQuery( QString("69") );
   441     QCOMPARE( m_finder->resultsCount(), 0 );
   466     QCOMPARE( m_finder->resultsCount(), 0 );
   442     
   467     
   443 }
   468 }
   448     createContacts();
   473     createContacts();
   449                 
   474                 
   450     m_finder->predictiveSearchQuery( QString("6") );
   475     m_finder->predictiveSearchQuery( QString("6") );
   451     QCOMPARE( m_finder->resultsCount(), 3 );
   476     QCOMPARE( m_finder->resultsCount(), 3 );
   452     //see all of matched results
   477     //see all of matched results
   453     CHECK_RESULTS( 3, "Maria-Zola", "Jones" );
   478     CHECK_RESULTS( 3, "Maria-Zola", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   454     
   479     
   455     m_finder->predictiveSearchQuery( QString("69") );
   480     m_finder->predictiveSearchQuery( QString("69") );
   456     QCOMPARE( m_finder->resultsCount(), 0 );
   481     QCOMPARE( m_finder->resultsCount(), 0 );
   457     m_finder->predictiveSearchQuery( QString("692") );
   482     m_finder->predictiveSearchQuery( QString("692") );
   458     QCOMPARE( m_finder->resultsCount(), 0 );
   483     QCOMPARE( m_finder->resultsCount(), 0 );
   460     QCOMPARE( m_finder->resultsCount(), 0 );
   485     QCOMPARE( m_finder->resultsCount(), 0 );
   461     
   486     
   462     m_finder->predictiveSearchQuery( QString("6") );
   487     m_finder->predictiveSearchQuery( QString("6") );
   463     QCOMPARE( m_finder->resultsCount(), 3 );
   488     QCOMPARE( m_finder->resultsCount(), 3 );
   464     //see all of matched results
   489     //see all of matched results
   465     CHECK_RESULTS( 3, "Maria-Zola", "Jones" );
   490     CHECK_RESULTS( 3, "Maria-Zola", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights
   466     
   491     
   467     m_finder->predictiveSearchQuery( QString("69") );
   492     m_finder->predictiveSearchQuery( QString("69") );
   468     QCOMPARE( m_finder->resultsCount(), 0 );
   493     QCOMPARE( m_finder->resultsCount(), 0 );
   469     
   494     
   470     
   495     
   475 {
   500 {
   476     createContacts();
   501     createContacts();
   477     
   502     
   478     m_finder->predictiveSearchQuery( QString("2") );//db
   503     m_finder->predictiveSearchQuery( QString("2") );//db
   479     QCOMPARE( m_finder->resultsCount(), 3 );
   504     QCOMPARE( m_finder->resultsCount(), 3 );
   480     CHECK_RESULTS( 2, "Levis", "Augustin" );//Augustin Zi
   505     //Augustin Zi
       
   506     CHECK_RESULTS( 2, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   481 
   507 
   482     m_finder->predictiveSearchQuery( QString("20") );//db
   508     m_finder->predictiveSearchQuery( QString("20") );//db
   483     QCOMPARE( m_finder->resultsCount(), 3 );
   509     QCOMPARE( m_finder->resultsCount(), 3 );
   484     CHECK_RESULTS( 2, "Levis", "Augustin" );//Augustin Zi
   510     //Augustin Zi
       
   511     CHECK_RESULTS( 2, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   512 
   485     
   513     
   486     m_finder->predictiveSearchQuery( QString("209") );//db
   514     m_finder->predictiveSearchQuery( QString("209") );//db
   487     QCOMPARE( m_finder->resultsCount(), 1 );
   515     QCOMPARE( m_finder->resultsCount(), 1 );
   488     CHECK_RESULTS( 1, "Levis", "Augustin" ); //Augustin Zi
   516     //Augustin Zi
       
   517     CHECK_RESULTS( 1, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   518 
   489     
   519     
   490     m_finder->predictiveSearchQuery( QString("20") );//db
   520     m_finder->predictiveSearchQuery( QString("20") );//db
   491     QCOMPARE( m_finder->resultsCount(), 3 );
   521     QCOMPARE( m_finder->resultsCount(), 3 );
   492     CHECK_RESULTS( 2, "Levis", "Augustin" );//Augustin Zi
   522     //Augustin Zi
       
   523     CHECK_RESULTS( 2, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   493     
   524     
   494     m_finder->predictiveSearchQuery( QString("2") );//db
   525     m_finder->predictiveSearchQuery( QString("2") );//db
   495     QCOMPARE( m_finder->resultsCount(), 3 );
   526     QCOMPARE( m_finder->resultsCount(), 3 );
   496     CHECK_RESULTS( 2, "Levis", "Augustin" );//Augustin Zi
   527     //Augustin Zi
       
   528     CHECK_RESULTS( 2, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   529 
   497        
   530        
   498 }
   531 }
   499 
   532 
   500 // 
   533 // 
   501 void ST_LogsCntFinder::testPredictiveSearchQueryFullyCachedZerosCase()
   534 void ST_LogsCntFinder::testPredictiveSearchQueryFullyCachedZerosCase()
   502 {
   535 {
   503     createContacts();
   536     createContacts();
   504     
   537     
   505     m_finder->predictiveSearchQuery( QString("2") ); //db
   538     m_finder->predictiveSearchQuery( QString("2") ); //db
   506     QCOMPARE( m_finder->resultsCount(), 3 );
   539     QCOMPARE( m_finder->resultsCount(), 3 );
   507     CHECK_RESULTS( 3, "Levis", "Augustin" );//Augustin Zi
   540     CHECK_RESULTS( 3, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   508 
   541 
   509     m_finder->predictiveSearchQuery( QString("20") );//cache
   542     m_finder->predictiveSearchQuery( QString("20") );//cache
   510     QCOMPARE( m_finder->resultsCount(), 3 );
   543     QCOMPARE( m_finder->resultsCount(), 3 );
   511     CHECK_RESULTS( 3, "Levis", "Augustin" );//Augustin Zi
   544     CHECK_RESULTS( 3, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   512     
   545     
   513     m_finder->predictiveSearchQuery( QString("200") );//cache
   546     m_finder->predictiveSearchQuery( QString("200") );//cache
   514     QCOMPARE( m_finder->resultsCount(), 3 );
   547     QCOMPARE( m_finder->resultsCount(), 3 );
   515     CHECK_RESULTS( 3, "Levis", "Augustin" );//Augustin Zi
   548     CHECK_RESULTS( 3, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   516     
   549     
   517     m_finder->predictiveSearchQuery( QString("2009") );//cache
   550     m_finder->predictiveSearchQuery( QString("2009") );//cache
   518     QCOMPARE( m_finder->resultsCount(), 1 );
   551     QCOMPARE( m_finder->resultsCount(), 1 );
   519     CHECK_RESULTS( 1, "Levis", "Augustin" ); //Augustin Zi
   552     CHECK_RESULTS( 1, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   520     
   553     
   521     m_finder->predictiveSearchQuery( QString("200") );//db
   554     m_finder->predictiveSearchQuery( QString("200") );//db
   522     QCOMPARE( m_finder->resultsCount(), 3 );
   555     QCOMPARE( m_finder->resultsCount(), 3 );
   523     CHECK_RESULTS( 3, "Levis", "Augustin" );//Augustin Zi
   556     CHECK_RESULTS( 3, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   524     
   557     
   525     m_finder->predictiveSearchQuery( QString("20") );//db
   558     m_finder->predictiveSearchQuery( QString("20") );//db
   526     QCOMPARE( m_finder->resultsCount(), 3 );
   559     QCOMPARE( m_finder->resultsCount(), 3 );
   527     CHECK_RESULTS( 3, "Levis", "Augustin" );//Augustin Zi
   560     CHECK_RESULTS( 3, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   528     
   561     
   529     m_finder->predictiveSearchQuery( QString("2") );//db
   562     m_finder->predictiveSearchQuery( QString("2") );//db
   530     QCOMPARE( m_finder->resultsCount(), 3 );
   563     QCOMPARE( m_finder->resultsCount(), 3 );
   531     CHECK_RESULTS( 3, "Levis", "Augustin" );//Augustin Zi
   564     CHECK_RESULTS( 3, "Levis", "Augustin", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   532        
   565        
   533 }
   566 }
   534 
   567 
   535 //There is recent call in logs, no contacts DB
   568 //There is recent call in logs, no contacts DB
   536 void ST_LogsCntFinder::testPredictiveSearchQueryLogs()
   569 void ST_LogsCntFinder::testPredictiveSearchQueryLogs()
   537 {
   570 {
   538     createHistoryEvents();
   571     createHistoryEvents();
   539 
   572 
   540     m_finder->predictiveSearchQuery( QString("5") );
   573     m_finder->predictiveSearchQuery( QString("5") );
   541     QCOMPARE( m_finder->resultsCount(), 2 );
   574     QCOMPARE( m_finder->resultsCount(), 2 );
   542     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   575     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   543 
   576 
   544     m_finder->predictiveSearchQuery( QString("53") );
   577     m_finder->predictiveSearchQuery( QString("53") );
   545     QCOMPARE( m_finder->resultsCount(), 1 );
   578     QCOMPARE( m_finder->resultsCount(), 1 );
   546     CHECK_RESULTS( 1, "Jonn", "Lennon" );
   579     CHECK_RESULTS( 1, "Jonn", "Lennon", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   547     
   580     
   548     m_finder->predictiveSearchQuery( QString("539") );
   581     m_finder->predictiveSearchQuery( QString("539") );
   549     QCOMPARE( m_finder->resultsCount(), 0 );
   582     QCOMPARE( m_finder->resultsCount(), 0 );
   550 
   583 
   551     m_finder->predictiveSearchQuery( QString("53") );
   584     m_finder->predictiveSearchQuery( QString("53") );
   552     QCOMPARE( m_finder->resultsCount(), 1 );
   585     QCOMPARE( m_finder->resultsCount(), 1 );
   553     CHECK_RESULTS( 1, "Jonn", "Lennon" );
   586     CHECK_RESULTS( 1, "Jonn", "Lennon", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   554     
   587     
   555     m_finder->predictiveSearchQuery( QString("5") );
   588     m_finder->predictiveSearchQuery( QString("5") );
   556     QCOMPARE( m_finder->resultsCount(), 2 );
   589     QCOMPARE( m_finder->resultsCount(), 2 );
   557     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   590     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   558 
   591 
   559     m_finder->predictiveSearchQuery( QString("5") );
   592     m_finder->predictiveSearchQuery( QString("5") );
   560     QCOMPARE( m_finder->resultsCount(), 2 );
   593     QCOMPARE( m_finder->resultsCount(), 2 );
   561     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   594     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   562 }
   595 }
   563 
   596 
   564 void ST_LogsCntFinder::testPredictiveSearchQueryLogsZeroCase()
   597 void ST_LogsCntFinder::testPredictiveSearchQueryLogsZeroCase()
   565 {
   598 {
   566     createHistoryEvents();
   599     createHistoryEvents();
   567     
   600     
   568     m_finder->predictiveSearchQuery( QString("5") );
   601     m_finder->predictiveSearchQuery( QString("5") );
   569     QCOMPARE( m_finder->resultsCount(), 2 );
   602     QCOMPARE( m_finder->resultsCount(), 2 );
   570     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   603     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   571 
   604 
   572     m_finder->predictiveSearchQuery( QString("50") );
   605     m_finder->predictiveSearchQuery( QString("50") );
   573     QCOMPARE( m_finder->resultsCount(), 2 );
   606     QCOMPARE( m_finder->resultsCount(), 2 );
   574     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   607     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   575     
   608     
   576     m_finder->predictiveSearchQuery( QString("503") );
   609     m_finder->predictiveSearchQuery( QString("503") );
   577     QCOMPARE( m_finder->resultsCount(), 1 );
   610     QCOMPARE( m_finder->resultsCount(), 1 );
   578     CHECK_RESULTS( 1, "Dim-Petter", "Jones" );
   611     CHECK_RESULTS( 1, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   579     
   612     
   580     m_finder->predictiveSearchQuery( QString("50") );
   613     m_finder->predictiveSearchQuery( QString("50") );
   581     QCOMPARE( m_finder->resultsCount(), 2 );
   614     QCOMPARE( m_finder->resultsCount(), 2 );
   582     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   615     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   583     
   616     
   584     m_finder->predictiveSearchQuery( QString("5") );
   617     m_finder->predictiveSearchQuery( QString("5") );
   585     QCOMPARE( m_finder->resultsCount(), 2 );
   618     QCOMPARE( m_finder->resultsCount(), 2 );
   586     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   619     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   587         
   620         
   588 }
   621 }
   589 
   622 
   590 //There is recent call in logs, and contacts DB
   623 //There is recent call in logs, and contacts DB
   591 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsPartialCached()
   624 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsPartialCached()
   593     createHistoryEvents();
   626     createHistoryEvents();
   594     createContacts();
   627     createContacts();
   595 
   628 
   596     m_finder->predictiveSearchQuery( QString("5") );
   629     m_finder->predictiveSearchQuery( QString("5") );
   597     QCOMPARE( m_finder->resultsCount(), 7 );
   630     QCOMPARE( m_finder->resultsCount(), 7 );
   598     CHECK_RESULTS( 5, "Dim-Petter", "Jones" );
   631     CHECK_RESULTS( 5, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   599     
   632     
   600     m_finder->predictiveSearchQuery( QString("56") );
   633     m_finder->predictiveSearchQuery( QString("56") );
   601     QCOMPARE( m_finder->resultsCount(), 4 );
   634     QCOMPARE( m_finder->resultsCount(), 4 );
   602     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   635     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   603     
   636     
   604     m_finder->predictiveSearchQuery( QString("569") );
   637     m_finder->predictiveSearchQuery( QString("569") );
   605     QCOMPARE( m_finder->resultsCount(), 0 );
   638     QCOMPARE( m_finder->resultsCount(), 0 );
   606     
   639     
   607     m_finder->predictiveSearchQuery( QString("56") );
   640     m_finder->predictiveSearchQuery( QString("56") );
   608     QCOMPARE( m_finder->resultsCount(), 4 );
   641     QCOMPARE( m_finder->resultsCount(), 4 );
   609     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   642     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   610     
   643     
   611     m_finder->predictiveSearchQuery( QString("5") );
   644     m_finder->predictiveSearchQuery( QString("5") );
   612     QCOMPARE( m_finder->resultsCount(), 7 );
   645     QCOMPARE( m_finder->resultsCount(), 7 );
   613     CHECK_RESULTS( 5, "Dim-Petter", "Jones" );
   646     CHECK_RESULTS( 5, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   614     
   647     
   615     
   648     
   616 }
   649 }
   617 
   650 
   618 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsFullyCached()
   651 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsFullyCached()
   620     createHistoryEvents();
   653     createHistoryEvents();
   621     createContacts();
   654     createContacts();
   622 
   655 
   623     m_finder->predictiveSearchQuery( QString("5") );
   656     m_finder->predictiveSearchQuery( QString("5") );
   624     QCOMPARE( m_finder->resultsCount(), 7 );
   657     QCOMPARE( m_finder->resultsCount(), 7 );
   625     CHECK_RESULTS( 7, "Dim-Petter", "Jones" );
   658     CHECK_RESULTS( 7, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   626     
   659     
   627     m_finder->predictiveSearchQuery( QString("56") );
   660     m_finder->predictiveSearchQuery( QString("56") );
   628     QCOMPARE( m_finder->resultsCount(), 4 );
   661     QCOMPARE( m_finder->resultsCount(), 4 );
   629     CHECK_RESULTS( 4, "Dim-Petter", "Jones" );
   662     CHECK_RESULTS( 4, "Dim-Petter", "Jones", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   630     
   663     
   631     m_finder->predictiveSearchQuery( QString("569") );
   664     m_finder->predictiveSearchQuery( QString("569") );
   632     QCOMPARE( m_finder->resultsCount(), 0 );
   665     QCOMPARE( m_finder->resultsCount(), 0 );
   633     
   666     
   634     m_finder->predictiveSearchQuery( QString("56") );
   667     m_finder->predictiveSearchQuery( QString("56") );
   635     QCOMPARE( m_finder->resultsCount(), 4 );
   668     QCOMPARE( m_finder->resultsCount(), 4 );
   636     CHECK_RESULTS( 4, "Dim-Petter", "Jones" );
   669     CHECK_RESULTS( 4, "Dim-Petter", "Jones", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   637     
   670     
   638     m_finder->predictiveSearchQuery( QString("5") );
   671     m_finder->predictiveSearchQuery( QString("5") );
   639     QCOMPARE( m_finder->resultsCount(), 7 );
   672     QCOMPARE( m_finder->resultsCount(), 7 );
   640     CHECK_RESULTS( 7, "Dim-Petter", "Jones" );
   673     CHECK_RESULTS( 7, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   641     
   674     
   642 }
   675 }
   643 
   676 
   644 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsZeroCase()
   677 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsZeroCase()
   645 {
   678 {
   646     createHistoryEvents();
   679     createHistoryEvents();
   647     createContacts();
   680     createContacts();
   648 
   681 
   649     m_finder->predictiveSearchQuery( QString("5") );
   682     m_finder->predictiveSearchQuery( QString("5") );
   650     QCOMPARE( m_finder->resultsCount(), 7 );
   683     QCOMPARE( m_finder->resultsCount(), 7 );
   651     CHECK_RESULTS( 5, "Dim-Petter", "Jones" );
   684     CHECK_RESULTS( 5, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   652 
   685 
   653     m_finder->predictiveSearchQuery( QString("50") );
   686     m_finder->predictiveSearchQuery( QString("50") );
   654     QCOMPARE( m_finder->resultsCount(), 7 );
   687     QCOMPARE( m_finder->resultsCount(), 7 );
   655     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   688     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   656     
   689     
   657     m_finder->predictiveSearchQuery( QString("503") );
   690     m_finder->predictiveSearchQuery( QString("503") );
   658     QCOMPARE( m_finder->resultsCount(), 2 );
   691     QCOMPARE( m_finder->resultsCount(), 2 );
   659     CHECK_RESULTS( 2, "Dim-Petter", "Jones" );
   692     CHECK_RESULTS( 2, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   660     
   693     
   661     m_finder->predictiveSearchQuery( QString("50") );
   694     m_finder->predictiveSearchQuery( QString("50") );
   662     QCOMPARE( m_finder->resultsCount(), 7 );
   695     QCOMPARE( m_finder->resultsCount(), 7 );
   663     CHECK_RESULTS( 5, "Dim-Petter", "Jones" );
   696     CHECK_RESULTS( 5, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   664 
   697 
   665     m_finder->predictiveSearchQuery( QString("5") );
   698     m_finder->predictiveSearchQuery( QString("5") );
   666     QCOMPARE( m_finder->resultsCount(), 7 );
   699     QCOMPARE( m_finder->resultsCount(), 7 );
   667     CHECK_RESULTS( 5, "Dim-Petter", "Jones" );
   700     CHECK_RESULTS( 5, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   668     
   701     
   669 }
   702 }
   670 
   703 
   671 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsPhoneNumberMatch()
   704 void ST_LogsCntFinder::testPredictiveSearchQueryLogsContactsPhoneNumberMatch()
   672 {
   705 {
   673     createHistoryEvents();
   706     createHistoryEvents();
   674     createContacts();
   707     createContacts();
   675 
   708 
   676     m_finder->predictiveSearchQuery( QString("9") );
   709     m_finder->predictiveSearchQuery( QString("9") );
   677     QCOMPARE( m_finder->resultsCount(), 6 ); //3 history + 3 contacts
   710     QCOMPARE( m_finder->resultsCount(), 6 ); //3 history + 3 contacts
   678     CHECK_RESULTS( 5, "Dim-Petter", "Jones" );
   711     CHECK_RESULTS( 5, "Dim-Petter", "Jones", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   679 
   712 
   680     m_finder->predictiveSearchQuery( QString("93") );
   713     m_finder->predictiveSearchQuery( QString("93") );
   681     QCOMPARE( m_finder->resultsCount(), 3 );
   714     QCOMPARE( m_finder->resultsCount(), 3 );
   682     CHECK_RESULTS( 1, "Dim-Petter", "Jones" );
   715     CHECK_RESULTS( 1, "Dim-Petter", "Jones", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   683     
   716     
   684 }
   717 }
   685 
   718 
   686 
   719 
   687 // Test query limit is 15, the 16th digit is ignored
   720 // Test query limit is 15, the 16th digit is ignored
   748 
   781 
   749     QCOMPARE(m_finder->resultAt(7).firstName().at(0).text(), QString("Stefann"));
   782     QCOMPARE(m_finder->resultAt(7).firstName().at(0).text(), QString("Stefann"));
   750     QCOMPARE(m_finder->resultAt(7).lastName().at(0).text(), QString("Yadira"));
   783     QCOMPARE(m_finder->resultAt(7).lastName().at(0).text(), QString("Yadira"));
   751 }
   784 }
   752 
   785 
   753 void ST_LogsCntFinder::testContactWithNonMappedChars()
   786 void ST_LogsCntFinder::testContactWithSpecialChars()
   754 {
   787 {
   755     //Hannu%
   788     //Hannu%
   756     //%Hannu
   789     //%Hannu
   757     createContactsWithNonMappedChars();
   790     createContactsWithSpecialChars();
   758     
   791     
   759     m_finder->predictiveSearchQuery( QString("4") );
   792     m_finder->predictiveSearchQuery( QString("4") );
   760     QCOMPARE( m_finder->resultsCount(), 1 );//Hannu%
   793     QCOMPARE( m_finder->resultsCount(), 1 );
   761     QCOMPARE(m_finder->resultAt(0).firstName().at(0).text(), QString("Hannu%"));
   794     CHECK_RESULTS( 1, "Hannu%", "", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   762 
   795     
   763     m_finder->predictiveSearchQuery( QString("42") );//all cached
       
   764     QCOMPARE( m_finder->resultsCount(), 1 );//Hannu%
       
   765     QCOMPARE(m_finder->resultAt(0).firstName().at(0).text(), QString("Hannu%"));
       
   766 
       
   767     m_finder->predictiveSearchQuery( QString("") );//empty cache
       
   768     m_finder->predictiveSearchQuery( QString("42") );
   796     m_finder->predictiveSearchQuery( QString("42") );
   769     QCOMPARE( m_finder->resultsCount(), 1 );//Hannu%
   797     QCOMPARE( m_finder->resultsCount(), 1 );
   770     QCOMPARE(m_finder->resultAt(0).firstName().at(0).text(), QString("Hannu%"));
   798     CHECK_RESULTS( 1, "Hannu%", "", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
   771     
   799     
   772 }
   800     m_finder->predictiveSearchQuery( QString("4") );
   773 
   801     QCOMPARE( m_finder->resultsCount(), 1 );
       
   802     CHECK_RESULTS( 1, "Hannu%", "", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   803     
       
   804     m_finder->predictiveSearchQuery( QString("") );
       
   805     QCOMPARE( m_finder->resultsCount(), 0 );
       
   806     
       
   807     m_finder->predictiveSearchQuery( QString("1") );
       
   808     QCOMPARE( m_finder->resultsCount(), 1 );
       
   809     CHECK_RESULTS( 1, "%Hannu", "", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   810     
       
   811     m_finder->predictiveSearchQuery( QString("14") );
       
   812     QCOMPARE( m_finder->resultsCount(), 1 );
       
   813     CHECK_RESULTS( 1, "%Hannu", "", 2 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   814     
       
   815     m_finder->predictiveSearchQuery( QString("1") );
       
   816     QCOMPARE( m_finder->resultsCount(), 1 );
       
   817     CHECK_RESULTS( 1, "%Hannu", "", 1 ); //SET: cache size, CHECK: 1. result fn, 1. result ln, highlights 
       
   818     
       
   819     
       
   820 }
       
   821