mmtestenv/mmtestfwunittest/src/tsu_mmtsth02/TSU_MmTsth02.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 13 Oct 2010 16:15:10 +0300
branchRCL_3
changeset 65 af86cc8a4692
parent 0 40261b775718
permissions -rw-r--r--
Revision: 201039 Kit: 201041

// Copyright (c) 2002-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:
// This file contains the test steps for Unit Test Suite 02 : Script.cpp
// 
//

// EPOC includes
#include <e32base.h>

// Test system includes
// Test system includes
#include <testframework.h>
#include "script.h"
#include "parseline.h"
#include "Filename.h"

// Specific includes for this test suite
#include "TSU_MmTsthSuite02.h"

// Specific includes for these test steps
#include "TSU_MmTsth02.h"

// --------------------------------------------

// Unit Test Suite 02: Script.cpp
// Depends on : Parseline, FileName

// Tests :-
// 1 construct a CScript
// 2 open a script file
// 3 execute a script file
// 12 add / display results	(removed - the functionality is covered by Parseline tests 0102 and 0103)
 
// ---------------------
// RTestMmTsthU0201

RTestMmTsthU0201* RTestMmTsthU0201::NewL()
	{
	RTestMmTsthU0201* self = new(ELeave) RTestMmTsthU0201;
	return self;
	}

// Each test step initialises its own name.
RTestMmTsthU0201::RTestMmTsthU0201()
	{
	iTestStepName = _L("MM-TSTH-U-0201");
	}

// Do the test step.
TVerdict RTestMmTsthU0201::DoTestStepL()
	{
	INFO_PRINTF1(_L("Unit test for Script : construction"));

	TVerdict currentVerdict = EPass;

	// initialise a CParseLine
	CLog* theLogClient  = iSuite->LogSystem();
	CTestUtils* theTestUtils  = CTestUtils::NewL(theLogClient);
	CleanupStack::PushL(theTestUtils);
	TInt64 defTime(-1);
	CScript* theTestScript = CScript::NewLC(theTestUtils, theLogClient, defTime, KNullDesC);

	// if we got here, we're constructed successfully
	INFO_PRINTF1(_L("CScript constructed successfully"));

	CleanupStack::PopAndDestroy(2); // theTestScript, theTestUtils
	theTestScript = NULL; // just to remove warning

	return iTestStepResult = currentVerdict; // should be EPass if we've got here
	}

// ---------------------
// RTestMmTsthU0202

RTestMmTsthU0202* RTestMmTsthU0202::NewL()
	{
	RTestMmTsthU0202* self = new(ELeave) RTestMmTsthU0202;
	return self;
	}

// Each test step initialises its own name.
RTestMmTsthU0202::RTestMmTsthU0202()
	{
	iTestStepName = _L("MM-TSTH-U-0202");
	}

// Do the test step.
TVerdict RTestMmTsthU0202::DoTestStepL()
	{
	INFO_PRINTF1(_L("Unit test for Script - OpenScriptFile"));

	TVerdict currentVerdict = EPass;

	_LIT(KDummyScriptName, "TSU_MMTSTH02_DUMMY");
	CFileName* scriptFileName = CFileName::NewLC();
	*scriptFileName = KDummyScriptName;
	if (iTestScript->OpenScriptFile(scriptFileName) == EFalse)
	{
		ERR_PRINTF2(_L("OpenScriptFile failed to open %S"), &KDummyScriptName());
		currentVerdict = EFail;
	}
	CleanupStack::PopAndDestroy(scriptFileName);
	return iTestStepResult = currentVerdict; // should be EPass if we've got here
	}

// ---------------------
// RTestMmTsthU0203

RTestMmTsthU0203* RTestMmTsthU0203::NewL()
	{
	RTestMmTsthU0203* self = new(ELeave) RTestMmTsthU0203;
	return self;
	}

// Each test step initialises its own name.
RTestMmTsthU0203::RTestMmTsthU0203()
	{
	iTestStepName = _L("MM-TSTH-U-0203");
	}

// Do the test step.
TVerdict RTestMmTsthU0203::DoTestStepL()
	{
	INFO_PRINTF1(_L("Unit test for Script - ExecuteScriptL"));

	TVerdict currentVerdict = EPass;

	_LIT(KDummyScriptName, "TSU_MMTSTH02_DUMMY");
	CFileName* scriptFileName = CFileName::NewLC();
	*scriptFileName = KDummyScriptName;
	if (iTestScript->OpenScriptFile(scriptFileName) == EFalse)
		{
		ERR_PRINTF2(_L("OpenScriptFile failed to open %S"), &KDummyScriptName());
		CleanupStack::PopAndDestroy(scriptFileName);
		return iTestStepResult = EInconclusive;
		}

	// execute the script
	TVerdict theTestVerdict=EFail;
	TRAPD(err, theTestVerdict = iTestScript->ExecuteScriptL());

	if(err != KErrNone)
		{
		ERR_PRINTF2(_L("ExecuteScriptL left with error code %d"), err);
		currentVerdict = EFail;
		}
	else if (theTestVerdict!=EPass)
		{
		ERR_PRINTF2(_L("ExecuteScriptL returned with error  %d"), theTestVerdict);
		currentVerdict =theTestVerdict;
		}

	CleanupStack::PopAndDestroy(scriptFileName);
	return iTestStepResult = currentVerdict; // should be EPass if we've got here
	}