logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsremove.cpp
changeset 15 76d2cf7a585e
parent 9 68f3171a5819
equal deleted inserted replaced
13:52d644758b05 15:76d2cf7a585e
    16 */
    16 */
    17 #include "ut_logsremove.h"
    17 #include "ut_logsremove.h"
    18 #include "logsremove.h"
    18 #include "logsremove.h"
    19 #include "logsremoveobserver.h"
    19 #include "logsremoveobserver.h"
    20 #include "logclient_stubs_helper.h"
    20 #include "logclient_stubs_helper.h"
       
    21 #include "logsevent.h"
    21 #include <logcli.h>
    22 #include <logcli.h>
    22 
    23 
    23 #include <QtTest/QtTest>
    24 #include <QtTest/QtTest>
       
    25 
       
    26 #define ADD_EVENT_WITH_ID( arr, id ) \
       
    27 {\
       
    28 LogsEvent* ev = new LogsEvent;\
       
    29 ev->setLogId(id);\
       
    30 arr.append(ev);\
       
    31 }
       
    32 
       
    33 #define ADD_EVENT_WITH_ID_2( arr, id ) \
       
    34 {\
       
    35 LogsEvent ev;\
       
    36 ev.setLogId(id);\
       
    37 arr.append(ev);\
       
    38 }
    24 
    39 
    25 void UT_LogsRemove::initTestCase()
    40 void UT_LogsRemove::initTestCase()
    26 {
    41 {
    27 }
    42 }
    28 
    43 
    86 }
   101 }
    87 
   102 
    88 void UT_LogsRemove::testClearEvents()
   103 void UT_LogsRemove::testClearEvents()
    89 {
   104 {
    90     // Clearing with recent view (no ids)
   105     // Clearing with recent view (no ids)
    91     QList<int> events;
   106     QList<LogsEvent*> events;
    92     bool async( false );
   107     bool async( false );
    93     QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
   108     QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
    94     QVERIFY( !async );
   109     QVERIFY( !async );
    95     QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 );
   110     QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 );
    96     QVERIFY( !mLogsRemove->IsActive() );
   111     QVERIFY( !mLogsRemove->IsActive() );
    97     
   112     
    98     // Clearing with recent view (ids)
   113     // Clearing with recent view (ids)
    99     events.append(2);
   114     ADD_EVENT_WITH_ID(events, 2);
   100     events.append(100);
   115     ADD_EVENT_WITH_ID(events, 100);
   101     QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
   116     QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
   102     QVERIFY( async );
   117     QVERIFY( async );
   103     QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 );
   118     QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 );
   104     QVERIFY( mLogsRemove->IsActive() );
   119     QVERIFY( mLogsRemove->IsActive() );
   105     
   120     
   106     // Clearing with all events (no ids)
   121     // Clearing with all events (no ids)
       
   122     qDeleteAll(events);
   107     events.clear();
   123     events.clear();
   108     LogsRemove removeWithAllEvents(*this, true);
   124     LogsRemove removeWithAllEvents(*this, true);
   109     QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 );
   125     QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 );
   110     QVERIFY( !async );
   126     QVERIFY( !async );
   111     QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 0 );
   127     QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 0 );
   112     QVERIFY( !removeWithAllEvents.IsActive() );
   128     QVERIFY( !removeWithAllEvents.IsActive() );
   113     
   129     
   114     // Clearing with all events (ids)
   130     // Clearing with all events (ids)
   115     events.append(99);
   131     ADD_EVENT_WITH_ID(events, 99);
   116     events.append(100);
   132     ADD_EVENT_WITH_ID(events, 100);
   117     QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 );
   133     QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 );
   118     QVERIFY( async );
   134     QVERIFY( async );
   119     QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 2 );
   135     QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 2 );
   120     QVERIFY( removeWithAllEvents.mRemovedEvents.at(0) == 99 );  
   136     QVERIFY( removeWithAllEvents.mRemovedEvents.at(0).logId() == 99 );  
   121     QVERIFY( removeWithAllEvents.mRemovedEvents.at(1) == 100 );   
   137     QVERIFY( removeWithAllEvents.mRemovedEvents.at(1).logId() == 100 );   
   122     QVERIFY( removeWithAllEvents.IsActive() );
   138     QVERIFY( removeWithAllEvents.IsActive() );
   123     
   139     
   124     // Clearing not allowed while previous is active
   140     // Clearing not allowed while previous is active
   125     events.append(200);
   141     ADD_EVENT_WITH_ID(events, 200);
   126     QVERIFY( removeWithAllEvents.clearEvents(events, async) != 0 );
   142     QVERIFY( removeWithAllEvents.clearEvents(events, async) != 0 );
   127     QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 );
   143     QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 );
   128     QVERIFY( !async );
   144     QVERIFY( !async );
   129     QVERIFY( removeWithAllEvents.IsActive() );
   145     QVERIFY( removeWithAllEvents.IsActive() );
       
   146     qDeleteAll(events);
       
   147 }
       
   148 
       
   149 void UT_LogsRemove::testClearEventsWithMergedDuplicates()
       
   150 {
       
   151     QList<LogsEvent*> events;
       
   152     bool async( false );
       
   153 
       
   154     ADD_EVENT_WITH_ID(events, 2);
       
   155     ADD_EVENT_WITH_ID(events, 3);
       
   156     ADD_EVENT_WITH_ID_2(events.at(0)->mergedDuplicates(), 5);
       
   157     ADD_EVENT_WITH_ID_2(events.at(0)->mergedDuplicates(), 6);
       
   158     ADD_EVENT_WITH_ID_2(events.at(1)->mergedDuplicates(), 7);
       
   159     
       
   160     QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
       
   161     QVERIFY( async );
       
   162     QCOMPARE( mLogsRemove->mRemovedEvents.count(), 2 );
       
   163     QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 3 );
       
   164     QVERIFY( mLogsRemove->IsActive() );
       
   165     QCOMPARE( mLogsRemove->mCurrentEventId, 2 );
       
   166     
       
   167     // Simulate completion, removing should continue with first item from duplicates list
       
   168     mLogsRemove->removeCompleted();
       
   169     QVERIFY( !mRemoveCompleted );
       
   170     QCOMPARE( mLogsRemove->mCurrentEventId, 5 );
       
   171     QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 2 );
       
   172     mLogsRemove->removeCompleted();
       
   173     QVERIFY( !mRemoveCompleted );
       
   174     QCOMPARE( mLogsRemove->mCurrentEventId, 6 );
       
   175     QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 1 );
       
   176     mLogsRemove->removeCompleted();
       
   177     QVERIFY( !mRemoveCompleted );
       
   178     QCOMPARE( mLogsRemove->mCurrentEventId, 7 );
       
   179     QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 0 );
       
   180     mLogsRemove->removeCompleted();
       
   181     QVERIFY( mRemoveCompleted );
       
   182     
       
   183     qDeleteAll(events);
   130 }
   184 }
   131 
   185 
   132 void UT_LogsRemove::testRunError()
   186 void UT_LogsRemove::testRunError()
   133 {
   187 {
   134     // No fatal callback for access denied error
   188     // No fatal callback for access denied error