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

///////////////////////////////////////////////////////////////////////////////
// GRAPHICS-WSERV-DirectScreenAccess-PublicApi.script
//
// Tests all public elements of the CDirectScreenAccess 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
// CDirectScreenAccess 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

// ****************************************************************************
// CDirectScreenAccess & MDirectScreenAccess
// ****************************************************************************

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0001
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0001
//! @SYMAPI                 CDirectScreenAccess::NewL(RWsSession{ref} , CWsScreenDevice{ref}, RWindowBase{ref}, MDirectScreenAccess{ref})
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Creates a DSA object but does not start it.
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice attached to RWsSession.
//!                         3. Complete the construction.
//!                         4. Create and construct a RWindow
//!                         5. Create a CDirectScreenAccess.
//!                         6. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults CDirectScreenAccess object was created successfully.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa         ~
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0001


START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0002
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0002
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Informs the window server to start DSA.
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create and construct a RWindow.
//!                         4. Create a CDirectScreenAccess
//!                         5. Start direct screen access.
//!                         6. Destruct and close all created objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults DSA was started successfully.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        dsa         Cancel
        OUTSTANDING
        COMMAND        dsa         ~
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0002


START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0003
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0003
//! @SYMAPI                 CDirectScreenAccess::Gc()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Gets the graphics context for drawing to the screen.                
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create and construct a RWindow.
//!                         4. Create a CDirectScreenAccess.
//!                         5. Start direct screen access.
//!                         6. Gets the graphics context for drawing to the screen.
//!                         7. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults The returned graphics context in DSA is valid.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        CREATE_OBJECT   CFbsBitGc              bgc
        CREATE_OBJECT   CFbsScreenDevice       fbsScreenDevice
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        dsa         Gc             GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-GC_command001
        COMMAND        bgc         Activate       GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-GC_command002
        COMMAND        dsa         Cancel
        COMMAND        bgc         disown
        OUTSTANDING  
        COMMAND        dsa         ~
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0003


START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0004
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0004
//! @SYMAPI                 CDirectScreenAccess::ScreenDevice()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Gets the screen device to draw to.
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create and construct a RWindow.
//!                         4. Create a CDirectScreenAccess.
//!                         5. Gets the screen device to draw to.
//!                         6. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults The returned screen device in DSA is valid.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        CREATE_OBJECT   CFbsScreenDevice       fbsScreenDevice
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        dsa         ScreenDevice   GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-ScreenDevice_command001 
        COMMAND        dsa         Cancel
        OUTSTANDING
        COMMAND        fbsScreenDevice   disown
        COMMAND        dsa         ~   
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0004


START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0005
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0005
//! @SYMAPI                 CDirectScreenAccess::DrawingRegion()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Gets the graphics context for drawing to the screen.
//!                         
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create and construct a RWindow class.
//!                         4. Create a CDirectScreenAccess.
//!                         5. Start direct screen access.
//!                         6. Get the clipping region to draw to.
//!                         7. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults The returned clipping region in DSA is valid.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        dsa         DrawingRegion
        COMMAND        dsa         Cancel
        OUTSTANDING          
        COMMAND        dsa         ~        
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0005


