//
// 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-WsPointerCursor-PublicApi
//! @SYMScriptTestEnvironment	This test script requires a basic ROM.

///////////////////////////////////////////////////////////////////////////////
// GRAPHICS-WSERV-WsPointerCursor-PublicApi.script
//
// Tests all public elements of the RWsPointerCursor class
// as a means of confidence that the API works as expected.
//
// The purpose is to provide a regression test suite of PublishedAll APIs for
// RWsPointerCursor related classes.
// Negative testing is performed to confirm that correct errors are returned
// when incorrect parameters are given.
//
// The tests are fully automated.
///////////////////////////////////////////////////////////////////////////////

LOAD_SUITE  T_GraphicsWservAPI

// ****************************************************************************
// RWsPointerCursor
// ****************************************************************************
START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0001
//! @SYMTestCaseID          GRAPHICS-WSERV-WsPointerCursor-PublicApi-0001
//! @SYMAPI                 RWsPointerCursor::RWsPointerCursor()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        10/12/2007
//! @SYMTestCaseDesc        Create a RWsPointerCursor object with default construct.
//! @SYMTestActions         1. Create RWsPointerCursor with RWsPointerCursor::RWsPointerCursor()
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults RWsPointerCursor object was created without causing panic
//! @SYMTestType            CIT
    START_TEST_BLOCK        10                 T_GraphicsWservAPI  \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT    RWsPointerCursor   pointcursor
        COMMAND         pointcursor        new
        COMMAND         pointcursor        Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0001


START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0002
//! @SYMTestCaseID              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0002
//! @SYMAPI                     RWsPointerCursor::RWsPointerCursor(RWsSession{ref})
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            10/12/2007
//! @SYMTestCaseDesc            Create a RWsPointerCursor object with RWsSession.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create RWsPointerCursor with RWsSession by using RWsPointerCursor(RWsSession &aWs).
//!                             3. Close RWsSession.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RWsPointerCursor object was created without causing panic
//! @SYMTestType                CIT
    START_TEST_BLOCK        10                T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT    RWsSession        ws
        CREATE_OBJECT    RWsPointerCursor  pointcursor
        COMMAND         ws                new
        COMMAND         ws                Connect
        COMMAND         pointcursor       new                  GRAPHICS-WSERV-WsPointerCursor-PublicApi-0002-0001-new_command004
        COMMAND         pointcursor       Close
        COMMAND         ws                Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0002


START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0003
//! @SYMTestCaseID              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0003
//! @SYMAPI                     RWsPointerCursor::Construct(TInt)
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            10/12/2007
//! @SYMTestCaseDesc            Create a RWsPointerCursor object with RWsSession and construct.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create RWsPointerCursor with RWsPointerCursor by using RWsPointerCursor(RWsSession &).
//!                             3. Construct RWsPointerCursor.
//!                             4. Close RWsPointerCursor,RWsSession.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RWsPointerCursor object was constructed without causing panic
//! @SYMTestType                CIT
    START_TEST_BLOCK        10                  T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT   RWsSession          ws
        CREATE_OBJECT   RWsPointerCursor    pointcursor
        COMMAND         ws                  new
        COMMAND         ws                  Connect
        COMMAND         pointcursor         new                  GRAPHICS-WSERV-WsPointerCursor-PublicApi-0003-0001-new_command004
        COMMAND         pointcursor         Construct            GRAPHICS-WSERV-WsPointerCursor-PublicApi-0003-0001-Construct_command005
        COMMAND         pointcursor         Close
        COMMAND         ws                  Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0003

