logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsremove.cpp
changeset 0 4a5361db8937
child 9 68f3171a5819
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/src/ut_logsremove.cpp	Tue May 04 12:39:37 2010 +0300
@@ -0,0 +1,187 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#include "ut_logsremove.h"
+#include "logsremove.h"
+#include "logsremoveobserver.h"
+#include "logclient_stubs_helper.h"
+#include <logcli.h>
+
+#include <QtTest/QtTest>
+
+void UT_LogsRemove::initTestCase()
+{
+}
+
+void UT_LogsRemove::cleanupTestCase()
+{
+}
+
+// ----------------------------------------------------------------------------
+// UT_LogsRemove::removeCompleted
+// ----------------------------------------------------------------------------
+//
+void UT_LogsRemove::removeCompleted()
+{   
+    mRemoveCompleted = true;
+}
+
+// ----------------------------------------------------------------------------
+// UT_LogsRemove::logsRemoveErrorOccured
+// ----------------------------------------------------------------------------
+//
+void UT_LogsRemove::logsRemoveErrorOccured(int err)
+{
+    Q_UNUSED(err)
+}
+
+void UT_LogsRemove::init()
+{
+    mRemoveCompleted = false;
+    mErrorOccurred = false;
+    mError = 0;
+    mLogsRemove = new LogsRemove(*this, false);
+}
+
+void UT_LogsRemove::cleanup()
+{
+    delete mLogsRemove;
+}
+
+void UT_LogsRemove::testConstructor()
+{
+    QVERIFY( mLogsRemove );
+    QVERIFY( mLogsRemove->mFsSession );
+    QVERIFY( !mLogsRemove->mLogClient );
+}
+
+void UT_LogsRemove::testclearList()
+{
+    //clearing doesn't start, since initialization failed
+    LogClientStubsHelper::setLeaveWithError(KErrNoMemory);
+    QVERIFY( !mLogsRemove->IsActive() );
+    QVERIFY( !mLogsRemove->clearList(LogsModel::TypeLogsClearAll) );
+    QVERIFY( !mLogsRemove->IsActive() );
+
+    //clearing is ok
+    LogClientStubsHelper::setLeaveWithError(KErrNone);
+    QVERIFY( mLogsRemove->clearList(LogsModel::TypeLogsClearMissed) );
+    QVERIFY( mLogsRemove->IsActive() );
+    
+    //clearing doesn't start, since already active
+    QVERIFY( !mLogsRemove->clearList(LogsModel::TypeLogsClearAll) );
+}
+
+void UT_LogsRemove::testClearEvents()
+{
+    // Clearing with recent view (no ids)
+    QList<int> events;
+    bool async( false );
+    QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
+    QVERIFY( !async );
+    QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 );
+    
+    // Clearing with recent view (ids)
+    events.append(2);
+    events.append(100);
+    QVERIFY( mLogsRemove->clearEvents(events, async) == 0 );
+    QVERIFY( !async );
+    QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 );
+    
+    // Clearing with all events (no ids)
+    events.clear();
+    LogsRemove removeWithAllEvents(*this, true);
+    QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 );
+    QVERIFY( !async );
+    QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 0 );
+    
+    // Clearing with all events (ids)
+    events.append(99);
+    events.append(100);
+    QVERIFY( removeWithAllEvents.clearEvents(events, async) == 0 );
+    QVERIFY( async );
+    QVERIFY( removeWithAllEvents.mRemovedEvents.count() == 1 );
+    QVERIFY( removeWithAllEvents.mRemovedEvents.at(0) == 100 );
+    
+}
+
+void UT_LogsRemove::testDoCancel()
+{
+    mLogsRemove->DoCancel();
+}
+
+void UT_LogsRemove::testRunL()
+{
+   // Test ok scenario
+    mLogsRemove->init();
+    mLogsRemove->Cancel();
+    mLogsRemove->iStatus = KErrNone;
+    mLogsRemove->RunL();
+    QVERIFY( mRemoveCompleted );
+    
+    // Ok scenario when more events to delete
+    mRemoveCompleted = false;
+    mLogsRemove->mRemovedEvents.append(2);
+    mLogsRemove->mRemovedEvents.append(4);
+    mLogsRemove->Cancel();
+    mLogsRemove->RunL();
+    QVERIFY( !mRemoveCompleted );
+    QVERIFY( mLogsRemove->mRemovedEvents.count() == 1 );
+    
+    mLogsRemove->Cancel();
+    mLogsRemove->RunL();
+    QVERIFY( !mRemoveCompleted );
+    QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 );
+    
+    // Ok scenario when no more events to delete
+    mLogsRemove->Cancel();
+    mLogsRemove->RunL();
+    QVERIFY( mRemoveCompleted );
+    QVERIFY( mLogsRemove->mRemovedEvents.count() == 0 );
+    
+    // Test failure
+    mLogsRemove->Cancel();
+    mLogsRemove->iStatus = KErrNotFound;
+    TRAPD( err, mLogsRemove->RunL() );
+    QVERIFY( err == KErrNotFound );
+}
+
+void UT_LogsRemove::testRunError()
+{
+    // No fatal callback for access denied error
+    TInt err = KErrAccessDenied;
+    QVERIFY( mLogsRemove->RunError(err) == KErrNone );
+}
+
+void UT_LogsRemove::testInit()
+{
+    //initialization failes
+    LogClientStubsHelper::setLeaveWithError(KErrNoMemory);
+    QVERIFY( mLogsRemove->init() == KErrNoMemory );
+    QVERIFY( !mLogsRemove->mLogClient );
+    LogClientStubsHelper::setLeaveWithError(KErrNone);
+            
+    //initializing for the first time
+    QVERIFY( mLogsRemove->init() == KErrNone );
+    QVERIFY( mLogsRemove->mLogClient );
+    CLogClient* oldClient = mLogsRemove->mLogClient;
+    
+    //2d time should be also ok
+    QVERIFY( mLogsRemove->init() == KErrNone );
+    QVERIFY( mLogsRemove->mLogClient );
+    QVERIFY( oldClient == mLogsRemove->mLogClient );    
+}
+