sl@0: sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include "ECamAdvTest.h" sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: #include sl@0: #include "ECamUnitTestPluginUids.hrh" sl@0: sl@0: const TInt KEmptyKeyValue = 0; sl@0: sl@0: // sl@0: // RECamTest sl@0: // sl@0: RECamTest* RECamTest::NewL(TBool aAllocTest) sl@0: { sl@0: RECamTest* self = new (ELeave) RECamTest(aAllocTest); sl@0: return self; sl@0: } sl@0: sl@0: RECamTest::RECamTest(TBool /*aAllocTest*/) sl@0: { sl@0: iTestStepName = _L("MM-ECM-ADV-U-003-HP"); sl@0: } sl@0: sl@0: TVerdict RECamTest::DoTestStepL() sl@0: { sl@0: TVerdict result = EPass; sl@0: CCamera* camera = NULL; sl@0: MCameraObserver* observer = NULL; sl@0: MCameraObserver2* observer2 = NULL; sl@0: TInt error = KErrNone; sl@0: sl@0: INFO_PRINTF1(_L("Check Opening CCam gives KErrNone")); sl@0: sl@0: INFO_PRINTF1(_L("Checking basic CCamera::NewL()")); sl@0: __MM_HEAP_MARK; sl@0: TRAP(error, camera = CCamera::NewL(*observer, 0)); sl@0: if (error!=KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::NewL()"), error); sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: result = EFail; sl@0: } sl@0: sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: INFO_PRINTF1(_L("Checking basic CCamera::NewDuplicateL()")); sl@0: __MM_HEAP_MARK; sl@0: TRAP(error, camera = CCamera::NewDuplicateL(*observer, 0)); sl@0: if (error!=KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::NewDuplicateL()"), error); sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: result = EFail; sl@0: } sl@0: sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: INFO_PRINTF1(_L("Checking additional \"ChunkAPI\" factory functions")); sl@0: INFO_PRINTF1(_L("Checking CCamera::New2L()")); sl@0: __MM_HEAP_MARK; sl@0: TRAP(error, camera = CCamera::New2L(*observer2, 0, 0)); sl@0: if (error!=KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L()"), error); sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: result = EFail; sl@0: } sl@0: sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: INFO_PRINTF1(_L("Checking CCamera::NewDuplicate2L()")); sl@0: sl@0: __MM_HEAP_MARK; sl@0: sl@0: TRAP(error, camera = CCamera::NewDuplicate2L(*observer2, 0)); sl@0: if (error!=KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("Unexpected %d return from CCamera::NewDuplicate2L()"), error); sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: result = EFail; sl@0: } sl@0: sl@0: if (camera != NULL) sl@0: { sl@0: delete camera; sl@0: } sl@0: sl@0: __MM_HEAP_MARKEND; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: // sl@0: // RECamInnerTest sl@0: // sl@0: sl@0: RECamInnerTest* RECamInnerTest::NewL(TBool aAllocTest) sl@0: { sl@0: RECamInnerTest* self = new (ELeave) RECamInnerTest(aAllocTest); sl@0: return self; sl@0: } sl@0: sl@0: RECamInnerTest::RECamInnerTest(TBool /*aAllocTest*/) sl@0: { sl@0: iTestStepName = _L("MM-ECM-ADV-U-004-LP"); sl@0: } sl@0: sl@0: TVerdict RECamInnerTest::DoTestStepL() sl@0: { sl@0: INFO_PRINTF1(_L("Check can actually open ECam plugin")); sl@0: TVerdict result = EPass; sl@0: sl@0: INFO_PRINTF1(_L("Open stub plugin directly")); sl@0: { sl@0: __MM_HEAP_MARK; sl@0: TUid implementationUid = {KUidCameraUnitTestPlugin}; sl@0: TUid destructorKey = {KEmptyKeyValue}; sl@0: CCamera* camera = NULL; sl@0: sl@0: TRAPD(error, sl@0: camera = static_cast sl@0: (REComSession::CreateImplementationL(implementationUid, destructorKey))); sl@0: sl@0: if (error != KErrNone) sl@0: { sl@0: INFO_PRINTF2(_L("CreateImplementationL() failed - %d"), error); sl@0: result = EFail; sl@0: } sl@0: else sl@0: { sl@0: delete camera; sl@0: REComSession::DestroyedImplementation(destructorKey); sl@0: REComSession::FinalClose(); sl@0: } sl@0: __MM_HEAP_MARKEND; sl@0: } sl@0: sl@0: return result; sl@0: }