logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsdbconnector.cpp
changeset 17 90fe74753f71
parent 15 76d2cf7a585e
equal deleted inserted replaced
15:76d2cf7a585e 17:90fe74753f71
    18 #include "logsdbconnector.h"
    18 #include "logsdbconnector.h"
    19 #include "logsevent.h"
    19 #include "logsevent.h"
    20 #include "logsmodel.h"
    20 #include "logsmodel.h"
    21 #include "logsreader.h"
    21 #include "logsreader.h"
    22 #include "logscommondata.h"
    22 #include "logscommondata.h"
    23 #include "centralrepository_stub_helper.h"
    23 #include "logsremove.h"
       
    24 #include <xqsettingsmanager.h>
    24 
    25 
    25 #include <QtTest/QtTest>
    26 #include <QtTest/QtTest>
    26 
    27 
    27 Q_DECLARE_METATYPE(QList<int>)
    28 Q_DECLARE_METATYPE(QList<int>)
    28 
    29 
    90     QVERIFY( mDbConnector->mLogEventStrings.iFetched.length() > 0 );
    91     QVERIFY( mDbConnector->mLogEventStrings.iFetched.length() > 0 );
    91     QVERIFY( !mDbConnector->mCompressionEnabled );
    92     QVERIFY( !mDbConnector->mCompressionEnabled );
    92     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
    93     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
    93     
    94     
    94     // Resource control enabled
    95     // Resource control enabled
    95     CentralRepositoryStubHelper::setCurrentVal(logsDefaultMatchLength + 2);
    96     XQSettingsManager::mCurrentVal = logsDefaultMatchLength + 2;
    96     LogsDbConnector* connector = new LogsDbConnector(mEvents, false, true);
    97     LogsDbConnector* connector = new LogsDbConnector(mEvents, false, true);
    97     QVERIFY( connector->init() == 0 );
    98     QVERIFY( connector->init() == 0 );
    98     QVERIFY( connector->mReader );
    99     QVERIFY( connector->mReader );
    99     QVERIFY( connector->mLogsRemove );
   100     QVERIFY( connector->mLogsRemove );
   100     QVERIFY( connector->mCompressionEnabled );
   101     QVERIFY( connector->mCompressionEnabled );
   101     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeCompressEnabled );
   102     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeCompressEnabled );
   102     QCOMPARE( LogsCommonData::getInstance().telNumMatchLen(), logsDefaultMatchLength + 2 );
   103     QCOMPARE( LogsCommonData::getInstance().telNumMatchLen(), logsDefaultMatchLength + 2 );
   103     delete connector;
   104     delete connector;
       
   105     LogsCommonData::getInstance().freeCommonData();
   104     
   106     
   105     // Match len not found, default is used
   107     // Match len not found, default is used
   106     CentralRepositoryStubHelper::setCurrentVal(logsDefaultMatchLength + 2);
   108     XQSettingsManager::mCurrentVal = logsDefaultMatchLength + 2;
   107     CentralRepositoryStubHelper::setFailCode( -1 );
   109     XQSettingsManager::mFailed = true;
   108     connector = new LogsDbConnector(mEvents);
   110     connector = new LogsDbConnector(mEvents);
   109     QVERIFY( connector->init() == 0 );
   111     QVERIFY( connector->init() == 0 );
   110     QVERIFY( connector->mReader );
   112     QVERIFY( connector->mReader );
   111     QVERIFY( connector->mLogsRemove );
   113     QVERIFY( connector->mLogsRemove );
   112     QCOMPARE( LogsCommonData::getInstance().telNumMatchLen(), logsDefaultMatchLength );
   114     QCOMPARE( LogsCommonData::getInstance().telNumMatchLen(), logsDefaultMatchLength );
   348     QVERIFY( spyUpdated.count() == 1 );
   350     QVERIFY( spyUpdated.count() == 1 );
   349     QVERIFY( spyReset.count() == 1 );
   351     QVERIFY( spyReset.count() == 1 );
   350     QVERIFY( mDbConnector->mEvents.count() == 1 );
   352     QVERIFY( mDbConnector->mEvents.count() == 1 );
   351     QVERIFY( mEvents.count() == 1 );
   353     QVERIFY( mEvents.count() == 1 );
   352 
   354 
   353     // Read completed when compression is enabled, reader is not stopped
   355     // Read completed when compression is enabled, reader is stopped
   354     QVERIFY( mDbConnector->init() == 0 );
   356     QVERIFY( mDbConnector->init() == 0 );
   355     QVERIFY( mDbConnector->start() == 0 );
   357     QVERIFY( mDbConnector->start() == 0 );
   356     QVERIFY( mDbConnector->mReader->mLogViewRecent != 0 );
   358     QVERIFY( mDbConnector->mReader->mLogViewRecent != 0 );
   357     mDbConnector->mCompressionEnabled = true;
   359     mDbConnector->mCompressionEnabled = true;
   358     mDbConnector->readCompleted();
   360     mDbConnector->readCompleted();
   359     QVERIFY( mDbConnector->mReader->mLogViewRecent != 0 );
   361     QVERIFY( !mDbConnector->mReader->mLogViewRecent );
       
   362     QVERIFY( !mDbConnector->mLogsRemove );
   360 }
   363 }
   361 
   364 
   362 void UT_LogsDbConnector::testErrorOccurred()
   365 void UT_LogsDbConnector::testErrorOccurred()
   363 {
   366 {
   364     // If pending event modifying, completion is signaled
   367     // If pending event modifying, completion is signaled
   383     LOGS_TEST_CREATE_EVENT(event, 0, LogsEvent::EventUpdated );
   386     LOGS_TEST_CREATE_EVENT(event, 0, LogsEvent::EventUpdated );
   384     QVERIFY( mDbConnector->updateDetails(false) == 0 );
   387     QVERIFY( mDbConnector->updateDetails(false) == 0 );
   385     QVERIFY( spyUpdated.count() == 0 ); // Will happen asynchronously
   388     QVERIFY( spyUpdated.count() == 0 ); // Will happen asynchronously
   386 }
   389 }
   387 
   390 
   388 void UT_LogsDbConnector::testClearMissedCallsCounter()
       
   389 {
       
   390     // Not ready
       
   391     QVERIFY( mDbConnector->clearMissedCallsCounter() != 0 );
       
   392     
       
   393     // Ready and value is changed
       
   394     mDbConnector->init();
       
   395     CentralRepositoryStubHelper::reset();
       
   396     CentralRepositoryStubHelper::setCurrentVal(5);
       
   397     QVERIFY( mDbConnector->clearMissedCallsCounter() == 0 );
       
   398     QVERIFY( CentralRepositoryStubHelper::currentVal() == 0 );
       
   399     
       
   400     // Ready and no need to change value as it is already zero
       
   401     QVERIFY( mDbConnector->clearMissedCallsCounter() == 0 );
       
   402     QVERIFY( CentralRepositoryStubHelper::currentVal() == 0 );
       
   403     
       
   404     // Fails with some error
       
   405     CentralRepositoryStubHelper::setCurrentVal(100);
       
   406     CentralRepositoryStubHelper::setFailCode(KErrNotFound);
       
   407     QVERIFY( mDbConnector->clearMissedCallsCounter() != 0 );
       
   408 }
       
   409 
       
   410 void UT_LogsDbConnector::testRefreshData()
   391 void UT_LogsDbConnector::testRefreshData()
   411 {
   392 {
   412     QVERIFY( mDbConnector->refreshData() != 0 );
   393     QVERIFY( mDbConnector->refreshData() != 0 );
   413     
   394     
   414     // Resource control enabled, no reader
   395     // Resource control enabled, no reader
   421     QVERIFY( mDbConnector->refreshData() == 0 );
   402     QVERIFY( mDbConnector->refreshData() == 0 );
   422     QVERIFY( !mDbConnector->mReader->IsActive() );
   403     QVERIFY( !mDbConnector->mReader->IsActive() );
   423     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
   404     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
   424     
   405     
   425     // Reader exists, compressed before, reading started
   406     // Reader exists, compressed before, reading started
       
   407     delete mDbConnector->mLogsRemove;
       
   408     mDbConnector->mLogsRemove = 0;
   426     mDbConnector->mCompressionEnabled = true;
   409     mDbConnector->mCompressionEnabled = true;
   427     QVERIFY( mDbConnector->refreshData() == 0 );
   410     QVERIFY( mDbConnector->refreshData() == 0 );
   428     QVERIFY( mDbConnector->mReader->IsActive() );
   411     QVERIFY( mDbConnector->mReader->IsActive() );
   429     QVERIFY( !mDbConnector->mCompressionEnabled );
   412     QVERIFY( !mDbConnector->mCompressionEnabled );
   430     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
   413     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
       
   414     QVERIFY( mDbConnector->mLogsRemove );
   431     
   415     
   432     // Reading not started again as already active
   416     // Reading not started again as already active
   433     LogsCommonData::getInstance().configureReadSize(30, LogsEvent::DirUndefined);
   417     LogsCommonData::getInstance().configureReadSize(30, LogsEvent::DirUndefined);
   434     mDbConnector->mCompressionEnabled = true;
   418     mDbConnector->mCompressionEnabled = true;
   435     QVERIFY( mDbConnector->refreshData() == 0 );
   419     QVERIFY( mDbConnector->refreshData() == 0 );
   436     QVERIFY( mDbConnector->mReader->IsActive() );
   420     QVERIFY( mDbConnector->mReader->IsActive() );
   437     QVERIFY( !mDbConnector->mCompressionEnabled );
   421     QVERIFY( !mDbConnector->mCompressionEnabled );
   438     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
   422     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeUndefined );
       
   423     QVERIFY( mDbConnector->mLogsRemove );
   439 }
   424 }
   440 
   425 
   441 void UT_LogsDbConnector::testCompressData()
   426 void UT_LogsDbConnector::testCompressData()
   442 {
   427 {
   443     qRegisterMetaType< QList<int> >("QList<int>");
   428     qRegisterMetaType< QList<int> >("QList<int>");
   453     QVERIFY( mDbConnector->mCompressionEnabled );
   438     QVERIFY( mDbConnector->mCompressionEnabled );
   454     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeCompressEnabled );
   439     QVERIFY( LogsCommonData::getInstance().maxReadSize() == logsReadSizeCompressEnabled );
   455     QVERIFY( spyRemoved.count() == 1 );
   440     QVERIFY( spyRemoved.count() == 1 );
   456     QList<int> removedIndexes = qvariant_cast< QList<int> >(spyRemoved.at(0).at(0));
   441     QList<int> removedIndexes = qvariant_cast< QList<int> >(spyRemoved.at(0).at(0));
   457     QVERIFY( removedIndexes.count() == 0 );
   442     QVERIFY( removedIndexes.count() == 0 );
       
   443     QVERIFY( !mDbConnector->mLogsRemove );
   458         
   444         
   459     // Less events than compression limit is, nothing really done
   445     // Less events than compression limit is, nothing really done
   460     int numEvents = 3;
   446     int numEvents = 3;
   461     for ( int i = 0; i < numEvents; i++ ){
   447     for ( int i = 0; i < numEvents; i++ ){
   462         LOGS_TEST_CREATE_EVENT(event, i, LogsEvent::EventAdded );
   448         LOGS_TEST_CREATE_EVENT(event, i, LogsEvent::EventAdded );
   486     QVERIFY( removedIndexes3.at(0) == ( numEventsMoreThanCompressLimit - 3 ) ); 
   472     QVERIFY( removedIndexes3.at(0) == ( numEventsMoreThanCompressLimit - 3 ) ); 
   487     QVERIFY( removedIndexes3.at(1) == ( numEventsMoreThanCompressLimit - 2) );
   473     QVERIFY( removedIndexes3.at(1) == ( numEventsMoreThanCompressLimit - 2) );
   488     QVERIFY( removedIndexes3.at(2) == ( numEventsMoreThanCompressLimit - 1 ) );
   474     QVERIFY( removedIndexes3.at(2) == ( numEventsMoreThanCompressLimit - 1 ) );
   489     QVERIFY( mDbConnector->mModelEvents.count() == logsReadSizeCompressEnabled );
   475     QVERIFY( mDbConnector->mModelEvents.count() == logsReadSizeCompressEnabled );
   490 }
   476 }
   491 
       
   492 void UT_LogsDbConnector::testPredictiveSearchStatus()
       
   493 {
       
   494     // Not ready
       
   495     QVERIFY( mDbConnector->predictiveSearchStatus() != 0 );
       
   496     
       
   497     // Ready and value returned
       
   498     mDbConnector->init();
       
   499     CentralRepositoryStubHelper::reset();
       
   500     CentralRepositoryStubHelper::setCurrentVal(2);
       
   501     QVERIFY( mDbConnector->predictiveSearchStatus() == 2 );
       
   502     
       
   503     // Fails with some error
       
   504     CentralRepositoryStubHelper::setCurrentVal(2);
       
   505     CentralRepositoryStubHelper::setFailCode(KErrNotSupported);
       
   506     QVERIFY( mDbConnector->predictiveSearchStatus() == KErrNotSupported );
       
   507 }
       
   508 
       
   509 void UT_LogsDbConnector::testSetPredictiveSearch()
       
   510 {
       
   511     // Not ready
       
   512     QVERIFY( mDbConnector->setPredictiveSearch(true) != 0 );
       
   513     
       
   514     // Ready and value change is not allowed
       
   515     mDbConnector->init();
       
   516     CentralRepositoryStubHelper::reset();
       
   517     CentralRepositoryStubHelper::setCurrentVal(0);
       
   518     QVERIFY( mDbConnector->setPredictiveSearch(true) != 0 );
       
   519     QVERIFY( CentralRepositoryStubHelper::currentVal() == 0 );
       
   520     
       
   521     // Ready and value is changed
       
   522     CentralRepositoryStubHelper::setCurrentVal(2);
       
   523     QVERIFY( mDbConnector->setPredictiveSearch(true) == 0 );
       
   524     QVERIFY( CentralRepositoryStubHelper::currentVal() == 1 );
       
   525     
       
   526     // Ready and value is changed
       
   527     CentralRepositoryStubHelper::setCurrentVal(1);
       
   528     QVERIFY( mDbConnector->setPredictiveSearch(false) == 0 );
       
   529     QVERIFY( CentralRepositoryStubHelper::currentVal() == 2 );
       
   530         
       
   531     // Fails with some error
       
   532     CentralRepositoryStubHelper::setCurrentVal(1);
       
   533     CentralRepositoryStubHelper::setFailCode(KErrNotFound);
       
   534     QVERIFY( mDbConnector->setPredictiveSearch(false) == KErrNotFound ); 
       
   535 }
       
   536