--- a/windowing/windowserver/tauto/tdirecta2.cpp Fri Jun 11 14:58:47 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-// Copyright (c) 2008-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:
-// Test Direct Screen Access on a screen that supports transparency
-//
-//
-
-#include "tdirecta2.h"
-
-const TInt KMainTestOrdinalPriority=65535;
-const TInt KOntopOfAllOthersTestOrdinalPriority=65537;
-
-CTDirect2::CTDirect2(CTestStep* aStep):
- CTWsGraphicsBase(aStep)
- {
- }
-
-CTDirect2::~CTDirect2()
- {
- delete iDsa;
- delete iUnderWindow;
- delete iOverWindow;
- delete iScreenDevice;
- delete iWindowGroup;
- delete iTimer;
-
- // put focus back to current screen as this test changed the focus screen to primary screen
- TheClient->iWs.SetFocusScreen(iTest->iScreenNumber);
- }
-
-void CTDirect2::ConstructL()
- {
- // the following line makes sure that a console object hidden outside of
- // screens range doesn't affect test results being on top of tested objects
- TheClient->iGroup->GroupWin()->SetOrdinalPosition(0, KMainTestOrdinalPriority);
- }
-
-TInt CTDirect2::Timeout(TAny* aDirect2)
- {
- static_cast<CTDirect2*>(aDirect2)->HandleTimeout();
- return KErrNone;
- }
-
-void CTDirect2::HandleTimeout()
- {
- // Send window group to back to avoid possibility of it
- // interfering with other parts of this test
- iWindowGroup->GroupWin()->SetOrdinalPosition(0, -1);
-
- iTimer->Cancel(); // Don't call back again
- TEST(EFalse); // Fail the test, as we didn't get a DSA abort within timeout period
- iTestCaseComplete = ETrue; // Move to next test case
- }
-
-void CTDirect2::AbortNow(RDirectScreenAccess::TTerminationReasons /*aReason*/)
- {
- iTimer->Cancel(); // As soon as abort is received, we don't need the timer anymore
- }
-
-void CTDirect2::Restart(RDirectScreenAccess::TTerminationReasons /*aReason*/)
- {
- // Send window group to back to avoid possibility of it
- // interfering with other tests
- iWindowGroup->GroupWin()->SetOrdinalPosition(0, -1);
-
- iTestCaseComplete = ETrue; // Move to next test case
-
- // Don't bother restarting DSA, we were only interested in making sure the abort was sent by wserv
- }
-
-// Starts DSA on a topmost window, then puts a translucent window ontop of it
-// to make sure wserv sends a DSA Abort even though the translucent window
-// hasn't changed the visible area of the DSA window
-void CTDirect2::StartTranslucentWindowOverDsaL()
- {
- // Use a new window group so we can put windows ontop of all others
- iWindowGroup = new(ELeave) CTWindowGroup(TheClient);
- iWindowGroup->ConstructL();
-
- // Create new blank window
- iUnderWindow = new(ELeave) CTBlankWindow();
- iUnderWindow->SetUpL(TPoint(10,10), TSize(100,100), iWindowGroup, *TheClient->iGc);
- iUnderWindow->SetColor(TRgb(0,192,0));
-
- // Make window group visible ontop of all others
- User::LeaveIfError(iWindowGroup->GroupWin()->SetOrdinalPositionErr(0, KOntopOfAllOthersTestOrdinalPriority));
- TheClient->Flush();
-
- // Call Finish() to wait until under window has been rendered.
- // Once window has been rendered, we can be sure window server has
- // calculated the "top visible" region of the window.
- TheClient->iWs.Finish();
-
- // Start DSA on under window
- iScreenDevice = new(ELeave) CWsScreenDevice(TheClient->iWs);
- User::LeaveIfError(iScreenDevice->Construct(iTest->iScreenNumber));
- iDsa = CDirectScreenAccess::NewL(TheClient->iWs, *iScreenDevice, *iUnderWindow->BaseWin(), *this);
- iDsa->StartL();
-
- // Put translucent window ontop so as to reduce the top visible area, but leave the
- // visible area unchanged (as the translucent window doesn't change the visible area
- // of the window underneath it).
- iOverWindow = new(ELeave) CTTitledWindow();
- _LIT(KTranslucentWindowTitle, "Translucent window");
- iOverWindow->SetUpL(TPoint(60,60), TSize(150,100), iWindowGroup, *TheClient->iGc, NULL, ETrue);
- TWindowTitle windowTitle(KTranslucentWindowTitle);
- iOverWindow->SetTitle(windowTitle);
- iOverWindow->SetColor(TRgb(192, 0, 0, 128));
- TheClient->Flush();
-
- // Start a timer, if the timeout triggers, fail the test, as we should get
- // an abort DSA from wserv within the timeout
- iTimer = CPeriodic::NewL(CActive::EPriorityStandard);
- const TInt KTimeoutPeriod = 5000000; // 5 seconds should give the client plenty of time to respond to the abort
- iTimer->Start(KTimeoutPeriod, 0, TCallBack(CTDirect2::Timeout, this));
-
- // Do nothing more here, once over win is rendered, wserv should cause CAbortTest::AbortNow
- // to be called
- }
-
-void CTDirect2::RunTestCaseL(TInt aCurTestCase)
- {
- ((CTDirect2Step*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName);
- switch(aCurTestCase)
- {
-/**
-@SYMTestCaseID GRAPHICS-WSERV-0176
-
-@SYMDEF PDEF116863
-
-@SYMTestCaseDesc Overlapping a translucent window ontop of a DSA window should abort DSA
-
-@SYMTestPriority High
-
-@SYMTestStatus Implemented
-
-@SYMTestActions Start DSA on a blank window.
- Then place a translucent window so that it partially overlaps the DSA window.
-
-@SYMTestExpectedResults Wserv should send a DSA abort when the translucent window is placed ontop of the DSA window.
-*/
- case 1:
- ((CTDirect2Step*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0176"));
- if (!iOnceOnly)
- {
- _LIT(DSA1,"Translucent window overlaping DSA window");
- INFO_PRINTF1(DSA1);
- StartTranslucentWindowOverDsaL(); // call this only once
- iOnceOnly = ETrue;
- }
- if (!iTestCaseComplete)
- {
- // Keep calling this test case until iTestCaseComplete is true
- ResetCounter(aCurTestCase-1);
- }
- else
- {
- iOnceOnly = EFalse;
- // Move to next test case in sequence
- iTestCaseComplete = EFalse;
- }
- break;
-
- default:
- INFO_PRINTF1(_L("Test complete\n"));
- ((CTDirect2Step*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName);
- ((CTDirect2Step*)iStep)->CloseTMSGraphicsStep();
- TestComplete();
- break;
- }
- ((CTDirect2Step*)iStep)->RecordTestResultL();
- }
-
-__WS_CONSTRUCT_STEP__(Direct2)
-