START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0006
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0006
//! @SYMAPI                 CDirectScreenAccess::DrawingRegion()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Gets the graphics context for drawing to the screen,without Starting.
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create and construct a RWindow class.
//!                         4. Activate window and notify beginredraw/endredraw.
//!                         5. Create a CDirectScreenAccess and start.
//!                         6. Get the clipping region to draw to.
//!                         7. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1.The returned clipping region in DSA is valid 2. Verify the returned region in DSA and the window shape is same.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        win         SetShape       GRAPHICS-WSERV-DirectScreenAccess-Setup-0006-0001-SetShape_command010
        COMMAND        win         Activate
        COMMAND        win         BeginRedraw
        COMMAND        win         EndRedraw       
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        dsa         DrawingRegion  GRAPHICS-WSERV-DirectScreenAccess-Setup-0006-0001-SetShape_command010
        COMMAND        dsa         Cancel
        OUTSTANDING        
        COMMAND        dsa         ~     
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0006

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0007
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0007
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Create two DSA,set the priority of the second DSA to high and check that AbortNow() and Restart() are called.
//! @SYMTestActions         1.  Create and connect a RWsSession
//!                         2.  Create and construct a CWsScreenDevice within the RWsSession
//!                         3.  Create and construct a RWindow class.
//!                         4.  Create two CDirectScreenAccess.
//!                         5.  Start the second DSA with heigh priority to check first DSA's AbortNow be called.
//!                            6.    Cancel the second DSA.
//!                         7.  Destruct and close all created object.
//! @SYMTestStatus            Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. AbortNow() and Restart() be called sucessfully.  2.Terminate reason is ETerminateRegion.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   RWindow                win2
        CREATE_OBJECT   CDirectScreenAccess    dsa
        CREATE_OBJECT   CDirectScreenAccess    dsa2
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        win2        new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win2        Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command009
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa2        NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command010
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        win         SetShape       GRAPHICS-WSERV-DirectScreenAccess-Setup-0006-0001-SetShape_command010
        COMMAND        win         Activate
        COMMAND        win         BeginRedraw
        COMMAND        win         EndRedraw       
        COMMAND        dsa2        SetPriority    GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-SetPriority_command001
        COMMAND        dsa2        StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        win2        SetShape       GRAPHICS-WSERV-DirectScreenAccess-Setup-0006-0001-SetShape_command010
        COMMAND        win2        Activate
        COMMAND        win2        BeginRedraw
        COMMAND        win2        EndRedraw
        COMMAND        dsa2        Cancel
        COMMAND        dsa         Cancel
        OUTSTANDING
        COMMAND        dsa2        ~
        COMMAND        dsa         ~
        COMMAND        win         Close
        COMMAND        win2        Close
        COMMAND        wingrp      Close
        COMMAND        scrdev      ~
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0007


