graphicsapitest/graphicssvs/wserv/scripts/GRAPHICS-WSERV-DirectScreenAccess-PublicApi.script
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsapitest/graphicssvs/wserv/scripts/GRAPHICS-WSERV-DirectScreenAccess-PublicApi.script	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,914 @@
+//
+// 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