logsui/logsengine/logssymbianos/tsrc/ut_logssymbianos/inc/ut_logsremovestates.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 20:27:05 +0300
changeset 16 c5af8598d22c
parent 14 f27aebe284bb
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* 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:
*
*/
#ifndef UT_LOGSREMOVESTATES_H
#define UT_LOGSREMOVESTATES_H

#include <QObject>
#include <QList>
#include <e32base.h>
#include "logsengdefs.h"
#include "logsstatebasecontext.h"
#include "logsremovestatecontext.h"
#include "logsremoveobserver.h"
#include "logsevent.h"

class CLogClient;
class LogsEvent;
class CLogViewRecent;
class CLogViewEvent;
class LogsReaderStateBase;

class UT_LogsRemoveStates : public QObject, 
                            public LogsStateBaseContext, 
                            public LogsRemoveStateContext, 
                            public LogsRemoveObserver              
{
     Q_OBJECT
    
private slots:

/*
 * In addition, there are four private slots that are not treated as testfunctions. 
 * They will be executed by the testing framework and can be used to initialize and clean up 
 * either the entire test or the current test function.
 * 
 * initTestCase() will be called before the first testfunction is executed.
 * cleanupTestCase() will be called after the last testfunction was executed.
 * init() will be called before each testfunction is executed.
 * cleanup() will be called after every testfunction.
*/
    void initTestCase();
    void cleanupTestCase();
    void init();
    void cleanup();

private slots: //test methods

    void testClearAll();
    void testInit();
    void testDelete();
    void testDeleteDuplicates();
    void testDone();

protected: // From LogsStateBaseContext
    
    void setCurrentState(const LogsStateBase& state);
    CLogView& logView();
    CLogViewDuplicate& duplicatesView();
    int& index();
    TRequestStatus& reqStatus();
    int currentEventId();
    CLogClient& logClient();
    bool isRecentView();

protected: // From LogsRemoveStateContext
    
    LogsRemoveObserver& observer();
    QList<LogsEvent>& removedEvents(); 
    int clearType();

protected: // From LogsRemoveObserver
    
    void removeCompleted();
    void logsRemoveErrorOccured(int err);
          
private:
    
    void reset();

    
private:

    CLogClient* mLogClient;
    const LogsStateBase* mCurrentState;
    CLogViewRecent* mLogView;
    CLogViewEvent* mLogViewEvent;
    CLogViewDuplicate* mDuplicatesView;
    int mIndex;
    TRequestStatus mReqStatus;
    bool mIsRecentView;
    
    int mError;
    bool mRemoveCompleted;
    
    int mCurrentEventId;
    QList<LogsEvent> mRemovedEvents;
    int mClearType;
};


#endif //UT_LOGSREMOVESTATES_H