START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0008
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0008
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        19/12/2007
//! @SYMTestCaseDesc        Bring an app to foreground to check that AbortNow() and Restart() are called.
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create CDirectScreenAccess and start.
//!                         4. Bringup an app to check DSA's AbortNow() and Restart() be called.
//!                         5. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. AbortNow() and Restart() be called sucessfully. 2.Terminate reason is ETerminateRegion.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-StartL_command001
        COMMAND        dsa         Util_BringAppFg     GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0022-0001-BringAppFg_command011
        OUTSTANDING
        COMMAND        dsa         ~        
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0008

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010
//! @SYMAPI                 CDirectScreenAccess::NewL(RWsSession{ref} , CWsScreenDevice{ref}, RWindowBase{ref}, MDirectScreenAccess{ref})
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        4/1/2008
//! @SYMTestCaseDesc        negative test, uses a non-constructed CWsScreenDevice while creating CDirectScreenAcess. 
//! @SYMTestActions         1. Creates a RWsSession and connect to server.
//!                         2. Creates a CWsScreenDevice attached to RWsSession without construction.
//!                         3. Completes the construction.
//!                         4. Creates and constructs a RWindow.
//!                         5. Creates a CDirectScreenAccess.
//!                         6. Destructs and closes all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults WSERV 3 panic received at Test Action 5.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010-0001-new_command003
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010-0001-new_command004
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010-0001-Construct_command005
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010-0001-new_command006
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010-0001-Construct_command007
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010-0001-NewL_command008
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK  !PanicString=WSERV !PanicCode=3
    RUN_TEST_STEP	100	T_GraphicsWservAPI	utilityClearPanicDlg
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0010

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011
//! @SYMAPI                 CDirectScreenAccess::NewL(RWsSession{ref} , CWsScreenDevice{ref}, RWindowBase{ref}, MDirectScreenAccess{ref})
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        4/1/2008
//! @SYMTestCaseDesc        negative test, uses a non-constructed RWindowBase while creating CDirectScreenAccess. 
//! @SYMTestActions         1. Creates a RWsSession and connects to server.
//!                         2. Creates a CWsScreenDevice and contructs.
//!                         3. Completes the construction.
//!                         4. Creates  an RWindow
//!                         5. Create a CDirectScreenAccess with non-construction RWindowBase.
//!                         6. Starts direct screen access.
//!                         7. Destructs and closes all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. DSA object created and no panic.
//!                         2. WSERV 6 panic received at Test Action 6. 
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND          ws                     new
        COMMAND          ws                     Connect   
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011-0001-new_command005
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011-0001-NewL_command006
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011-0001-StartL_command007
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK  !PanicString=WSERV !PanicCode=6 
    RUN_TEST_STEP	100	T_GraphicsWservAPI	utilityClearPanicDlg
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0011

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012
//! @SYMAPI                 CDirectScreenAccess::~CDirectScreenAccess()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        3/1/2008
//! @SYMTestCaseDesc        negative test, destructs CDirectScreenAccess without canceling it.              
//! @SYMTestActions         1. Creates and connects a RWsSession
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates and constructs a RWindow.
//!                         4. Creates a CDirectScreenAccess
//!                         5. Starts direct screen access.
//!                         6. Destructs DSA without Cancels.
//!                         6. Destructs and closes all the others created objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults DSA was descructed successfully (the DSA should be Cancelled at destruction).
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-NewL_command009
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012-0001-StartL_command010
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0012

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        3/1/2008
//! @SYMTestCaseDesc        negative test, starts DSA two times.
//!                         Informs the window server to start DSA and start again.
//! @SYMTestActions         1. Creates and connects a RWsSession
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates and constructs a RWindow.
//!                         4. Creates a CDirectScreenAccess
//!                         5. Starts direct screen access.
//!                         6. Starts direct screen access again.
//!                         7. Destructs and closes all created objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults WSERV 59 panic received at Test Action 6.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-NewL_command009
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-StartL_command010
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013-0001-StartL_command011
        COMMAND          dsa                    Cancel
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK !PanicString=WSERV !PanicCode=59
    RUN_TEST_STEP	100	T_GraphicsWservAPI	utilityClearPanicDlg
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0013

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014
//! @SYMAPI                 CDirectScreenAccess::ScreenDevice()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        4/1/2008
//! @SYMTestCaseDesc        negative test, gets the screen device without starting DSA.
//! @SYMTestActions         1. Creates and connects a RWsSession.
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates and constructs a RWindow.
//!                         4. Creates a CDirectScreenAccess.
//!                         5. Gets ScreenDevice.
//!                         6. Destructs and closes all created objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults Error -1 received at Test Action 5.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        CREATE_OBJECT    CFbsScreenDevice       fbsScreenDevice
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-NewL_command009
        COMMAND          !Error=-1   dsa        ScreenDevice         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014-0001-ScreenDevice_command010
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0014

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015
//! @SYMAPI                 CDirectScreenAccess::Gc()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        4/1/2008
//! @SYMTestCaseDesc        negative test, gets the graphic context without starting DSA.
//!                         Creates the DirectscreenAccess object WITHOUT starts it, gets the Gc and verify it.          
//! @SYMTestActions         1. Creates and connects a RWsSession
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates and constructs a RWindow.
//!                         4. Creates a CDirectScreenAccess.
//!                         5. Gets Gc
//!                         7. Destructs and closes all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults Error -1 received at Test Action 5.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        CREATE_OBJECT    CFbsBitGc              bgc
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-NewL_command009
        COMMAND          !Error=-1  dsa         Gc                   GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015-0001-Gc_command010
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0015

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016
//! @SYMAPI                 CDirectScreenAccess::ScreenDevice()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        2/1/2008
//! @SYMTestCaseDesc        gets the screen device and uses the returned CFbsScreenDevice to get the size of the device area.
//! @SYMTestActions         1. Creates and connects a RWsSession.
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession.
//!                         3. Creates and constructs a RWindow.
//!                         4. Creates a CDirectScreenAccess and Starts it.
//!                         5. Gets the screen device.
//!                         6. Checks the Size of Screen Device.
//!                         7. Destructs and closes all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. The returned screen device is not NULL.
//!                         2. The screen size is returned.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        CREATE_OBJECT    CFbsScreenDevice       fbsScreenDevice
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-NewL_command009
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-StartL_command010
        COMMAND          dsa                    ScreenDevice         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016-0001-ScreenDevice_command011
        COMMAND          fbsScreenDevice        SizeInTwips
        COMMAND          dsa                    Cancel
        OUTSTANDING
        COMMAND          fbsScreenDevice        disown
        COMMAND          dsa                    ~   
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0016

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017
//! @SYMAPI                 CDirectScreenAccess::Gc()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        4/1/2008
//! @SYMTestCaseDesc        gets the graphic context and draw two lines:(25,26)-(50,60),(-10000,-10000)-(500000,600000).                       
//! @SYMTestActions         1. Creates and connects a RWsSession
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates and constructs a RWindow.
//!                         4. Creates a CDirectScreenAccess and Starts it.
//!                         5. Gets and actives the Gc from DSA.
//!                         6. draws line (25,26)-(50,60).
//!                         7. draws line (-10000,-10000)-(500000,600000).
//!                         8. Destructs and closes all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. The returned Gc is not NULL. 
//!                         2. The line should be drawn no panic.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        CREATE_OBJECT    CFbsBitGc              bgc
        CREATE_OBJECT    CFbsScreenDevice       fbsScreenDevice
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-NewL_command009
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-StartL_command010
        COMMAND          dsa                    ScreenDevice         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-ScreenDevice_command011
        COMMAND          dsa                    Gc                   GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-Gc_command012
        COMMAND          bgc                    Activate             GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-Activate_command013
        COMMAND          bgc                    DrawLine             GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-DrawLine_command014
        COMMAND          bgc                    DrawLine             GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017-0001-DrawLine_command015
        COMMAND          fbsScreenDevice        Update
        COMMAND          dsa                    Cancel
        COMMAND          bgc                    disown
        COMMAND          fbsScreenDevice        disown  
        OUTSTANDING  
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0017

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        8/1/2008
//! @SYMTestCaseDesc        sets a region ,starts the DSA, cancels it, changes the region and starts again.
//! @SYMTestActions         1. Creates and connects a RWsSession
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates and constructs a RWindow.
//ŁĄ                        4. Actives the RWindow.
//!                         5. Changes the sharp of the region of RWindow. 
//!                         6. Creates a CDirectScreenAccess and Starts it.
//!                         7. Checks the DrawRegion.
//!                         8. Cancels the DSA.
//!                         9. Changes the sharp of the region of RWindow to another size. 
//!                         10. Starts the DSA again.
//!                         11. Checks the DrawRegion again.
//!                         12. Destructs and closes all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. DSA was started successfully at first time.
//!                         2. DSA was started successfully at second time.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-Construct_command008
        COMMAND          win                    Activate
        COMMAND          win                    SetShape             GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-SetShape_command010
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-NewL_command011
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-StartL_command012
        COMMAND          dsa                    DrawingRegion        GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-DrawingRegion_command013
        COMMAND          dsa                    Cancel
        OUTSTANDING
        COMMAND          win                    SetShape             GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-SetShape_command016        
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-StartL_command017
        COMMAND          dsa                    DrawingRegion        GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018-0001-DrawingRegion_command018 
        COMMAND          dsa                    Cancel
        OUTSTANDING  
        COMMAND          dsa                    ~
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0018

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Yue Zhang
//! @SYMCreationDate        15/1/2008
//! @SYMTestCaseDesc        Starts DSA , Brings an app to foreground , starts DSA again.
//! @SYMTestActions         1. Creates and connects a RWsSession
//!                         2. Creates and constructs a CWsScreenDevice within the RWsSession
//!                         3. Creates CDirectScreenAccess and start.
//!                         4. Brings up an app to check DSA's AbortNow() and Restart() be called.
//!                         5. Starts DSA again.
//!                         5. Destruct and close all created object.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults 1. AbortNow() and Restart() be called sucessfully after the app had been brought to foreground. 
//!                         2. Terminate reason is ETerminateRegion.
//!                         3. DSA was started successfully at second time.
//! @SYMTestType            CIT
    START_TEST_BLOCK     10                     T_GraphicsWservAPI   \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT    RWsSession             ws
        CREATE_OBJECT    CWsScreenDevice        scrdev
        CREATE_OBJECT    RWindowGroup           wingrp
        CREATE_OBJECT    RWindow                win
        CREATE_OBJECT    CDirectScreenAccess    dsa
        COMMAND          ws                     new
        COMMAND          ws                     Connect
        COMMAND          scrdev                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-new_command003
        COMMAND          scrdev                 Construct
        COMMAND          wingrp                 new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-new_command005
        COMMAND          wingrp                 Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-Construct_command006
        COMMAND          win                    new                  GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-new_command007
        COMMAND          win                    Construct            GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-Construct_command008
        COMMAND          dsa                    NewL                 GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-NewL_command009
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-StartL_command010
        COMMAND          dsa                    Util_BringAppFg      GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-BringAppFg_command011
        OUTSTANDING
        COMMAND          dsa                    StartL               GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019-0001-StartL_command013
        COMMAND          dsa                    Cancel
        OUTSTANDING
        COMMAND          dsa                    ~        
        COMMAND          scrdev                 ~
        COMMAND          win                    Close
        COMMAND          wingrp                 Close
        COMMAND          ws                     Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0019

