//
// Copyright (c) 2005-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:
//
//! @file
//! @SYMTestSuiteName		GRAPHICS-WSERV-AnimDll-PublicApi
//! @SYMScriptTestEnvironment	This test script requires a basic ROM.

/////////////////////////////////////////////////////////////////////
// GRAPHICS-WSERV-AnimDll-PublicAPI.script
//
// Tests all public elements of the RAnimDll
// classes as a means of confidence that the APIs work as expected.
//
// The purpose is to provide a regression test suite of PublishedAll APIs for RAnimDll
// The tests are fully automated.
/////////////////////////////////////////////////////////////////////

LOAD_SUITE      T_GraphicsWservAPI
DELAY           1000


/////////////////////////////////////////////////////////////////////
// RAnimDll class
/////////////////////////////////////////////////////////////////////

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0001
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0001
//! @SYMAPI                     RAnimDll::RAnimDll()
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Create a RAnimDll object by default constructor.
//! @SYMTestActions             1. Create RAnimDll object.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RAnimDll object was created without causing panic. 
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI      c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RAnimDll               animdll
        COMMAND                 animdll                new        
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0001

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0002
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0002
//! @SYMAPI                     RAnimDll::RAnimDll(RWsSession {ref})
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Create a RAnimDll object within the specified RWsSession.
//! @SYMTestActions             1.Create and connect a RWsSession.
//!                             2.Create a RAnimDll with RWsSession.
//!                             3.Close RWsSession object. 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RAnimDll object was created without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new               GRAPHICS-WSERV-AnimDll-PublicAPI-0002-0001-new_Command001
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0002

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0003
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0003
//! @SYMAPI                     RAnimDll::RAnimDll();
//!                             RAnimDll::Close()
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            10-03-2008
//! @SYMTestCaseDesc            Create a RAnimDll object by Default constructor and end with Close
//! @SYMTestActions             1. Create RAnimDll object.
//!                             2. Close the object.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RAnimDll object was created and closed without causing panic. 
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI      c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RAnimDll               animdll
        COMMAND                 animdll                new       
        COMMAND                 animdll                Close        
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0003

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0004
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0004
//! @SYMAPI                     RAnimDll::RAnimDll();
//!                             RAnimDll::Destroy()
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            10-03-2008
//! @SYMTestCaseDesc            Create a RAnimDll object by Default constructor and end with Destroy()
//! @SYMTestActions             1. Create RAnimDll object.
//!                             2. Destory the object.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RAnimDll object was created and destroyed without causing panic. 
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RAnimDll       animdll
        COMMAND                 animdll        new       
        COMMAND                 animdll        Destroy        
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0004

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0005
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0005
//! @SYMAPI                     RAnimDll::RAnimDll(RWsSession {ref});
//!                             RAnimDll::Close()
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            10-03-2008
//! @SYMTestCaseDesc            Create a RAnimDll object within the specified RWsSession and end with Close.
//! @SYMTestActions             1.Create and connect a RWsSession.
//!                             2.Create a RAnimDll with RWsSession.
//!                             3.Close all used objects 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RAnimDll object was created without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new               GRAPHICS-WSERV-AnimDll-PublicAPI-0005-001-new_Command01
        COMMAND                 animdll                    Close
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0005

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0006
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0006
//! @SYMAPI                     RAnimDll::RAnimDll(RWsSession {ref});
//!                             RAnimDll::Destroy()
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            10-03-2008
//! @SYMTestCaseDesc            Create a RAnimDll object within the specified RWsSession and end with Destroy.
//! @SYMTestActions             1.  Create and connect a RWsSession
//!                             2.  Create a RAnimDll with RWsSession
//!                             3.  Destroy RAnimDll 
//!                             4.  Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RAnimDll object was created and destroyed without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                GRAPHICS-WSERV-AnimDll-PublicAPI-0006-001-new_Command01
        COMMAND                 animdll                    Destroy    
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0006

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0007
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0007
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref});
//!                             RAnimDll::Close()
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            10-03-2008
//! @SYMTestCaseDesc            Load an animation Dll file, close the loaded dll and re-load it
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create a RAnimDll with RWsSession
//!                             3. Load a animation Dll file(t_animplugin.dll)
//!                             4. Close RAnimDll
//!                             5. Re-load the animation Dll file(t_animplugin.dll)
//!                             6. Destory the RAnimDll
//!                             7. Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     1. The Dll is loaded and closed without causing panic
//!                             2. Re-load the closed dll without causing panic
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0007-001-new_Command01
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0007-001-Load_Command02
        COMMAND                 animdll                    Close
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0007-001-Load_Command04
        COMMAND                 animdll                    Destroy    
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0007

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0008
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0008
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref})
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            11-03-2008
//! @SYMTestCaseDesc            Load a non-exist Dll file
//! @SYMTestActions             1.  Create and connect a RWsSession 
//!                             2.  Create a RAnimDll with RWsSession 
//!                             3.  Load a non-exist Dll file
//!                             4.  Destroy RAnimDll
//!                             5.  Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The call Load() returns KErrNotFound
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0008-001-new_Command01
        COMMAND !Error=-1       animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0008-001-Load_Command02
        COMMAND                 animdll                    Destroy
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0008

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0009
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0009
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref})
//! @SYMAuthor                  Dorothy Zhang
//! @SYMCreationDate            11-03-2008
//! @SYMTestCaseDesc            Load a not supported Dll file
//! @SYMTestActions             1.  Create and connect a RWsSession 
//!                             2.  Create a RAnimDll with RWsSession 
//!                             3.  Load a not supported Dll file
//!                             4.  Destroy RAnimDll
//!                             5.  Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The call Load() returns KErrNotSupported
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0009-001-new_Command01
        COMMAND !Error=-5       animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0009-001-Load_Command02
        COMMAND                 animdll                    Destroy
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0009

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0011
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0011
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref});
//!                             RAnimDll::Close()
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Load an animation Dll file and the close the loaded dll.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create a RAnimDll with RWsSession
//!                             3. Load a animation Dll file(t_animplugin.dll)
//!                             4. Close RAnimDll
//!                             5. Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The Dll is loaded and closed without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0011-0001-new_Command003
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0011-0001-Load_Command004
        COMMAND                 animdll                    Close
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0011

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0012
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0012
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref});
//!                             RAnimDll::Destroy()
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Load an animation Dll file and then destory the loaded object.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create a RAnimDll with RWsSession
//!                             3. Load a animation Dll file(t_animplugin.dll)
//!                             4. Destory RAnimDll object.
//!                             5. Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The Dll is loaded and closed without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0012-0001-new_Command003
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0012-0001-Load_Command004
        COMMAND                 animdll                    Destroy
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0012

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0013
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0013
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref});
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Load an animation Dll file twice and then destory the loaded object.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create a RAnimDll with RWsSession
//!                             3. Load a animation Dll file(t_animplugin.dll)
//!                             4. Load the animation Dll file again.
//!                             4. Destory RAnimDll object.
//!                             5. Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The Dll is loaded and closed without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0013-0001-new_Command003
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0013-0001-Load_Command004
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0013-0001-Load_Command005
        COMMAND                 animdll                    Destroy
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0013

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0014
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0014
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref});
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Load two different animation Dll files and then destory the loaded objects.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create a RAnimDll with RWsSession
//!                             3. Load a animation Dll file(t_animplugin.dll)
//!                             4. Load another system animation Dll file(BMPANSRV.DLL).
//!                             4. Destory RAnimDll object.
//!                             5. Close RWsSession 
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The two Dll files are loaded and closed without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0014-0001-new_Command003
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0014-0001-Load_Command004
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0014-0001-Load_Command005
        COMMAND                 animdll                    Destroy
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0014

