diff -r c76ea6caa649 -r b276843a15ba mpx/tsrc/public/basic/collectiontest/src/testutility.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpx/tsrc/public/basic/collectiontest/src/testutility.cpp Tue Sep 21 11:25:55 2010 -0500 @@ -0,0 +1,176 @@ +/* +* Copyright (c) 2002 - 2007 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: Provide common utility function for all test cases +* +*/ + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include +#include +#include "testutility.h" + +// ---------------------------------------------------------------------------------------------------------- +// Test whether aContainer containing all the text object in aArray with aAttr attribues in order +// ---------------------------------------------------------------------------------------------------------- +// +TBool TestUtility::MatchMediaArrayTextObject(const CMPXMedia& aContainer, const MDesC16Array& aArray, + TMPXAttribute& aAttr) + { + TBool match = ValidateMediaArrayObject(aContainer, aArray.MdcaCount()); + if( match ) + { + CMPXMediaArray* contArray = aContainer.Value( TMPXAttribute(KMPXMediaIdContainer,EMPXMediaArrayContents) ); + TInt contCnt = contArray->Count(); + + for(TInt i = 0; i < contCnt; i++) + { + const CMPXMedia* contItem = ( *contArray )[i]; + const TDesC& contText = contItem->ValueText( aAttr ); + if(contItem->IsSupported( aAttr ) == EFalse || aArray.MdcaPoint( i ) != contText ) + { + match = EFalse; + break; + } + } + } + return match; + } + +// ---------------------------------------------------------------------------------------------------------- +// Test whether aMedia1 and aMedia2 support same attribute +// ---------------------------------------------------------------------------------------------------------- +// +TBool TestUtility::ValidateMediaObject(const CMPXMedia& aMedia1, const CMPXMedia& aMedia2, + TMPXAttribute& aAttr) + { + TBool match = ETrue; // assume true + if(!aMedia1.IsSupported(aAttr) || !aMedia2.IsSupported(aAttr)) + { + match = EFalse; + } + return match; + } + +// ---------------------------------------------------------------------------------------------------------- +// Test whether aMedia1 and aMedia2 support same array attribute +// ---------------------------------------------------------------------------------------------------------- +// +TBool TestUtility::ValidateMediaArrayObject(const CMPXMedia& aMedia1, const CMPXMedia& aMedia2) + { + TBool match = ETrue; // assume true + TMPXAttribute arrayAttr(KMPXMediaIdContainer,EMPXMediaArrayContents); + TMPXAttribute arrayCntAttr(KMPXMediaIdContainer,EMPXMediaArrayCount); + if(!aMedia1.IsSupported( arrayAttr ) || + !aMedia1.IsSupported( arrayCntAttr ) || + !aMedia2.IsSupported( arrayAttr ) || + !aMedia2.IsSupported( arrayCntAttr) ) + { + match = EFalse; + } + else + { + // TODO: commented part because a minor bug in CMPXCollectionEngine::ListPluginsL + // where "count" doesn't match array's count + //TInt m1Cnt = *aMedia1.Value( arrayCntAttr ); + //TInt m2Cnt = *aMedia2.Value( arrayCntAttr ); + //if(m1Cnt == m2Cnt) + // { + CMPXMediaArray* m1Array = aMedia1.Value( arrayAttr ); + CMPXMediaArray* m2Array = aMedia1.Value( arrayAttr ); + + //if(m1Array->Count() != m1Cnt || m2Array->Count() != m2Cnt) + if(m1Array->Count() != m2Array->Count()) + { + match = EFalse; + } + // } + //else + // { + // match = EFalse; + // } + } + return match; + } + +// ---------------------------------------------------------------------------------------------------------- +// Test whether aMedia is media array and same count as aArray +// ---------------------------------------------------------------------------------------------------------- +// +TBool TestUtility::ValidateMediaArrayObject(const CMPXMedia& aMedia, TInt aArrayCnt) + { + TBool match = ETrue; // assume true + TMPXAttribute arrayAttr(KMPXMediaIdContainer,EMPXMediaArrayContents); + TMPXAttribute arrayCntAttr(KMPXMediaIdContainer,EMPXMediaArrayCount); + if(!aMedia.IsSupported( arrayAttr ) || + !aMedia.IsSupported( arrayCntAttr ) ) + { + match = EFalse; + } + else + { + // TODO: commented part because a minor bug in CMPXCollectionEngine::ListPluginsL + // where "count" doesn't match array's count + //TInt contCnt = *aMedia.Value( arrayCntAttr ); + //if(contCnt == aArrayCnt) + // { + CMPXMediaArray* contArray = aMedia.Value( arrayAttr ); + TInt contArrayCnt = contArray->Count(); + if(contArrayCnt != aArrayCnt) + { + match = EFalse; + } + // } + //else + // { + // match = EFalse; + // } + } + return match; + } + +/* +// ---------------------------------------------------------------------------------------------------------- +// Log the content of collection path +// ---------------------------------------------------------------------------------------------------------- +// +void TestUtility::LogCollectionPath(CMPXCollectionPath& aPath, CStifLogger* aLogger) + { + TInt levels = aPath.Levels(); + TInt count = aPath.Count(); + aLogger->Log(_L("Collection Path debug: levels= %d, count = %d"), levels, count); + for (TInt i=0; iLog(_L("Collection Path debug: Level[%d] = (index %d, id 0x%08x)"), i, + aPath.Index(i), + aPath.Id(i) ); + } + if (count > 0) + { + TInt index = aPath.Index(); + CMPXCollectionPath* dpath = const_cast(&aPath); + dpath->SetToFirst(); + TInt c = 0; + do + { + aLogger->Log(_L("Collection Path debug top level: item %d = id 0x%08x"), c, dpath->Id()); + } while (++(*dpath) && ++c < 15 ); + dpath->Set(index); + } + } +*/