START_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0020
//! @SYMTestCaseID          GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0020
//! @SYMAPI                 CDirectScreenAccess::StartL()
//! @SYMAuthor              Jeffery Zhao
//! @SYMCreationDate        16-05-2008
//! @SYMTestCaseDesc        Informs the window server to start DSA and set window displaymode to EColor4K.
//! @SYMTestActions         1. Create and connect a RWsSession
//!                         2. Create and construct a CWsScreenDevice within the RWsSession
//!                         3. Create and construct a RWindow.
//!                         4. Create a CDirectScreenAccess.
//!                         5. Set the window displaymode to EColor4K.
//!                         6. Get the window displaymode to verify.
//!                         7. Start direct screen access.
//!                         8. Destruct and close all created objects.
//! @SYMTestStatus          Implemented
//! @SYMTestPriority        High
//! @SYMTestExpectedResults DSA was started successfully.
//! @SYMTestType            CIT
    START_TEST_BLOCK    10         T_GraphicsWservAPI    \graphics\GRAPHICS-WSERV-DirectScreenAccess-PublicApi.ini
        CREATE_OBJECT   RWsSession             ws
        CREATE_OBJECT   CWsScreenDevice        scrdev
        CREATE_OBJECT   RWindowGroup           wingrp
        CREATE_OBJECT   RWindow                win
        CREATE_OBJECT   CDirectScreenAccess    dsa
        COMMAND        ws          new
        COMMAND        ws          Connect
        COMMAND        scrdev      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        scrdev      Construct
        COMMAND        wingrp      new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        wingrp      Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command006
        COMMAND        win         new            GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-new_command003
        COMMAND        win         Construct      GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-Construct_command008
        COMMAND        dsa         NewL           GRAPHICS-WSERV-DirectScreenAccess-Setup-0001-0001-NewL_command009
        COMMAND        win         SetRequiredDisplayMode GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0020-0001-SetRequiredDisplayMode_command010
        COMMAND        win         DisplayMode    GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0020-0001-DisplayMode_command011
        COMMAND        dsa         StartL         GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0020-0001-StartL_command012
        COMMAND        dsa         Cancel
        OUTSTANDING
        COMMAND        dsa         ~
        COMMAND        scrdev      ~
        COMMAND        win         Close
        COMMAND        wingrp      Close
        COMMAND        ws          Close
    END_TEST_BLOCK
END_TESTCASE GRAPHICS-WSERV-DirectScreenAccess-PublicApi-0020