START_TESTCASE                  GRAPHICS-WSERV-AnimDll-PublicAPI-0015
//! @SYMTestCaseID              GRAPHICS-WSERV-AnimDll-PublicAPI-0015
//! @SYMAPI                     RAnimDll::Load(const TDesC {ref});
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            21-04-2008
//! @SYMTestCaseDesc            Create two RAnimDll object and load the same animation Dll file.
//! @SYMTestActions             1. Create and connect a RWsSession.
//!                             2. Create two RAnimDll with RWsSession.
//!                             3. Load animation Dll file(t_animplugin.dll) with the first RAnimDll object.
//!                             4. Load animation Dll file(t_animplugin.dll) with the second RAnimDll object.
//!                             4. Destory all RAnimDll objects.
//!                             5. Close RWsSession.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     The two RAnimDll object load animation Dll file without causing panic.
//! @SYMTestType                CIT
    START_TEST_BLOCK            10    T_GraphicsWservAPI    c:\graphics\GRAPHICS-WSERV-AnimDll-PublicAPI.ini
        CREATE_OBJECT           RWsSession                 ws
        CREATE_OBJECT           RAnimDll                   animdll
        CREATE_OBJECT           RAnimDll                   animdll2
        COMMAND                 ws                         new
        COMMAND                 ws                         Connect
        COMMAND                 animdll                    new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0015-0001-new_Command003
        COMMAND                 animdll2                   new                 GRAPHICS-WSERV-AnimDll-PublicAPI-0015-0001-new_Command004
        COMMAND                 animdll                    Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0015-0001-Load_Command005
        COMMAND                 animdll2                   Load                GRAPHICS-WSERV-AnimDll-PublicAPI-0015-0001-Load_Command006
        COMMAND                 animdll                    Destroy
        COMMAND                 animdll2                   Destroy
        COMMAND                 ws                         Close
    END_TEST_BLOCK    
END_TESTCASE                    GRAPHICS-WSERV-AnimDll-PublicAPI-0015
