startupservices/startupanimation/tsrc/TSanimmif/inc/sanimmifplugintestsuite.h
author hgs
Thu, 07 Oct 2010 06:25:45 +0300
changeset 77 b01c07dfcf84
permissions -rw-r--r--
201039

/*
* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Symbian Foundation License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:  Declaration of CSAnimMifPluginTestSuite class
*
*/


#ifndef SANIMMIFPLUGINTESTSUITE_H
#define SANIMMIFPLUGINTESTSUITE_H

#include <ceunittestsuiteclass.h>
#include <e32def.h>
#include <f32file.h>
#include "sanimobserver.h"

class CSAnimImagePlugin;
class CSAnimMifPluginTestSuite;
class CTestWaiter;

NONSHARABLE_CLASS( TMockMifAnimationObserver ) : public MSAnimObserver
    {
public:
    TMockMifAnimationObserver( CSAnimMifPluginTestSuite& aTestSuite ) : iTestSuite( aTestSuite ) {}
    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/, const CFbsBitmap& /*aMask*/ );
    virtual void UpdateScreen( const CFbsBitmap& /*aFrame*/ );
private:
    CSAnimMifPluginTestSuite& iTestSuite;
    };

/**
*  Test cases for CSAnimSvgPlugin class.
*
*  @lib None
*  @since S60 3.2
*/
NONSHARABLE_CLASS( CSAnimMifPluginTestSuite ) : public CEUnitTestSuiteClass
    {

public:

    /**
    * Constructs a CSAnimMifPluginTestSuite object.
    *
    * @since S60 3.2
    *
    * @return The new object
    */
    static CSAnimMifPluginTestSuite* NewL();
    static CSAnimMifPluginTestSuite* NewLC();

    /**
    * Destructor.
    *
    * @since S60 3.2
    */
    virtual ~CSAnimMifPluginTestSuite();

private:

    /**
    * First phase constructor.
    *
    * @since S60 3.2
    */
    CSAnimMifPluginTestSuite();

    /**
    * Second phase constructor.
    *
    * @since S60 3.2
    */
    void ConstructL();

private:    // New methods

    void SetupEmptyL();
    void SetupObjL();
    void SetupFileL( const TDesC& aFileName );
    void SetupStillImageNoMaskL();
    void SetupStillImageL();
    void SetupScaledAnimationL();
    void SetupUnscaledAnimationL();
    void SetupFinishedL();
    void Teardown();

    void TestConstructorL();
    void TestConstructorNoMemoryL();
    void TestUnknownFileL();
    void TestCorruptFileL();
    void TestNoFramesFileL();
    void TestLoadStillImageL();
    void TestLoadScaledAnimationL();
    void TestLoadUnscaledAnimationL();
    void TestLoadNoMemoryL();
    void TestCancelLoadL();
    void TestShowStillImageL();
    void TestShowAnimationL();
    void TestCancelStillImageL();
    void TestCancelAnimationL();
    void TestCancelNotActiveL();
    void TestShowBeforeLoadL();
    void TestSetDisplayModeL();
    void TestSetSizeL();
    void TestSetFrameDelayL();
    void TestBackroundColourL();

private: // data

    EUNIT_DECLARE_TEST_TABLE;

    friend class TMockMifAnimationObserver;

    /** File server session used in testing. */
    RFs iFs;

    /** Instance of the class that this test suite is testing. */
    CSAnimImagePlugin* iTestObj;

    /** A 32 bit identifer returned by ECom to identify this instance to the framework. */
    TUid iDtorKey;

    /** For testing async calls. */
    CTestWaiter* iWaiter;

    /** For testing correct number of calls to animation observer. */
    TInt iFrameCounter;

    /** Animation observer for testing. */
    TMockMifAnimationObserver iObserver;

    };

#endif // SANIMMIFPLUGINTESTSUITE_H