START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004
//! @SYMTestCaseID              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004
//! @SYMAPI                     RWsPointerCursor::RWsPointerCursor(RWsSession{ref});
//!                             RWsPointerCursor::Construct(TInt)
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            10/12/2007
//! @SYMTestCaseDesc            Create pointer cursor and activate, call SetCustomPointerCursor using custom RWsPointerCursor object and verify if it's visible.
//!                             mask1 is iMaskBitmap member of TSpriteMember and the other are iBitmap member of TSpriteMember.
//! @SYMTestActions             1.  Create and connect a RWsSession, create 4 CFbsBitmap objects.
//!                             2.  Create and construct RWindow.
//!                             3.  Create RWsPointerCursor with RWsPointerCursor by using RWsPointerCursor(RWsSession &).
//!                             4.  Construct RWsPointerCursor.
//!                             5.  Create CFbsBitmap objects and load bitmap to initialize TSpriteMember.
//!                             6.  Append three different bitmaps to the sprite, each with the same mask.
//!                             7.  Activate RWsPointerCursor.
//!                             8.  Call RWindowTreeNode::SetCustomPointerCursor(const RWsPointerCursor&) to set PointerCursor.
//!                             9.  Create CWsScreenDevice and compare the two rect before SetPointerCursorPosition, they should be same.
//!                             11. SetPointerCursorMode,SimulatePointerEvent and then SetPointerCursorPosition.
//!                             12. Compare the two rect again, they should be not same.
//!                             13. Destruct all created object and Close RWsPointerCursor,RWsSession and RWindowTreeNode.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     1.SetCustomPointerCursor with created RWsPointerCursor object without causing panic
//!                             2.The rect of before SetCustomPointerCursor and after SetCustomPointerCursor should not be same.
//! @SYMTestType                CIT
    START_TEST_BLOCK        10                  T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT   RWsSession          ws
        CREATE_OBJECT   CWsScreenDevice     scrdev
        CREATE_OBJECT   CFbsBitmap          mask1
        CREATE_OBJECT   CFbsBitmap          bitmap1
        CREATE_OBJECT   CFbsBitmap          bitmap2
        CREATE_OBJECT   CFbsBitmap          bitmap3
        CREATE_OBJECT   RWindowGroup        wingrp
        CREATE_OBJECT   RWindow             win
        CREATE_OBJECT   RWsPointerCursor    pointcursor
        COMMAND     ws             new
        COMMAND     ws             Connect
        COMMAND     wingrp         new                      GRAPHICS-WSERV-WsPointerCursor-Setup-0004-0001-new_command001
        COMMAND     wingrp         Construct                GRAPHICS-WSERV-WsPointerCursor-Setup-0004-0001-Construct_command002
        COMMAND     win            new                      GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-new_command003
        COMMAND     win            Construct                GRAPHICS-WSERV-WsPointerCursor-Setup-0004-0001-Construct_command004
        COMMAND     win            Activate
        COMMAND     pointcursor    new                      GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-new_command006
        COMMAND     pointcursor    Construct                GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-Construct_command007
        COMMAND     mask1          new           
        COMMAND     mask1          Load                     GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-Load_command009
        
        COMMAND     bitmap1        new           
        COMMAND     bitmap1        Load                     GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-Load_command011
        COMMAND     pointcursor    AppendMember             GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-AppendMember_command012
        
        COMMAND     bitmap2        new           
        COMMAND     bitmap2        Load                     GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-Load_command014
        COMMAND     pointcursor    AppendMember             GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-AppendMember_command015

        COMMAND     bitmap3        new           
        COMMAND     bitmap3        Load                     GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-Load_command017
        COMMAND     pointcursor    AppendMember             GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-AppendMember_command018

        COMMAND     pointcursor    Activate
        COMMAND     win            SetCustomPointerCursor   GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-SetCustomPointerCursor_command020
        
        COMMAND     scrdev         new                      GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-new_command21       
        COMMAND     scrdev         Construct
        COMMAND     win            BeginRedraw
        COMMAND     win            EndRedraw
        //!COMMAND     scrdev         RectCompare              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-RectCompare_command23
        
        COMMAND     ws             SetPointerCursorMode     GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-SetPointerCursorMode_command24
        COMMAND     wingrp         SimulatePointerEvent     GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-SimulatePointerEvent_command25
        COMMAND     ws             SetPointerCursorPosition GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-SetPointerCursorPosition_command26
        //!COMMAND     scrdev         RectCompare              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004-0001-RectCompare_command27
        
        COMMAND     pointcursor    Close
        COMMAND     mask1          ~
        COMMAND     bitmap1        ~
        COMMAND     bitmap2        ~
        COMMAND     bitmap3        ~
        COMMAND     scrdev         ~
        COMMAND     win            Close
        COMMAND     wingrp         Close
        COMMAND     ws             Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0004

