diff -r 52d644758b05 -r 76d2cf7a585e logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsremove.cpp --- a/logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsremove.cpp Fri Aug 06 14:57:47 2010 +0300 +++ b/logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsremove.cpp Mon Aug 23 18:14:51 2010 +0300 @@ -18,10 +18,25 @@ #include "logsremove.h" #include "logsremoveobserver.h" #include "logclient_stubs_helper.h" +#include "logsevent.h" #include #include +#define ADD_EVENT_WITH_ID( arr, id ) \ +{\ +LogsEvent* ev = new LogsEvent;\ +ev->setLogId(id);\ +arr.append(ev);\ +} + +#define ADD_EVENT_WITH_ID_2( arr, id ) \ +{\ +LogsEvent ev;\ +ev.setLogId(id);\ +arr.append(ev);\ +} + void UT_LogsRemove::initTestCase() { } @@ -88,7 +103,7 @@ void UT_LogsRemove::testClearEvents() { // Clearing with recent view (no ids) - QList events; + QList events; bool async( false ); QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); QVERIFY( !async ); @@ -96,14 +111,15 @@ QVERIFY( !mLogsRemove->IsActive() ); // Clearing with recent view (ids) - events.append(2); - events.append(100); + ADD_EVENT_WITH_ID(events, 2); + ADD_EVENT_WITH_ID(events, 100); QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); QVERIFY( async ); QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 ); QVERIFY( mLogsRemove->IsActive() ); // Clearing with all events (no ids) + qDeleteAll(events); events.clear(); LogsRemove removeWithAllEvents(*this, true); QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 ); @@ -112,21 +128,59 @@ QVERIFY( !removeWithAllEvents.IsActive() ); // Clearing with all events (ids) - events.append(99); - events.append(100); + ADD_EVENT_WITH_ID(events, 99); + ADD_EVENT_WITH_ID(events, 100); QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 ); QVERIFY( async ); QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 2 ); - QVERIFY( removeWithAllEvents.mRemovedEvents.at(0) == 99 ); - QVERIFY( removeWithAllEvents.mRemovedEvents.at(1) == 100 ); + QVERIFY( removeWithAllEvents.mRemovedEvents.at(0).logId() == 99 ); + QVERIFY( removeWithAllEvents.mRemovedEvents.at(1).logId() == 100 ); QVERIFY( removeWithAllEvents.IsActive() ); // Clearing not allowed while previous is active - events.append(200); + ADD_EVENT_WITH_ID(events, 200); QVERIFY( removeWithAllEvents.clearEvents(events, async) != 0 ); QVERIFY( mLogsRemove->mRemovedEvents.count() == 2 ); QVERIFY( !async ); QVERIFY( removeWithAllEvents.IsActive() ); + qDeleteAll(events); +} + +void UT_LogsRemove::testClearEventsWithMergedDuplicates() +{ + QList events; + bool async( false ); + + ADD_EVENT_WITH_ID(events, 2); + ADD_EVENT_WITH_ID(events, 3); + ADD_EVENT_WITH_ID_2(events.at(0)->mergedDuplicates(), 5); + ADD_EVENT_WITH_ID_2(events.at(0)->mergedDuplicates(), 6); + ADD_EVENT_WITH_ID_2(events.at(1)->mergedDuplicates(), 7); + + QVERIFY( mLogsRemove->clearEvents(events, async) == 0 ); + QVERIFY( async ); + QCOMPARE( mLogsRemove->mRemovedEvents.count(), 2 ); + QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 3 ); + QVERIFY( mLogsRemove->IsActive() ); + QCOMPARE( mLogsRemove->mCurrentEventId, 2 ); + + // Simulate completion, removing should continue with first item from duplicates list + mLogsRemove->removeCompleted(); + QVERIFY( !mRemoveCompleted ); + QCOMPARE( mLogsRemove->mCurrentEventId, 5 ); + QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 2 ); + mLogsRemove->removeCompleted(); + QVERIFY( !mRemoveCompleted ); + QCOMPARE( mLogsRemove->mCurrentEventId, 6 ); + QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 1 ); + mLogsRemove->removeCompleted(); + QVERIFY( !mRemoveCompleted ); + QCOMPARE( mLogsRemove->mCurrentEventId, 7 ); + QVERIFY( mLogsRemove->mRemovedEventDuplicates.count() == 0 ); + mLogsRemove->removeCompleted(); + QVERIFY( mRemoveCompleted ); + + qDeleteAll(events); } void UT_LogsRemove::testRunError()