diff -r 000000000000 -r bde4ae8d615e os/graphics/windowing/windowserver/test/t_integ/src/t_winutils.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/os/graphics/windowing/windowserver/test/t_integ/src/t_winutils.cpp	Fri Jun 15 03:10:57 2012 +0200
@@ -0,0 +1,134 @@
+// Copyright (c) 2007-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
+ @test
+ @internalComponent
+*/
+
+#include <hal.h>
+#include "t_winutils.h"
+#include "t_pseudoapputils.h"
+
+EXPORT_C CTestBitmap* CTestBitmap::NewLC(const TSize& aSizeInPixels, TDisplayMode aDispMode)
+	{
+	return NewLC(0, aSizeInPixels, aDispMode);
+	}
+
+EXPORT_C CTestBitmap* CTestBitmap::NewL(const TSize& aSizeInPixels, TDisplayMode aDispMode)
+	{
+	CTestBitmap* self = NewLC(0, aSizeInPixels, aDispMode);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+EXPORT_C CTestBitmap* CTestBitmap::NewL(TInt aHandle)
+	{
+	CTestBitmap* self = NewLC(aHandle, TSize(), ENone);
+	CleanupStack::Pop(self);
+	return self;
+	}
+
+CTestBitmap* CTestBitmap::NewLC(TInt aHandle, const TSize& aSizeInPixels, TDisplayMode aDispMode)
+	{
+	CTestBitmap* self = new(ELeave) CTestBitmap();
+	CleanupStack::PushL(self);
+	self->ConstructL(aHandle, aSizeInPixels, aDispMode);
+	return self;
+	}
+
+void CTestBitmap::ConstructL(TInt aHandle, const TSize& aSizeInPixels, TDisplayMode aDispMode)
+	{
+	iBitmap = new(ELeave) CFbsBitmap();
+	CleanupStack::PushL(iBitmap);
+
+	if (aHandle==0)
+		{
+		User::LeaveIfError(iBitmap->Create(aSizeInPixels, aDispMode));
+		}
+	else
+		{
+		User::LeaveIfError(iBitmap->Duplicate(aHandle));
+		}
+	iDevice = CFbsBitmapDevice::NewL(iBitmap);
+	CleanupStack::PushL(iDevice);
+
+	User::LeaveIfError(iDevice->CreateContext(iGc));
+
+	CleanupStack::Pop(2);
+	}
+
+CTestBitmap::~CTestBitmap()
+	{
+	delete iGc;
+	delete iDevice;
+	delete iBitmap;
+	}
+
+EXPORT_C void TImportPseudoAppConfig::ImportPseudoAppConfigL(TInt aScreenNo, TInt& aFrameDuration, TInt& aFrameDelay,
+                                                             TDisplayMode& aMode, TSize& aScreenSize, CIniData* aUtils)
+	{
+	TInt screenMode;
+	TInt numberOfScreens;
+	TPtrC screenAspectRatio;
+	TInt screenNumber;
+
+	READ_INI1(frame_duration, aFrameDuration, aUtils);
+	READ_INI1(screen_aspect_ratio, screenAspectRatio, aUtils);
+	READ_INI1(number_of_screens, numberOfScreens, aUtils);
+	READ_INI1(frame_delay, aFrameDelay, aUtils);
+	READ_INI2(screen_mode, EColor16MA, EColor64K, screenMode, EColor16MA, EColor64K, aUtils);
+
+	aMode = static_cast<TDisplayMode>(screenMode);
+
+	//Determine the number of screens from the hardware and compare with the value from the ini file
+	HAL::Get(HALData::EDisplayNumberOfScreens, screenNumber);
+	if(numberOfScreens != screenNumber)
+		{
+		RDebug::Print(_L("Error: A %d screen test has been indicated, but %d screen(s) exist\n"), numberOfScreens, screenNumber);
+		}
+
+	//Determine the screen dimensions
+	RWsSession session;
+	User::LeaveIfError(session.Connect());
+
+	CWsScreenDevice* screenDevice = new(ELeave) CWsScreenDevice(session);
+	CleanupStack::PushL(screenDevice);
+
+	User::LeaveIfError(screenDevice->Construct(aScreenNo));
+
+	aScreenSize = screenDevice->SizeInPixels();
+
+	//Check that the aspect ratio matches that of the screen
+	TSize aSpectRatio;
+
+	if(TImportScreenConfig::ExtractAspectRatio(screenAspectRatio, aSpectRatio) == KErrNone)
+		{
+		if(aScreenSize.iWidth*aSpectRatio.iHeight != aScreenSize.iHeight*aSpectRatio.iWidth)
+			{
+			RDebug::Print(_L("Aspect ratio from string does not match screen dimensions\n"));
+			RDebug::Print(_L("Read in %d:%d, Actual dimensions %d:%d\n"), aSpectRatio.iWidth, aSpectRatio.iHeight, aScreenSize.iWidth, aScreenSize.iHeight);
+			}
+		}
+	else
+		{
+		RDebug::Print(_L("Cannot determine aspect ratio from string, quitting: %s\n"), screenAspectRatio.Ptr());
+		User::Exit(0);
+		}
+
+	CleanupStack::PopAndDestroy(screenDevice);
+	session.Close();
+	}