START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0005
//! @SYMTestCaseID              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0005
//! @SYMAPI                     RWsPointerCursor::Construct(TInt)
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            03/01/2008
//! @SYMTestCaseDesc            Construct with ESpriteFlash flag;
//!                             Create a RWsPointerCursor object with RWsSession and construct with ESpriteFlash flag.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create RWsPointerCursor with RWsPointerCursor by using RWsPointerCursor(RWsSession &).
//!                             3. Construct RWsPointerCursor with ESpriteFlash flag.
//!                             4. Close RWsPointerCursor,RWsSession.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RWsPointerCursor object was constructed without causing panic
//! @SYMTestType                CIT
    START_TEST_BLOCK        10                  T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT   RWsSession          ws
        CREATE_OBJECT   RWsPointerCursor    pointcursor
        COMMAND         ws                  new
        COMMAND         ws                  Connect
        COMMAND         pointcursor         new                  GRAPHICS-WSERV-WsPointerCursor-PublicApi-0005-0001-new_command003
        COMMAND         pointcursor         Construct            GRAPHICS-WSERV-WsPointerCursor-PublicApi-0005-0001-Construct_command004
        COMMAND         pointcursor         Close
        COMMAND         ws                  Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0005

START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0006
//! @SYMTestCaseID              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0006
//! @SYMAPI                     RWsPointerCursor::Construct(TInt)
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            08/01/2008
//! @SYMTestCaseDesc            Construct with ESpriteNoChildClip flag;
//!                             Create a RWsPointerCursor object with RWsSession and construct with ESpriteNoChildClip flag.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create RWsPointerCursor with RWsPointerCursor by using RWsPointerCursor(RWsSession &).
//!                             3. Construct RWsPointerCursor with ESpriteNoChildClip flag.
//!                             4. Close RWsPointerCursor,RWsSession.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RWsPointerCursor object was constructed without causing panic
//! @SYMTestType                CIT
    START_TEST_BLOCK        10                  T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT   RWsSession          ws
        CREATE_OBJECT   RWsPointerCursor    pointcursor
        COMMAND         ws                  new
        COMMAND         ws                  Connect
        COMMAND         pointcursor         new                  GRAPHICS-WSERV-WsPointerCursor-PublicApi-0006-0001-new_command003
        COMMAND         pointcursor         Construct            GRAPHICS-WSERV-WsPointerCursor-PublicApi-0006-0001-Construct_command004
        COMMAND         pointcursor         Close
        COMMAND         ws                  Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0006

START_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0007
//! @SYMTestCaseID              GRAPHICS-WSERV-WsPointerCursor-PublicApi-0007
//! @SYMAPI                     RWsPointerCursor::Construct(TInt)
//! @SYMAuthor                  Jeffery Zhao
//! @SYMCreationDate            08/01/2008
//! @SYMTestCaseDesc            Construct with ESpriteNoShadows flag;
//!                             Create a RWsPointerCursor object with RWsSession and construct with ESpriteNoShadows flag.
//! @SYMTestActions             1. Create and connect a RWsSession
//!                             2. Create RWsPointerCursor with RWsPointerCursor by using RWsPointerCursor(RWsSession &).
//!                             3. Construct RWsPointerCursor with ESpriteNoShadows flag.
//!                             4. Close RWsPointerCursor,RWsSession.
//! @SYMTestStatus              Implemented
//! @SYMTestPriority            High
//! @SYMTestExpectedResults     RWsPointerCursor object was constructed without causing panic
//! @SYMTestType                CIT
    START_TEST_BLOCK        10                  T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-WsPointerCursor-PublicApi.ini
        CREATE_OBJECT   RWsSession          ws
        CREATE_OBJECT   RWsPointerCursor    pointcursor
        COMMAND         ws                  new
        COMMAND         ws                  Connect
        COMMAND         pointcursor         new                  GRAPHICS-WSERV-WsPointerCursor-PublicApi-0007-0001-new_command003
        COMMAND         pointcursor         Construct            GRAPHICS-WSERV-WsPointerCursor-PublicApi-0007-0001-Construct_command004
        COMMAND         pointcursor         Close
        COMMAND         ws                  Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-WsPointerCursor-PublicApi-0007

