diff -r 2717213c588a -r 171fae344dd4 windowing/windowserver/tauto/TBITMAP.CPP --- a/windowing/windowserver/tauto/TBITMAP.CPP Tue Jun 22 15:21:29 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -// Copyright (c) 1996-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 the window server bitmap class -// Test the window server bitmap class -// -// - -/** - @file - @test - @internalComponent - Internal Symbian test code -*/ - -#include "TBITMAP.H" - -// - -CTBitmap::CTBitmap(CTestStep* aStep): - CTWsGraphicsBase(aStep) - { - } - -CTBitmap::~CTBitmap() - { - delete iBitmap1; - delete iBitmap2; - } - -void CTBitmap::ConstructL() - { - } - -void CTBitmap::BasicTestsL() - { - iBitmap1=new(ELeave) CWsBitmap(TheClient->iWs); - iBitmap2=new(ELeave) CWsBitmap(TheClient->iWs); - User::LeaveIfError(iBitmap1->Create(TSize(20,10),EGray4)); -// Re-create should close previous Create - User::LeaveIfError(iBitmap1->Create(TSize(20,10),EGray4)); - User::LeaveIfError(iBitmap2->Duplicate(iBitmap1->Handle())); - TEST(iBitmap1->SizeInPixels()==iBitmap2->SizeInPixels()); - - TInt err=iBitmap2->Load(_L("NOTEXIST.XXX"),0); - TEST(err==KErrNotFound || err==KErrPathNotFound); - if (err!=KErrNotFound && err!=KErrPathNotFound) - INFO_PRINTF4(_L("Bitmap2->Load(_L(NOTEXIST.XXX),0) return value - Expected: %d or %d , Actual: %d"), KErrNotFound, KErrPathNotFound, err); - - TInt retVal = iBitmap2->Handle(); - TEST(retVal==0); - if (retVal!=0) - INFO_PRINTF3(_L("iBitmap2->Handle() return value - Expected: %d , Actual: %d"), 0, retVal); - - RFs fs; - User::LeaveIfError(fs.Connect()); - fs.SetNotifyUser(EFalse); - TInt ret=fs.MkDir(SAVE_BITMAP_NAME); - if (ret!=KErrNone && ret!=KErrAlreadyExists && ret!=KErrPathNotFound) - User::Leave(ret); - fs.Close(); -// - retVal = iBitmap1->Save(SAVE_BITMAP_NAME); - TEST(retVal==KErrNone); - if (retVal!=KErrNone) - INFO_PRINTF3(_L("iBitmap1->Save(SAVE_BITMAP_NAME) return value - Expected: %d , Actual: %d"), KErrNone, retVal); - - retVal = iBitmap2->Load(SAVE_BITMAP_NAME,0); - TEST(retVal==KErrNone); - if (retVal!=KErrNone) - INFO_PRINTF3(_L("iBitmap2->Load(SAVE_BITMAP_NAME,0) return value - Expected: %d , Actual: %d"), KErrNone, retVal); - - TEST(iBitmap1->SizeInPixels()==iBitmap2->SizeInPixels()); - } - - -void CTBitmap::TestFixForPDEF098889L() - { - TRequestStatus status; - TThreadParams params; - params.iScreenNr = TheClient->iWs.GetFocusScreen(); - - RThread thread1; - params.iFunction = Function1PDEF098889L; - TEST(thread1.Create(_L("PDEF098889_1"), ThreadFunction, 0x1000, NULL, ¶ms)==KErrNone); - thread1.Logon(status); - thread1.Resume(); - User::WaitForRequest(status); - TEST(status==KErrNone); - TEST(thread1.ExitType()==EExitKill); - thread1.Close(); - - RThread thread2; - params.iFunction = Function2PDEF098889L; - TEST(thread2.Create(_L("PDEF098889_2"), ThreadFunction, 0x1000, NULL, ¶ms)==KErrNone); - thread2.Logon(status); - thread2.Resume(); - User::WaitForRequest(status); - TEST(status==KErrNone); - TEST(thread2.ExitType()==EExitKill); - thread2.Close(); - } - -TInt CTBitmap::ThreadFunction(TAny* aParams) - { - CTrapCleanup *trap = CTrapCleanup::New(); - __ASSERT_ALWAYS(trap, User::Invariant()); - RWsSession session; - TInt err = session.Connect(); - if (err == KErrNone) - { - CWsScreenDevice *device = new CWsScreenDevice(session); - if (device) - { - err = device->Construct(static_cast(aParams)->iScreenNr); - if (err == KErrNone) - { - TRAP(err, static_cast(aParams)->iFunction(session, *device)); - } - delete device; - } - else - err = KErrNoMemory; - session.Close(); - } - delete trap; - return err; - } - -void CTBitmap::Function1PDEF098889L(RWsSession& aSession, CWsScreenDevice& aDevice) - { - CWindowGc *gc; - User::LeaveIfError(aDevice.CreateContext(gc)); - CleanupStack::PushL(gc); - RWindowGroup group(aSession); - User::LeaveIfError(group.Construct(1, EFalse)); - CWsBitmap *bitmap = new(ELeave) CWsBitmap(aSession); - CleanupStack::PushL(bitmap); - User::LeaveIfError(bitmap->Create(TSize(32, 32), EGray256)); - RWindow window(aSession); - User::LeaveIfError(window.Construct(group, 2)); - window.SetExtent(TPoint(0,0), TSize(32, 32)); - User::LeaveIfError(window.SetRequiredDisplayMode(EColor64K)); - window.Activate(); - window.BeginRedraw(); - gc->Activate(window); - gc->BitBlt(TPoint(0, 0), bitmap); - gc->Deactivate(); - window.EndRedraw(); - CleanupStack::PopAndDestroy(bitmap); - aSession.Flush(); - CleanupStack::PopAndDestroy(gc); - } - -void CTBitmap::Function2PDEF098889L(RWsSession& aSession, CWsScreenDevice& /*aDevice*/) - { - RWindowGroup group(aSession); - User::LeaveIfError(group.Construct(1, EFalse)); - CWsBitmap *bitmap = new(ELeave) CWsBitmap(aSession); - CleanupStack::PushL(bitmap); - User::LeaveIfError(bitmap->Create(TSize(32, 32), EGray256)); - RWindow window(aSession); - User::LeaveIfError(window.Construct(group, 2)); - window.SetExtent(TPoint(0,0), TSize(32, 32)); - User::LeaveIfError(window.SetRequiredDisplayMode(EColor64K)); - User::LeaveIfError(window.SetTransparencyWsBitmap(*bitmap)); - window.Activate(); - CleanupStack::PopAndDestroy(bitmap); - aSession.Flush(); - } - -void CTBitmap::RunTestCaseL(TInt /*aCurTestCase*/) - { - ((CTBitmapStep*)iStep)->SetTestStepID(KUnknownSYMTestCaseIDName); - switch(++iTest->iState) - { -/** -@SYMTestCaseID GRAPHICS-WSERV-0201 - -@SYMDEF DEF081259 - -@SYMTestCaseDesc Test basic bitmap functionality - -@SYMTestPriority High - -@SYMTestStatus Implemented - -@SYMTestActions Test that bitmaps can be loaded, copied and saved - correctly - -@SYMTestExpectedResults The bitmaps are manipulated withotu error -*/ - case 1: - ((CTBitmapStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0201")); - iTest->LogSubTest(_L("Bitmap1")); - BasicTestsL(); - break; - case 2: -/** -@SYMTestCaseID GRAPHICS-WSERV-0532 -*/ - ((CTBitmapStep*)iStep)->SetTestStepID(_L("GRAPHICS-WSERV-0532")); - if (TransparencySupportedL()==KErrNotSupported) - return; - iTest->LogSubTest(_L("Test fix for PDEF098889")); - TestFixForPDEF098889L(); - break; - default: - ((CTBitmapStep*)iStep)->SetTestStepID(KNotATestSYMTestCaseIDName); - ((CTBitmapStep*)iStep)->CloseTMSGraphicsStep(); - TestComplete(); - break; - } - ((CTBitmapStep*)iStep)->RecordTestResultL(); - } - -__WS_CONSTRUCT_STEP__(Bitmap)