1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/mm/imagingandcamerafws/cameraunittest/src/TSU_ECM_ADV/ECamEnhanceFuncTest.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,1760 @@
1.4 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of "Eclipse Public License v1.0"
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +//
1.18 +
1.19 +#include <ecamuids.hrh>
1.20 +#include <ecom/ecomresolverparams.h>
1.21 +#include "ECamEnhanceFuncTest.h"
1.22 +#include "ECamUnitTestPluginUids.hrh"
1.23 +#include "ECamUnitTestPlugin.h"
1.24 +#include <ecam/ecamcommonuids.hrh>
1.25 +#include <fbs.h>
1.26 +
1.27 +/*------------------------------------------------------
1.28 + Histogram : RECamHistTest
1.29 + *------------------------------------------------------*/
1.30 +RECamHistTest* RECamHistTest::NewL(const TDesC& aTestStep)
1.31 + {
1.32 + RECamHistTest* self = new (ELeave) RECamHistTest(aTestStep);
1.33 + return self;
1.34 + }
1.35 +
1.36 +RECamHistTest::RECamHistTest(const TDesC& aTestStep)
1.37 + {
1.38 + iTestStepName.Copy(aTestStep);
1.39 + }
1.40 +
1.41 +TVerdict RECamHistTest::DoTestStepL()
1.42 + {
1.43 + if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-020-HP")))
1.44 + {
1.45 + return DoTestStep_20L();
1.46 + }
1.47 + else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-021-HP")))
1.48 + {
1.49 + return DoTestStep_21L();
1.50 + }
1.51 + else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-022-HP")))
1.52 + {
1.53 + return DoTestStep_22L();
1.54 + }
1.55 + return EInconclusive;
1.56 + }
1.57 +
1.58 +TVerdict RECamHistTest::DoTestStep_20L()
1.59 + {
1.60 + TVerdict verdict = EFail;
1.61 + INFO_PRINTF1(_L("Alloc test"));
1.62 + TInt i;
1.63 + TInt err;
1.64 + for (i = 1 ; ; i++)
1.65 + {
1.66 + __MM_HEAP_MARK;
1.67 +
1.68 + if (i % 5 == 0)
1.69 + {
1.70 + INFO_PRINTF2(_L("Fail count = %d"), i);
1.71 + }
1.72 +
1.73 + __UHEAP_SETFAIL(RHeap::EFailNext, i);
1.74 +
1.75 + TRAP(err, verdict = DoHistTestStepL());
1.76 +
1.77 + TAny* testAlloc = User::Alloc(1);
1.78 + TBool heapTestingComplete = (testAlloc == NULL) && (err==KErrNone);
1.79 + User::Free(testAlloc);
1.80 +
1.81 + __UHEAP_RESET;
1.82 + __MM_HEAP_MARKEND;
1.83 +
1.84 + if ((err != KErrNoMemory ) || heapTestingComplete)
1.85 + {
1.86 + INFO_PRINTF4(_L("err = %d, verdict = %d, Fail count = %d"), err, verdict, i);
1.87 + INFO_PRINTF1(_L("Alloc testing completed successfully"));
1.88 + verdict = EPass;
1.89 + break;
1.90 + }
1.91 + }
1.92 + return verdict;
1.93 + }
1.94 +
1.95 +TVerdict RECamHistTest::DoHistTestStepL()
1.96 + {
1.97 + TVerdict result = EPass;
1.98 + CCamera* camera = NULL;
1.99 +
1.100 + TInt error = KErrNone;
1.101 + CCamera::CCameraHistogram* hist = NULL;
1.102 +
1.103 + // using observer 2
1.104 + MCameraObserver2* observer2 = NULL;
1.105 +
1.106 + __MM_HEAP_MARK;
1.107 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.108 +
1.109 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.110 +
1.111 + if (error==KErrNone)
1.112 + {
1.113 + CleanupStack::PushL(camera);
1.114 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.115 + hist = static_cast<CCamera::CCameraHistogram*> (camera->CustomInterface(KECamHistogramUid));
1.116 + if (hist!= NULL)
1.117 + {
1.118 + CleanupStack::PushL(hist);
1.119 + INFO_PRINTF1(_L("CCameraHistogram object was created"));
1.120 + CleanupStack::PopAndDestroy(hist);
1.121 + }
1.122 + else
1.123 + {
1.124 + result = EFail;
1.125 + User::Leave(KErrNoMemory);
1.126 + }
1.127 + CleanupStack::PopAndDestroy(camera);
1.128 + }
1.129 + else
1.130 + {
1.131 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.132 + result = EFail;
1.133 + User::Leave(KErrNoMemory);
1.134 + }
1.135 + __MM_HEAP_MARKEND;
1.136 +
1.137 + // create a Hist object using New2L
1.138 + __MM_HEAP_MARK;
1.139 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.140 +
1.141 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.142 +
1.143 + if (error==KErrNone)
1.144 + {
1.145 + CleanupStack::PushL(camera);
1.146 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.147 + TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera));
1.148 +
1.149 + if (error==KErrNone)
1.150 + {
1.151 + CleanupStack::PushL(hist);
1.152 + INFO_PRINTF1(_L("CCameraHistogram object was created using NewL"));
1.153 + CleanupStack::PopAndDestroy(hist);
1.154 + }
1.155 + else
1.156 + {
1.157 + INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL"));
1.158 + result = EFail;
1.159 + User::Leave(KErrNoMemory);
1.160 + }
1.161 + CleanupStack::PopAndDestroy(camera);
1.162 + }
1.163 + else
1.164 + {
1.165 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.166 + result = EFail;
1.167 + User::Leave(KErrNoMemory);
1.168 + }
1.169 + __MM_HEAP_MARKEND;
1.170 +
1.171 + return result;
1.172 + }
1.173 +
1.174 +TVerdict RECamHistTest::DoTestStep_21L()
1.175 + {
1.176 + TVerdict result = EPass;
1.177 + CCamera* camera = NULL;
1.178 +
1.179 + TInt error = KErrNone;
1.180 + CCamera::CCameraHistogram* hist = NULL;
1.181 +
1.182 + // create a Hist object using New2L
1.183 + __MM_HEAP_MARK;
1.184 + MCameraObserver2* observer2 = NULL;
1.185 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.186 +
1.187 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.188 +
1.189 + if (error==KErrNone)
1.190 + {
1.191 + CleanupStack::PushL(camera);
1.192 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.193 + TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera));
1.194 +
1.195 + if (error==KErrNone)
1.196 + {
1.197 + INFO_PRINTF1(_L("CCameraHistogram object was created using NewL"));
1.198 + }
1.199 + else
1.200 + {
1.201 + INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL"));
1.202 + return EFail;
1.203 + }
1.204 + }
1.205 + else
1.206 + {
1.207 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.208 + result = EFail;
1.209 + }
1.210 +
1.211 + if (hist!= NULL)
1.212 + {
1.213 + CleanupStack::PushL(hist);
1.214 +
1.215 + // get the supported set of values
1.216 + TUint32 suppformats = hist->SupportedHistograms();
1.217 +
1.218 + // the array should not be empty
1.219 + if (suppformats == 0)
1.220 + {
1.221 + result = EFail;
1.222 + }
1.223 + // Preapare DSA Based Histogram
1.224 + TUint histhandle = 0;
1.225 + TPoint orgPos(5,5);
1.226 + TSize orgSize(90,50);
1.227 + TRgb orgColor(100,100,100);
1.228 +
1.229 + TRAP(error, histhandle = hist->PrepareDSAHistogramL(CCamera::CCameraHistogram::ELuminance, orgPos, orgSize, orgColor));
1.230 +
1.231 + if(error==KErrNone)
1.232 + {
1.233 + INFO_PRINTF1(_L("DSA Histogram Created"));
1.234 + }
1.235 + else
1.236 + {
1.237 + INFO_PRINTF2(_L("DSA Histogram Created- %d"), error);
1.238 + return EFail;
1.239 + }
1.240 +
1.241 + // set new value
1.242 + TPoint curPos;
1.243 + TSize curSize;
1.244 + TRgb curColor;
1.245 + TRAP(error, hist->GetDSAHistogramPropertiesL(histhandle, curPos, curSize, curColor));
1.246 +
1.247 + if(error==KErrNone)
1.248 + {
1.249 + INFO_PRINTF1(_L("Get Histogram Properties"));
1.250 + }
1.251 + else
1.252 + {
1.253 + INFO_PRINTF2(_L("Get Histogram Properties- %d"), error);
1.254 + return EFail;
1.255 + }
1.256 +
1.257 + if(curPos != orgPos || curSize != orgSize || curColor != orgColor)
1.258 + {
1.259 + INFO_PRINTF1(_L("Properties dont match"));
1.260 + return EFail;
1.261 + }
1.262 +
1.263 + // new values for properties
1.264 + orgPos = TPoint(10,10);
1.265 + orgSize = TSize(80,40);
1.266 + orgColor = TRgb(90,90,90);
1.267 +
1.268 + // Lets try update
1.269 + TRAP(error, hist->UpdateDSAHistogramPropertiesL(histhandle, orgPos, orgSize, orgColor));
1.270 + if(error==KErrNone)
1.271 + {
1.272 + INFO_PRINTF1(_L("Update Histogram Proporties Successfull"));
1.273 + }
1.274 + else
1.275 + {
1.276 + INFO_PRINTF2(_L("Update Histogram Proporties- %d"), error);
1.277 + return EFail;
1.278 + }
1.279 +
1.280 + // Get and verify with new values
1.281 + TRAP(error, hist->GetDSAHistogramPropertiesL(histhandle, curPos, curSize, curColor));
1.282 +
1.283 + if(error==KErrNone)
1.284 + {
1.285 + INFO_PRINTF1(_L("Get Histogram Properties Successful"));
1.286 + }
1.287 + else
1.288 + {
1.289 + INFO_PRINTF2(_L("Get Histogram Properties- %d"), error);
1.290 + return EFail;
1.291 + }
1.292 +
1.293 + if(curPos != orgPos || curSize != orgSize || curColor != orgColor)
1.294 + {
1.295 + INFO_PRINTF1(_L("Properties dont match"));
1.296 + return EFail;
1.297 + }
1.298 +
1.299 +
1.300 + TRAP(error, hist->DestroyHistogramL(histhandle));
1.301 + if(error==KErrNone)
1.302 + {
1.303 + INFO_PRINTF1(_L("Destroy Histogram Successful"));
1.304 + }
1.305 + else
1.306 + {
1.307 + INFO_PRINTF2(_L("Destroy Histogram - %d"), error);
1.308 + return EFail;
1.309 + }
1.310 + CleanupStack::PopAndDestroy(hist);
1.311 + }
1.312 + CleanupStack::PopAndDestroy(camera);
1.313 +
1.314 + __MM_HEAP_MARKEND;
1.315 +
1.316 + return result;
1.317 + }
1.318 +
1.319 +// Test step MM-ECM-ADV-U-022-HP
1.320 +TVerdict RECamHistTest::DoTestStep_22L()
1.321 + {
1.322 + TVerdict result = EPass;
1.323 + CCamera* camera = NULL;
1.324 +
1.325 + TInt error = KErrNone;
1.326 + CCamera::CCameraHistogram* hist = NULL;
1.327 +
1.328 + // create a Hist object using NewL
1.329 + __MM_HEAP_MARK;
1.330 + MCameraObserver2* observer2 = NULL;
1.331 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.332 +
1.333 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.334 +
1.335 + if (error==KErrNone)
1.336 + {
1.337 + CleanupStack::PushL(camera);
1.338 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.339 + TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera));
1.340 +
1.341 + if (error==KErrNone)
1.342 + {
1.343 + INFO_PRINTF1(_L("CCameraHistogram object was created using NewL"));
1.344 + }
1.345 + else
1.346 + {
1.347 + INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL"));
1.348 + return EFail;
1.349 + }
1.350 + }
1.351 + else
1.352 + {
1.353 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.354 + result = EFail;
1.355 + }
1.356 +
1.357 + if (hist!= NULL)
1.358 + {
1.359 + CleanupStack::PushL(hist);
1.360 +
1.361 + // get the supported set of values
1.362 + TUint32 suppformats = hist->SupportedHistograms();
1.363 +
1.364 + // the array should not be empty
1.365 + if (suppformats == 0)
1.366 + {
1.367 + result = EFail;
1.368 + }
1.369 + // Preapare Non-DSA Based Histogram
1.370 + TUint histhandle = 0;
1.371 + TPoint orgPos(5,5);
1.372 + TSize orgSize(90,50);
1.373 + TRgb orgColor(100,100,100);
1.374 +
1.375 + TRAP(error, histhandle = hist->PrepareHistogramL(CCamera::CCameraHistogram::ELuminance));
1.376 +
1.377 + if(error==KErrNone)
1.378 + {
1.379 + INFO_PRINTF1(_L("Non-DSA Histogram Created Successful"));
1.380 + }
1.381 + else
1.382 + {
1.383 + INFO_PRINTF2(_L("Non-DSA Histogram Created- %d"), error);
1.384 + return EFail;
1.385 + }
1.386 +
1.387 +
1.388 + hist->StartHistogramL(histhandle);
1.389 + if(error==KErrNone)
1.390 + {
1.391 + INFO_PRINTF1(_L("Start Histogram Successful"));
1.392 + }
1.393 + else
1.394 + {
1.395 + INFO_PRINTF2(_L("Start Histogram - %d"), error);
1.396 + return EFail;
1.397 + }
1.398 +
1.399 + // Get a list of active histograms : This has not been implemented and so the count will be 0
1.400 + RArray<TUint> activeHistograms;
1.401 + TRAP(error, hist->GetActiveHistogramsL(activeHistograms));
1.402 + if(error==KErrNone)
1.403 + {
1.404 + INFO_PRINTF1(_L("Stop Histogram Successful"));
1.405 + }
1.406 + else
1.407 + {
1.408 + INFO_PRINTF2(_L("Stop Histogram - %d"), error);
1.409 + return EFail;
1.410 + }
1.411 +
1.412 + TRAP(error, hist->StopHistogramL(histhandle));
1.413 + if(error==KErrNone)
1.414 + {
1.415 + INFO_PRINTF1(_L("Stop Histogram Successful"));
1.416 + }
1.417 + else
1.418 + {
1.419 + INFO_PRINTF2(_L("Stop Histogram - %d"), error);
1.420 + return EFail;
1.421 + }
1.422 +
1.423 + TRAP(error, hist->DestroyHistogramL(histhandle));
1.424 + if(error==KErrNone)
1.425 + {
1.426 + INFO_PRINTF1(_L("Destroy Histogram Successful"));
1.427 + }
1.428 + else
1.429 + {
1.430 + INFO_PRINTF2(_L("Destroy Histogram - %d"), error);
1.431 + return EFail;
1.432 + }
1.433 + CleanupStack::PopAndDestroy(hist);
1.434 + }
1.435 + CleanupStack::PopAndDestroy(camera);
1.436 +
1.437 + __MM_HEAP_MARKEND;
1.438 +
1.439 + return result;
1.440 + }
1.441 +
1.442 +//
1.443 +// RECamHistogramNotificationTest
1.444 +//
1.445 +RECamHistogramNotificationTest* RECamHistogramNotificationTest::NewL(TBool aAllocTest)
1.446 + {
1.447 + RECamHistogramNotificationTest* self = new (ELeave) RECamHistogramNotificationTest(aAllocTest);
1.448 + CleanupStack::PushL(self);
1.449 + self->ConstructL();
1.450 + CleanupStack::Pop(self);
1.451 + return self;
1.452 + }
1.453 +
1.454 +void RECamHistogramNotificationTest::ConstructL()
1.455 + {
1.456 + iOriginalSet.Reset();
1.457 + iResultSet.Reset();
1.458 +
1.459 + }
1.460 +RECamHistogramNotificationTest::RECamHistogramNotificationTest(TBool /*aAllocTest*/)
1.461 + {
1.462 + iTestStepName = _L("MM-ECM-ADV-U-023-HP");
1.463 + }
1.464 +
1.465 +TVerdict RECamHistogramNotificationTest::DoTestStepL()
1.466 + {
1.467 + TVerdict result = EPass;
1.468 + CCamera* camera = NULL;
1.469 +
1.470 + TInt error = KErrNone;
1.471 + CCamera::CCameraHistogram* hist = NULL;
1.472 +
1.473 + __MM_HEAP_MARK;
1.474 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.475 +
1.476 + TRAP(error, camera = CCamera::New2L(*this,0,0));
1.477 +
1.478 + if (error==KErrNone)
1.479 + {
1.480 + CleanupStack::PushL(camera);
1.481 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.482 +
1.483 + TRAP(error, hist = CCamera::CCameraHistogram::NewL(*camera));
1.484 + if (error==KErrNone)
1.485 + {
1.486 + INFO_PRINTF1(_L("CCameraHistogram object was created using NewL"));
1.487 + }
1.488 + else
1.489 + {
1.490 + INFO_PRINTF1(_L("CCameraHistogram object was not created using NewL"));
1.491 + result = EFail;
1.492 + }
1.493 +
1.494 + if (hist!= NULL)
1.495 + {
1.496 + CleanupStack::PushL(hist);
1.497 +
1.498 + // get the supported set of values
1.499 + TUint32 suppformats = hist->SupportedHistograms();
1.500 +
1.501 + // the array should not be empty
1.502 + if (suppformats == 0)
1.503 + {
1.504 + result = EFail;
1.505 + }
1.506 + TUint histhandle = 0;
1.507 + TRAP(error, histhandle = hist->PrepareHistogramL(CCamera::CCameraHistogram::ELuminance));
1.508 +
1.509 + // set new value
1.510 + iInputEventUid.iUid = KUidECamEventHistogramUidValue;
1.511 +
1.512 + hist->StartHistogramL(histhandle);
1.513 + if(error==KErrNone)
1.514 + {
1.515 + INFO_PRINTF1(_L("Start Histogram Successful"));
1.516 + }
1.517 + else
1.518 + {
1.519 + INFO_PRINTF2(_L("Start Histogram - %d"), error);
1.520 + result = EFail;
1.521 + }
1.522 +
1.523 + CheckNotification(iInputEventUid, result);
1.524 +
1.525 + // Ignore the Data - check the function
1.526 + TRAP(error, hist->HistogramDataL());
1.527 + if(error==KErrNone)
1.528 + {
1.529 + INFO_PRINTF1(_L("Histogram DataL Successful"));
1.530 + }
1.531 + else
1.532 + {
1.533 + INFO_PRINTF2(_L("Histogram DataL - %d"), error);
1.534 + result = EFail;
1.535 + }
1.536 +
1.537 + // Overload of HistogramDataL
1.538 + TRAP(error, hist->HistogramDataL(histhandle));
1.539 + if(error==KErrNone)
1.540 + {
1.541 + INFO_PRINTF1(_L("Histogram DataL Successful"));
1.542 + }
1.543 + else
1.544 + {
1.545 + INFO_PRINTF2(_L("Histogram DataL - %d"), error);
1.546 + result = EFail;
1.547 + }
1.548 +
1.549 + TRAP(error, hist->StopHistogramL(histhandle));
1.550 +
1.551 + if(error==KErrNone)
1.552 + {
1.553 + INFO_PRINTF1(_L("Stop Histogram Successful"));
1.554 + }
1.555 + else
1.556 + {
1.557 + INFO_PRINTF2(_L("Stop Histogram - %d"), error);
1.558 + result = EFail;
1.559 + }
1.560 +
1.561 + TRAP(error, hist->DestroyHistogramL(histhandle));
1.562 + if(error==KErrNone)
1.563 + {
1.564 + INFO_PRINTF1(_L("Destroy Histogram Successful"));
1.565 + }
1.566 + else
1.567 + {
1.568 + INFO_PRINTF2(_L("Destroy Histogram - %d"), error);
1.569 + result = EFail;
1.570 + }
1.571 +
1.572 + CleanupStack::PopAndDestroy(hist);
1.573 + }
1.574 + else
1.575 + {
1.576 + result = EFail;
1.577 + }
1.578 + CleanupStack::PopAndDestroy(camera);
1.579 + }
1.580 + else
1.581 + {
1.582 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.583 + result = EFail;
1.584 + }
1.585 +
1.586 + __MM_HEAP_MARKEND;
1.587 +
1.588 + return result;
1.589 + }
1.590 +
1.591 +/*------------------------------------------------------
1.592 + Overlay : RECamOvrlayTest
1.593 + *------------------------------------------------------*/
1.594 +
1.595 +RECamOvrlayTest* RECamOvrlayTest::NewL(const TDesC& aTestStep)
1.596 + {
1.597 + RECamOvrlayTest* self = new (ELeave) RECamOvrlayTest(aTestStep);
1.598 + return self;
1.599 + }
1.600 +
1.601 +RECamOvrlayTest::RECamOvrlayTest(const TDesC& aTestStep)
1.602 + {
1.603 + iTestStepName.Copy(aTestStep);
1.604 + }
1.605 +
1.606 +TVerdict RECamOvrlayTest::DoTestStepL()
1.607 + {
1.608 + if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-030-HP")))
1.609 + {
1.610 + return DoTestStep_30L();
1.611 + }
1.612 + else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-031-HP")))
1.613 + {
1.614 + return DoTestStep_31L();
1.615 + }
1.616 + return EFail;
1.617 + }
1.618 +
1.619 +TVerdict RECamOvrlayTest::DoTestStep_30L()
1.620 + {
1.621 + TVerdict verdict = EFail;
1.622 + INFO_PRINTF1(_L("Alloc test"));
1.623 + TInt i;
1.624 + TInt err;
1.625 + for (i = 1 ; ; i++)
1.626 + {
1.627 + __MM_HEAP_MARK;
1.628 +
1.629 + if (i % 5 == 0)
1.630 + {
1.631 + INFO_PRINTF2(_L("Fail count = %d"), i);
1.632 + }
1.633 +
1.634 + __UHEAP_SETFAIL(RHeap::EFailNext, i);
1.635 +
1.636 + TRAP(err, verdict = DoOverlayTestStepL());
1.637 +
1.638 + TAny* testAlloc = User::Alloc(1);
1.639 + TBool heapTestingComplete = (testAlloc == NULL) && (err==KErrNone);
1.640 + User::Free(testAlloc);
1.641 +
1.642 + __UHEAP_RESET;
1.643 + __MM_HEAP_MARKEND;
1.644 +
1.645 + if ((err != KErrNoMemory ) || heapTestingComplete)
1.646 + {
1.647 + INFO_PRINTF4(_L("err = %d, verdict = %d, Fail count = %d"), err, verdict, i);
1.648 + INFO_PRINTF1(_L("Alloc testing completed successfully"));
1.649 + verdict = EPass;
1.650 + break;
1.651 + }
1.652 + }
1.653 + return verdict;
1.654 + }
1.655 +
1.656 +TVerdict RECamOvrlayTest::DoOverlayTestStepL()
1.657 + {
1.658 + TVerdict result = EPass;
1.659 + CCamera* camera = NULL;
1.660 +
1.661 + TInt error = KErrNone;
1.662 + CCamera::CCameraOverlay* ovrlay = NULL;
1.663 +
1.664 + // using observer 2
1.665 + MCameraObserver2* observer2 = NULL;
1.666 +
1.667 + __MM_HEAP_MARK;
1.668 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.669 +
1.670 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.671 +
1.672 + if (error==KErrNone)
1.673 + {
1.674 + CleanupStack::PushL(camera);
1.675 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.676 + ovrlay = static_cast<CCamera::CCameraOverlay*> (camera->CustomInterface(KECamOverlayUid));
1.677 + if (ovrlay!= NULL)
1.678 + {
1.679 + CleanupStack::PushL(ovrlay);
1.680 + INFO_PRINTF1(_L("CCameraOverlay object was created"));
1.681 + CleanupStack::PopAndDestroy(ovrlay);
1.682 + }
1.683 + else
1.684 + {
1.685 + result = EFail;
1.686 + User::Leave(KErrNoMemory);
1.687 + }
1.688 + CleanupStack::PopAndDestroy(camera);
1.689 + }
1.690 + else
1.691 + {
1.692 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.693 + result = EFail;
1.694 + User::Leave(KErrNoMemory);
1.695 + }
1.696 + __MM_HEAP_MARKEND;
1.697 +
1.698 + // create overlay object using NewL
1.699 + __MM_HEAP_MARK;
1.700 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.701 +
1.702 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.703 +
1.704 + if (error==KErrNone)
1.705 + {
1.706 + CleanupStack::PushL(camera);
1.707 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.708 + TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera));
1.709 +
1.710 + if (error==KErrNone)
1.711 + {
1.712 + CleanupStack::PushL(ovrlay);
1.713 + INFO_PRINTF1(_L("CCameraOverlay object was created using NewL"));
1.714 +
1.715 + CleanupStack::PopAndDestroy(ovrlay);
1.716 + }
1.717 + else
1.718 + {
1.719 + INFO_PRINTF1(_L("CCameraOverlay object was not created using NewL"));
1.720 + result = EFail;
1.721 + User::Leave(KErrNoMemory);
1.722 + }
1.723 + CleanupStack::PopAndDestroy(camera);
1.724 + }
1.725 + else
1.726 + {
1.727 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.728 + result = EFail;
1.729 + User::Leave(KErrNoMemory);
1.730 + }
1.731 + __MM_HEAP_MARKEND;
1.732 +
1.733 + return result;
1.734 + }
1.735 +
1.736 +TVerdict RECamOvrlayTest::DoTestStep_31L()
1.737 + {
1.738 + TVerdict result = EPass;
1.739 + CCamera* camera = NULL;
1.740 + TInt error = KErrNone;
1.741 + CCamera::CCameraOverlay* ovrlay = NULL;
1.742 +
1.743 + // create a Overlay object using NewL
1.744 + MCameraObserver2* observer2 = NULL;
1.745 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.746 +
1.747 + __MM_HEAP_MARK;
1.748 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.749 +
1.750 + if (error==KErrNone)
1.751 + {
1.752 + CleanupStack::PushL(camera);
1.753 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.754 + TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera));
1.755 +
1.756 + if (error==KErrNone)
1.757 + {
1.758 + INFO_PRINTF1(_L("CCameraOverlay object was created using NewL"));
1.759 + }
1.760 + else
1.761 + {
1.762 + INFO_PRINTF2(_L("CCameraOverlay object was not created using NewL - %d"), error);
1.763 + result = EFail;
1.764 + }
1.765 + CleanupStack::PushL(ovrlay);
1.766 +
1.767 +
1.768 + CCamera::CCameraOverlay::TOverlayParameters parameters;
1.769 + parameters.iCurrentModes = CCamera::CCameraOverlay::EModeStillImage;
1.770 + parameters.iCurrentTypes = CCamera::CCameraOverlay::EPerPixel;
1.771 + parameters.iAlphaValue= 0;
1.772 + parameters.iPosition = TPoint(2,2);
1.773 + parameters.iZOrder = 1;
1.774 +
1.775 + TInt err = RFbsSession::Connect();
1.776 + if (err != KErrNone)
1.777 + {
1.778 + INFO_PRINTF2(_L("RFbsSession::Connect() failed, err = %d"), err);
1.779 + return EInconclusive;
1.780 + }
1.781 +
1.782 + CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
1.783 + CleanupStack::PushL(bitmap);
1.784 +
1.785 + TUint ovrhandle =0;
1.786 +
1.787 + TRAP(error, ovrhandle = ovrlay->CreateOverlayL(parameters, bitmap));
1.788 +
1.789 + if (error == KErrNone)
1.790 + {
1.791 + INFO_PRINTF1(_L("Create overlay was successful"));
1.792 + }
1.793 + else
1.794 + {
1.795 + INFO_PRINTF2(_L("Create overlay - Error - %d"), error);
1.796 + result = EFail;
1.797 + }
1.798 +
1.799 + TRAP(error, ovrlay->SetOverlayBitmapL(ovrhandle, bitmap));
1.800 + if (error == KErrNone)
1.801 + {
1.802 + INFO_PRINTF1(_L("Set Overlay Bitmap was successful"));
1.803 + }
1.804 + else
1.805 + {
1.806 + INFO_PRINTF2(_L("Set Overlay Bitmap - Error - %d"), error);
1.807 + result = EFail;
1.808 + }
1.809 +
1.810 + CFbsBitmap* modBitmap = new (ELeave) CFbsBitmap;
1.811 + User::LeaveIfError(modBitmap->Create(TSize(1000,1000),EGray256));
1.812 + CleanupStack::PushL(modBitmap);
1.813 + TRAP(error, ovrlay->SetModifiableOverlayBitmapL(ovrhandle, modBitmap));
1.814 + if (error == KErrNone)
1.815 + {
1.816 + INFO_PRINTF1(_L("Set Modifiable Overlay Bitmap was successful"));
1.817 + }
1.818 + else
1.819 + {
1.820 + INFO_PRINTF2(_L("Set Modifiable Overlay Bitmap - Error - %d"), error);
1.821 + result = EFail;
1.822 + }
1.823 +
1.824 + CFbsBitmap* getBitmap = new (ELeave) CFbsBitmap;
1.825 + User::LeaveIfError(getBitmap->Create(TSize(1000,1000),EGray256));
1.826 + CleanupStack::PushL(getBitmap);
1.827 + TRAP(error, ovrlay->GetOverlayBitmapL(ovrhandle, getBitmap));
1.828 + if (error == KErrNone)
1.829 + {
1.830 + INFO_PRINTF1(_L("Get Overlay Bitmap was successful"));
1.831 + }
1.832 + else
1.833 + {
1.834 + INFO_PRINTF2(_L("Get Overlay Bitmap - Error - %d"), error);
1.835 + result = EFail;
1.836 + }
1.837 +
1.838 + TRAP(error, ovrlay->GetOverlayParametersL(ovrhandle, parameters));
1.839 + if (error == KErrNone)
1.840 + {
1.841 + INFO_PRINTF1(_L("Get Overlay Parameters was successful"));
1.842 + }
1.843 + else
1.844 + {
1.845 + INFO_PRINTF2(_L("Get Overlay Parameters - Error - %d"), error);
1.846 + result = EFail;
1.847 + }
1.848 +
1.849 + TRAP(error, ovrlay->SetOverlayParametersL(ovrhandle, parameters));
1.850 + if (error == KErrNone)
1.851 + {
1.852 + INFO_PRINTF1(_L("Set Overlay Parameters was successful"));
1.853 + }
1.854 + else
1.855 + {
1.856 + INFO_PRINTF2(_L("Set Overlay Parameters - Error - %d"), error);
1.857 + result = EFail;
1.858 + }
1.859 +
1.860 + CCamera::CCameraOverlay::TOverlaySupportInfo SuppInfo;
1.861 + TRAP(error, ovrlay->GetOverlaySupport(SuppInfo));
1.862 + if (error == KErrNone)
1.863 + {
1.864 + INFO_PRINTF1(_L("Get Overlay support was successful"));
1.865 + }
1.866 + else
1.867 + {
1.868 + INFO_PRINTF2(_L("Get Overlay support - Error - %d"), error);
1.869 + result = EFail;
1.870 + }
1.871 +
1.872 + RArray<TUint> overlayHandles;
1.873 + TRAP(error, ovrlay->GetAllOverlaysInZOrderL(overlayHandles));
1.874 + if (error == KErrNone)
1.875 + {
1.876 + INFO_PRINTF1(_L("Get All Overlays in Z order was successful"));
1.877 + }
1.878 + else
1.879 + {
1.880 + INFO_PRINTF2(_L("Get All Overlays in Z order - Error - %d"), error);
1.881 + result = EFail;
1.882 + }
1.883 +
1.884 + TRAP(error, ovrlay->GetAllOverlaysInZOrderL(CCamera::CCameraOverlay::EModeStillImage,1,overlayHandles));
1.885 + if (error == KErrNone)
1.886 + {
1.887 + INFO_PRINTF1(_L("Get 'Mode specific' All Overlays in Z order was successful"));
1.888 + }
1.889 + else
1.890 + {
1.891 + INFO_PRINTF2(_L("Get 'Mode specific' All Overlays in Z order - Error - %d"), error);
1.892 + result = EFail;
1.893 + }
1.894 +
1.895 +
1.896 + TRAP(error, ovrlay->SetAllOverlaysInZOrderL(overlayHandles));
1.897 + if (error == KErrNone)
1.898 + {
1.899 + INFO_PRINTF1(_L("Set All Overlay in Z order was successful"));
1.900 + }
1.901 + else
1.902 + {
1.903 + INFO_PRINTF2(_L("Set All Overlay in Z order- Error - %d"), error);
1.904 + result = EFail;
1.905 + }
1.906 +
1.907 + TRAP(error, ovrlay->SetAllOverlaysInZOrderL(CCamera::CCameraOverlay::EModeStillImage,1,overlayHandles));
1.908 + if (error == KErrNone)
1.909 + {
1.910 + INFO_PRINTF1(_L("Set 'Mode specific' All Overlay in Z order was successful"));
1.911 + }
1.912 + else
1.913 + {
1.914 + INFO_PRINTF2(_L("Set 'Mode specific' All Overlay in Z order- Error - %d"), error);
1.915 + result = EFail;
1.916 + }
1.917 +
1.918 + overlayHandles.Close();
1.919 +
1.920 + TRAP(error, ovrlay->ReleaseOverlay(ovrhandle));
1.921 + if (error == KErrNone)
1.922 + {
1.923 + INFO_PRINTF1(_L("Release Overlay was successful"));
1.924 + }
1.925 + else
1.926 + {
1.927 + INFO_PRINTF2(_L("Release Overlay - Error - %d"), error);
1.928 + result = EFail;
1.929 + }
1.930 +
1.931 + CleanupStack::PopAndDestroy(4, ovrlay); //bitmap, ovrlay
1.932 +
1.933 + TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera));
1.934 + CleanupStack::PushL(ovrlay);
1.935 + bitmap = new (ELeave) CFbsBitmap;
1.936 + CleanupStack::PushL(bitmap);
1.937 + ovrhandle =0;
1.938 +
1.939 + TRAP(error, ovrhandle = ovrlay->CreateOverlayL(parameters, bitmap));
1.940 + TSize originalSize = bitmap->SizeInPixels();
1.941 +
1.942 + INFO_PRINTF1(_L("Test size change through CFbsbitmap"));
1.943 + TSize modifiedSize(640, 480);
1.944 + CFbsBitmap* modifiedBitmap = new (ELeave) CFbsBitmap;
1.945 + User::LeaveIfError(modifiedBitmap->Create(modifiedSize,EColor4K));
1.946 + CleanupStack::PushL(modifiedBitmap);
1.947 + originalSize = modifiedBitmap->SizeInPixels();
1.948 + TRAP(error, ovrlay->SetModifiableOverlayBitmapL(ovrhandle,modifiedBitmap));
1.949 +
1.950 + CFbsBitmap* retrievedBitmap = new (ELeave) CFbsBitmap;
1.951 + User::LeaveIfError(retrievedBitmap->Create(TSize(1000,1000),EGray256));
1.952 + CleanupStack::PushL(retrievedBitmap);
1.953 + TRAP(error, ovrlay->GetOverlayBitmapL(ovrhandle, retrievedBitmap));
1.954 +
1.955 + TSize retrievedSize = retrievedBitmap->SizeInPixels();
1.956 +
1.957 + if(originalSize != retrievedSize)
1.958 + {
1.959 + INFO_PRINTF2(_L("Modifying overlay size - Error - %d"), error);
1.960 + result = EFail;
1.961 + }
1.962 +
1.963 + CleanupStack::PopAndDestroy(4, ovrlay);
1.964 + }
1.965 + else
1.966 + {
1.967 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.968 + result = EFail;
1.969 + }
1.970 +
1.971 + RFbsSession::Disconnect();
1.972 +
1.973 + CleanupStack::PopAndDestroy(camera);
1.974 + __MM_HEAP_MARKEND;
1.975 +
1.976 + //
1.977 + __MM_HEAP_MARK;
1.978 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.979 +
1.980 + if (error==KErrNone)
1.981 + {
1.982 + CleanupStack::PushL(camera);
1.983 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.984 + TRAP(error, ovrlay = CCamera::CCameraOverlay::NewL(*camera));
1.985 +
1.986 + if (error==KErrNone)
1.987 + {
1.988 + INFO_PRINTF1(_L("CCameraOverlay object was created using NewL"));
1.989 + }
1.990 + else
1.991 + {
1.992 + INFO_PRINTF2(_L("CCameraOverlay object was not created using NewL - %d"), error);
1.993 + result = EFail;
1.994 + }
1.995 + CleanupStack::PushL(ovrlay);
1.996 +
1.997 +
1.998 + CCamera::CCameraOverlay::TOverlayParameters parameters;
1.999 + parameters.iCurrentModes = CCamera::CCameraOverlay::EModeStillImage;
1.1000 + parameters.iCurrentTypes = CCamera::CCameraOverlay::EPerPixel;
1.1001 + parameters.iAlphaValue= 0;
1.1002 + TSize size2(20,20);
1.1003 + parameters.iPosition = TPoint(2,2);
1.1004 + parameters.iZOrder = 1;
1.1005 +
1.1006 + CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
1.1007 + CleanupStack::PushL(bitmap);
1.1008 +
1.1009 + TUint ovrhandle =0;
1.1010 +
1.1011 + TRAP(error, ovrhandle = ovrlay->CreateOverlayL(parameters, bitmap));
1.1012 + if (error == KErrNone)
1.1013 + {
1.1014 + INFO_PRINTF1(_L("Create overlay was successful"));
1.1015 + }
1.1016 + else
1.1017 + {
1.1018 + INFO_PRINTF2(_L("Create overlay - Error - %d"), error);
1.1019 + result = EFail;
1.1020 + }
1.1021 +
1.1022 + TRAP(error, ovrlay->GetOverlayParametersL(ovrhandle, parameters));
1.1023 + if (error == KErrNone)
1.1024 + {
1.1025 + INFO_PRINTF1(_L("Get Overlay Parameters was successful"));
1.1026 + }
1.1027 + else
1.1028 + {
1.1029 + INFO_PRINTF2(_L("Get Overlay Parameters - Error - %d"), error);
1.1030 + result = EFail;
1.1031 + }
1.1032 +
1.1033 + if(parameters.iCurrentModes & CCamera::CCameraOverlay::EModeStillImageContinuous)
1.1034 + {
1.1035 + INFO_PRINTF1(_L("GetOverlayParametersL was successful"));
1.1036 + }
1.1037 + else
1.1038 + {
1.1039 + INFO_PRINTF1(_L("Get Overlay Parameters unexpected result"));
1.1040 + result = EFail;
1.1041 + }
1.1042 +
1.1043 + TRAP(error, ovrlay->SetOverlayParametersL(ovrhandle, parameters));
1.1044 + if (error == KErrNone)
1.1045 + {
1.1046 + INFO_PRINTF1(_L("Set Overlay Parameters was successful"));
1.1047 + }
1.1048 + else
1.1049 + {
1.1050 + INFO_PRINTF2(_L("Set Overlay Parameters - Error - %d"), error);
1.1051 + result = EFail;
1.1052 + }
1.1053 +
1.1054 + CCamera::CCameraOverlay::TOverlaySupportInfo SuppInfo;
1.1055 + TRAP(error, ovrlay->GetOverlaySupport(SuppInfo));
1.1056 + if (error == KErrNone)
1.1057 + {
1.1058 + INFO_PRINTF1(_L("Get Overlay support was successful"));
1.1059 + }
1.1060 + else
1.1061 + {
1.1062 + INFO_PRINTF2(_L("Get Overlay support - Error - %d"), error);
1.1063 + result = EFail;
1.1064 + }
1.1065 +
1.1066 + if(SuppInfo.iSupportedModes & CCamera::CCameraOverlay::EModeStillImageContinuous)
1.1067 + {
1.1068 + INFO_PRINTF1(_L("GetOverlaySupport values were successful"));
1.1069 + }
1.1070 + else
1.1071 + {
1.1072 + INFO_PRINTF1(_L("GetOverlaySupport values unexpected result"));
1.1073 + result = EFail;
1.1074 + }
1.1075 +
1.1076 + //conditional coverage for SetOverlay Parameter
1.1077 + parameters.iCurrentModes = CCamera::CCameraOverlay::EModeViewfinder;
1.1078 + TRAP(error, ovrlay->SetOverlayParametersL(ovrhandle, parameters));
1.1079 + if (error == KErrNone)
1.1080 + {
1.1081 + INFO_PRINTF1(_L("Set Overlay Parameters was successful"));
1.1082 + }
1.1083 + else
1.1084 + {
1.1085 + INFO_PRINTF2(_L("Set Overlay Parameters - Error - %d"), error);
1.1086 + result = EFail;
1.1087 + }
1.1088 +
1.1089 + parameters.iCurrentModes = CCamera::CCameraOverlay::EModeNone;
1.1090 + TRAP(error, ovrlay->GetOverlayParametersL(ovrhandle, parameters));
1.1091 + if (error == KErrNone)
1.1092 + {
1.1093 + INFO_PRINTF1(_L("Get Overlay Parameters was successful"));
1.1094 + }
1.1095 + else
1.1096 + {
1.1097 + INFO_PRINTF2(_L("Get Overlay Parameters - Error - %d"), error);
1.1098 + result = EFail;
1.1099 + }
1.1100 +
1.1101 + if(parameters.iCurrentModes & CCamera::CCameraOverlay::EModeClientViewfinder)
1.1102 + {
1.1103 + INFO_PRINTF1(_L("GetOverlayParametersL was successful"));
1.1104 + }
1.1105 + else
1.1106 + {
1.1107 + INFO_PRINTF1(_L("Get Overlay Parameters unexpected result"));
1.1108 + result = EFail;
1.1109 + }
1.1110 +
1.1111 + TRAP(error, ovrlay->ReleaseOverlay(ovrhandle));
1.1112 + if (error == KErrNone)
1.1113 + {
1.1114 + INFO_PRINTF1(_L("Release Overlay was successful"));
1.1115 + }
1.1116 + else
1.1117 + {
1.1118 + INFO_PRINTF2(_L("Release Overlay - Error - %d"), error);
1.1119 + result = EFail;
1.1120 + }
1.1121 +
1.1122 + CleanupStack::PopAndDestroy(2, ovrlay); //bitmap, ovrlay
1.1123 + }
1.1124 + else
1.1125 + {
1.1126 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.1127 + result = EFail;
1.1128 + }
1.1129 + CleanupStack::PopAndDestroy(camera);
1.1130 + __MM_HEAP_MARKEND;
1.1131 + //
1.1132 +
1.1133 + return result;
1.1134 + }
1.1135 +
1.1136 +/*------------------------------------------------------
1.1137 + Snapshot : RECamSnapTest
1.1138 + *------------------------------------------------------*/
1.1139 +
1.1140 +RECamSnapTest* RECamSnapTest::NewL(const TDesC& aTestStep)
1.1141 + {
1.1142 + RECamSnapTest* self = new (ELeave) RECamSnapTest(aTestStep);
1.1143 + return self;
1.1144 + }
1.1145 +
1.1146 +RECamSnapTest::RECamSnapTest(const TDesC& aTestStep)
1.1147 + {
1.1148 + iTestStepName.Copy(aTestStep);
1.1149 + }
1.1150 +
1.1151 +TVerdict RECamSnapTest::DoTestStepL()
1.1152 + {
1.1153 + if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-040-HP")))
1.1154 + {
1.1155 + return DoTestStep_40L();
1.1156 + }
1.1157 + else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-041-HP")))
1.1158 + {
1.1159 + return DoTestStep_41L();
1.1160 + }
1.1161 + else if(!iTestStepName.Compare(_L("MM-ECM-ADV-U-042-HP")))
1.1162 + {
1.1163 + return DoTestStep_42L();
1.1164 + }
1.1165 + return EFail;
1.1166 + }
1.1167 +
1.1168 +TVerdict RECamSnapTest::DoTestStep_40L()
1.1169 + {
1.1170 + TVerdict verdict = EFail;
1.1171 + INFO_PRINTF1(_L("Alloc test"));
1.1172 + TInt i;
1.1173 + TInt err;
1.1174 + for (i = 1 ; ; i++)
1.1175 + {
1.1176 + __MM_HEAP_MARK;
1.1177 +
1.1178 + if (i % 5 == 0)
1.1179 + {
1.1180 + INFO_PRINTF2(_L("Fail count = %d"), i);
1.1181 + }
1.1182 +
1.1183 + __UHEAP_SETFAIL(RHeap::EFailNext, i);
1.1184 +
1.1185 + TRAP(err, verdict = DoSnapTestStepL());
1.1186 +
1.1187 + TAny* testAlloc = User::Alloc(1);
1.1188 + TBool heapTestingComplete = (testAlloc == NULL) && (err==KErrNone);
1.1189 + User::Free(testAlloc);
1.1190 +
1.1191 + __UHEAP_RESET;
1.1192 + __MM_HEAP_MARKEND;
1.1193 +
1.1194 + if ((err != KErrNoMemory ) || heapTestingComplete)
1.1195 + {
1.1196 + INFO_PRINTF4(_L("err = %d, verdict = %d, Fail count = %d"), err, verdict, i);
1.1197 + INFO_PRINTF1(_L("Alloc testing completed successfully"));
1.1198 + verdict = EPass;
1.1199 + break;
1.1200 + }
1.1201 + }
1.1202 + return verdict;
1.1203 + }
1.1204 +
1.1205 +TVerdict RECamSnapTest::DoSnapTestStepL()
1.1206 + {
1.1207 + TVerdict result = EPass;
1.1208 + CCamera* camera = NULL;
1.1209 +
1.1210 + TInt error = KErrNone;
1.1211 + CCamera::CCameraSnapshot* snap = NULL;
1.1212 +
1.1213 + // using observer 2
1.1214 + MCameraObserver2* observer2 = NULL;
1.1215 +
1.1216 + __MM_HEAP_MARK;
1.1217 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.1218 +
1.1219 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.1220 +
1.1221 + if (error==KErrNone)
1.1222 + {
1.1223 + CleanupStack::PushL(camera);
1.1224 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.1225 + snap = static_cast<CCamera::CCameraSnapshot*> (camera->CustomInterface(KECamSnapshotUid));
1.1226 + if (snap!= NULL)
1.1227 + {
1.1228 + CleanupStack::PushL(snap);
1.1229 + INFO_PRINTF1(_L("CCameraSnaphot object was created"));
1.1230 + CleanupStack::PopAndDestroy(snap);
1.1231 + }
1.1232 + else
1.1233 + {
1.1234 + result = EFail;
1.1235 + User::Leave(KErrNoMemory);
1.1236 + }
1.1237 + CleanupStack::PopAndDestroy(camera);
1.1238 + }
1.1239 + else
1.1240 + {
1.1241 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.1242 + result = EFail;
1.1243 + User::Leave(KErrNoMemory);
1.1244 + }
1.1245 + __MM_HEAP_MARKEND;
1.1246 +
1.1247 + // create a Snapshot object using NewL
1.1248 + __MM_HEAP_MARK;
1.1249 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.1250 +
1.1251 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.1252 +
1.1253 + if (error==KErrNone)
1.1254 + {
1.1255 + CleanupStack::PushL(camera);
1.1256 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.1257 + TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera));
1.1258 +
1.1259 + if (error==KErrNone)
1.1260 + {
1.1261 + CleanupStack::PushL(snap);
1.1262 + INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL"));
1.1263 + CleanupStack::PopAndDestroy(snap);
1.1264 + }
1.1265 + else
1.1266 + {
1.1267 + INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL"));
1.1268 + result = EFail;
1.1269 + User::Leave(KErrNoMemory);
1.1270 + }
1.1271 + CleanupStack::PopAndDestroy(camera);
1.1272 + }
1.1273 + else
1.1274 + {
1.1275 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.1276 + result = EFail;
1.1277 + User::Leave(KErrNoMemory);
1.1278 + }
1.1279 + __MM_HEAP_MARKEND;
1.1280 +
1.1281 + return result;
1.1282 + }
1.1283 +
1.1284 +TVerdict RECamSnapTest::DoTestStep_41L()
1.1285 + {
1.1286 + TVerdict result = EPass;
1.1287 + CCamera* camera = NULL;
1.1288 +
1.1289 + TInt error = KErrNone;
1.1290 + CCamera::CCameraSnapshot* snap = NULL;
1.1291 +
1.1292 + // create a snapshot object using NewL
1.1293 + __MM_HEAP_MARK;
1.1294 + MCameraObserver2* observer2 = NULL;
1.1295 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.1296 +
1.1297 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.1298 +
1.1299 + if (error==KErrNone)
1.1300 + {
1.1301 + CleanupStack::PushL(camera);
1.1302 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.1303 + TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera));
1.1304 +
1.1305 + if (error==KErrNone)
1.1306 + {
1.1307 + INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL"));
1.1308 + }
1.1309 + else
1.1310 + {
1.1311 + INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL"));
1.1312 + return EFail;
1.1313 + }
1.1314 + }
1.1315 + else
1.1316 + {
1.1317 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.1318 + result = EFail;
1.1319 + }
1.1320 +
1.1321 + if (snap!= NULL)
1.1322 + {
1.1323 + CleanupStack::PushL(snap);
1.1324 +
1.1325 + // get the supported formats
1.1326 + TUint32 suppformats = snap->SupportedFormats();
1.1327 +
1.1328 + CCamera::TFormat format = CCamera::EFormatMonochrome;
1.1329 + TSize orgSize(90,50);
1.1330 + TRgb orgColor(100,100,100);
1.1331 + TBool AspectRatio = ETrue;
1.1332 + TPoint orgPos(2,2);
1.1333 +
1.1334 + TRAP(error, snap->PrepareSnapshotL(format, orgPos, orgSize, orgColor,AspectRatio));
1.1335 +
1.1336 + if(error==KErrNone)
1.1337 + {
1.1338 + INFO_PRINTF1(_L("Snapshot Creation Successful"));
1.1339 + }
1.1340 + else
1.1341 + {
1.1342 + INFO_PRINTF2(_L("Snapshot Creation Failed - %d"), error);
1.1343 + result = EFail;
1.1344 + }
1.1345 +
1.1346 + TBool isActive = EFalse;
1.1347 + TRAP(error, isActive = snap->IsSnapshotActive());
1.1348 + if(error==KErrNone)
1.1349 + {
1.1350 + INFO_PRINTF1(_L("Is Snapshot Active Successful"));
1.1351 + }
1.1352 + else
1.1353 + {
1.1354 + INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error);
1.1355 + result = EFail;
1.1356 + }
1.1357 +
1.1358 + if(isActive)
1.1359 + {
1.1360 + INFO_PRINTF1(_L("Snapshot must not be active"));
1.1361 + result = EFail;
1.1362 + }
1.1363 +
1.1364 + // Start Snapshot
1.1365 + TRAP(error, snap->StartSnapshot());
1.1366 + if(error==KErrNone)
1.1367 + {
1.1368 + INFO_PRINTF1(_L("Start Snapshot Successful"));
1.1369 + }
1.1370 + else
1.1371 + {
1.1372 + INFO_PRINTF2(_L("Start Snapshot Failed - %d"), error);
1.1373 + return EFail;
1.1374 + }
1.1375 +
1.1376 + TRAP(error, isActive = snap->IsSnapshotActive());
1.1377 + if(error==KErrNone)
1.1378 + {
1.1379 + INFO_PRINTF1(_L("Is Snapshot Active Successful"));
1.1380 + }
1.1381 + else
1.1382 + {
1.1383 + INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error);
1.1384 + result = EFail;
1.1385 + }
1.1386 +
1.1387 + if(!isActive)
1.1388 + {
1.1389 + INFO_PRINTF1(_L("Snapshot must not be active"));
1.1390 + result = EFail;
1.1391 + }
1.1392 +
1.1393 + TRAP(error, snap->StopSnapshot());
1.1394 + if(error==KErrNone)
1.1395 + {
1.1396 + INFO_PRINTF1(_L("Stop Snapshot Successful"));
1.1397 + }
1.1398 + else
1.1399 + {
1.1400 + INFO_PRINTF2(_L("Stop Snapshot Failed - %d"), error);
1.1401 + return EFail;
1.1402 + }
1.1403 +
1.1404 + // Test new snapshot methods. They shall leave with KErrNotSupported
1.1405 + INFO_PRINTF1(_L("Check New Snapshot methods leave with KErrNotSupported"));
1.1406 + CCamera::CCameraSnapshot::TSnapshotParameters snapshotParameters;
1.1407 + TRAP(error, snap->PrepareSnapshotL(snapshotParameters));
1.1408 + if(error != KErrNotSupported)
1.1409 + {
1.1410 + INFO_PRINTF1(_L("PrepareSnapshotL unexpected result!"));
1.1411 + return EFail;
1.1412 + }
1.1413 +
1.1414 + TRAP(error, snap->GetSnapshotParametersL(snapshotParameters));
1.1415 + if(error != KErrNotSupported)
1.1416 + {
1.1417 + INFO_PRINTF1(_L("GetSnapshotParametersL unexpected result!"));
1.1418 + return EFail;
1.1419 + }
1.1420 +
1.1421 + TRAP(error, snap->SetSnapshotParametersL(snapshotParameters));
1.1422 + if(error != KErrNotSupported)
1.1423 + {
1.1424 + INFO_PRINTF1(_L("SetSnapshotParametersL unexpected result!"));
1.1425 + return EFail;
1.1426 + }
1.1427 +
1.1428 + CCamera::CCameraSnapshot::TSnapshotState snapshotState = CCamera::CCameraSnapshot::ESnapshotInactive;
1.1429 + TRAP(error, snap->GetSnapshotStatusL(snapshotState));
1.1430 + if(error != KErrNotSupported)
1.1431 + {
1.1432 + INFO_PRINTF1(_L("GetSnapshotStatusL unexpected result!"));
1.1433 + return EFail;
1.1434 + }
1.1435 +
1.1436 + CCamera::CCameraSnapshot::TSnapshotVideoFrames snapshotVideoFrames = CCamera::CCameraSnapshot::ESnapshotVideoFirstFrame;
1.1437 + TRAP(error, snap->SelectSnapshotVideoFramesL(snapshotVideoFrames));
1.1438 + if(error != KErrNotSupported)
1.1439 + {
1.1440 + INFO_PRINTF1(_L("SelectSnapshotVideoFramesL unexpected result!"));
1.1441 + return EFail;
1.1442 + }
1.1443 +
1.1444 + TRAP(error, snap->EnableSnapshotL());
1.1445 + if(error != KErrNotSupported)
1.1446 + {
1.1447 + INFO_PRINTF1(_L("EnableSnapshotL unexpected result!"));
1.1448 + return EFail;
1.1449 + }
1.1450 +
1.1451 + TRAP(error, snap->DisableSnapshotL());
1.1452 + if(error != KErrNotSupported)
1.1453 + {
1.1454 + INFO_PRINTF1(_L("DisableSnapshotL unexpected result!"));
1.1455 + return EFail;
1.1456 + }
1.1457 +
1.1458 +
1.1459 + CleanupStack::PopAndDestroy(snap);
1.1460 + }
1.1461 + CleanupStack::PopAndDestroy(camera);
1.1462 +
1.1463 + __MM_HEAP_MARKEND;
1.1464 +
1.1465 + return result;
1.1466 + }
1.1467 +
1.1468 +TVerdict RECamSnapTest::DoTestStep_42L()
1.1469 + {
1.1470 + TVerdict result = EPass;
1.1471 + CCamera* camera = NULL;
1.1472 +
1.1473 + TInt error = KErrNone;
1.1474 + CCamera::CCameraSnapshot* snap = NULL;
1.1475 +
1.1476 + // create a Hist object using NewL
1.1477 + __MM_HEAP_MARK;
1.1478 + MCameraObserver2* observer2 = NULL;
1.1479 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.1480 +
1.1481 + TRAP(error, camera = CCamera::New2L(*observer2, 0,0));
1.1482 +
1.1483 + if (error==KErrNone)
1.1484 + {
1.1485 + CleanupStack::PushL(camera);
1.1486 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.1487 + TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera));
1.1488 +
1.1489 + if (error==KErrNone)
1.1490 + {
1.1491 + INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL"));
1.1492 + }
1.1493 + else
1.1494 + {
1.1495 + INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL"));
1.1496 + return EFail;
1.1497 + }
1.1498 + }
1.1499 + else
1.1500 + {
1.1501 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.1502 + result = EFail;
1.1503 + }
1.1504 +
1.1505 + if (snap!= NULL)
1.1506 + {
1.1507 + CleanupStack::PushL(snap);
1.1508 +
1.1509 + // get the supported formats
1.1510 + TUint32 suppformats = snap->SupportedFormats();
1.1511 +
1.1512 + CCamera::TFormat format = CCamera::EFormatMonochrome;
1.1513 + TSize orgSize(90,50);
1.1514 + TRgb orgColor(100,100,100);
1.1515 + TBool AspectRatio = ETrue;
1.1516 + TPoint orgPos(2,2);
1.1517 +
1.1518 + // Test the other overload of PrepareSnapshotL
1.1519 + TRAP(error, snap->PrepareSnapshotL(format, orgSize, AspectRatio));
1.1520 +
1.1521 + if(error==KErrNone)
1.1522 + {
1.1523 + INFO_PRINTF1(_L("Snapshot Creation Successful"));
1.1524 + }
1.1525 + else
1.1526 + {
1.1527 + INFO_PRINTF2(_L("Snapshot Creation Failed - %d"), error);
1.1528 + result = EFail;
1.1529 + }
1.1530 +
1.1531 + // Set Background color Snapshot
1.1532 + TRAP(error, snap->SetBgColorL(orgColor));
1.1533 + if(error==KErrNone)
1.1534 + {
1.1535 + INFO_PRINTF1(_L("Set Background Color Successful"));
1.1536 + }
1.1537 + else
1.1538 + {
1.1539 + INFO_PRINTF2(_L("Set Background Color Failed - %d"), error);
1.1540 + result = EFail;
1.1541 + }
1.1542 +
1.1543 + // Set Position
1.1544 + TRAP(error, snap->SetPositionL(orgPos));
1.1545 + if(error==KErrNone)
1.1546 + {
1.1547 + INFO_PRINTF1(_L("Set Snapshot Position Successful"));
1.1548 + }
1.1549 + else
1.1550 + {
1.1551 + INFO_PRINTF2(_L("Set Snapshot Position Failed - %d"), error);
1.1552 + result = EFail;
1.1553 + }
1.1554 +
1.1555 + // Start Snapshot
1.1556 + TRAP(error, snap->StartSnapshot());
1.1557 + if(error==KErrNone)
1.1558 + {
1.1559 + INFO_PRINTF1(_L("Start Snapshot Successful"));
1.1560 + }
1.1561 + else
1.1562 + {
1.1563 + INFO_PRINTF2(_L("Start Snapshot Failed - %d"), error);
1.1564 + return EFail;
1.1565 + }
1.1566 +
1.1567 + // Is shapshot active
1.1568 + TBool isActive = EFalse;
1.1569 + TRAP(error, isActive = snap->IsSnapshotActive());
1.1570 + if(error==KErrNone)
1.1571 + {
1.1572 + INFO_PRINTF1(_L("Is Snapshot Active Successful"));
1.1573 + }
1.1574 + else
1.1575 + {
1.1576 + INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error);
1.1577 + result = EFail;
1.1578 + }
1.1579 +
1.1580 + if(!isActive)
1.1581 + {
1.1582 + INFO_PRINTF1(_L("Snapshot must not be active"));
1.1583 + result = EFail;
1.1584 + }
1.1585 +
1.1586 + // Stop Snapshot
1.1587 + TRAP(error, snap->StopSnapshot());
1.1588 + if(error==KErrNone)
1.1589 + {
1.1590 + INFO_PRINTF1(_L("Stop Snapshot Successful"));
1.1591 + }
1.1592 + else
1.1593 + {
1.1594 + INFO_PRINTF2(_L("Stop Snapshot Failed - %d"), error);
1.1595 + return EFail;
1.1596 + }
1.1597 +
1.1598 + CleanupStack::PopAndDestroy(snap);
1.1599 + }
1.1600 + CleanupStack::PopAndDestroy(camera);
1.1601 +
1.1602 + __MM_HEAP_MARKEND;
1.1603 +
1.1604 + return result;
1.1605 + }
1.1606 +//
1.1607 +// RECamSnapNotificationTest
1.1608 +//
1.1609 +RECamSnapNotificationTest* RECamSnapNotificationTest::NewL(TBool aAllocTest)
1.1610 + {
1.1611 + RECamSnapNotificationTest* self = new (ELeave) RECamSnapNotificationTest(aAllocTest);
1.1612 + CleanupStack::PushL(self);
1.1613 + self->ConstructL();
1.1614 + CleanupStack::Pop(self);
1.1615 + return self;
1.1616 + }
1.1617 +
1.1618 +void RECamSnapNotificationTest::ConstructL()
1.1619 + {
1.1620 + iOriginalSet.Reset();
1.1621 + iResultSet.Reset();
1.1622 +
1.1623 + }
1.1624 +RECamSnapNotificationTest::RECamSnapNotificationTest(TBool /*aAllocTest*/)
1.1625 + {
1.1626 + iTestStepName = _L("MM-ECM-ADV-U-043-HP");
1.1627 + }
1.1628 +
1.1629 +TVerdict RECamSnapNotificationTest::DoTestStepL()
1.1630 + {
1.1631 + TVerdict result = EPass;
1.1632 + CCamera* camera = NULL;
1.1633 +
1.1634 + TInt error = KErrNone;
1.1635 + CCamera::CCameraSnapshot* snap = NULL;
1.1636 +
1.1637 + __MM_HEAP_MARK;
1.1638 + INFO_PRINTF1(_L("Create camera using Camera::New2L() and MCameraObserver2"));
1.1639 +
1.1640 + TRAP(error, camera = CCamera::New2L(*this,0,0));
1.1641 +
1.1642 + if (error==KErrNone)
1.1643 + {
1.1644 + CleanupStack::PushL(camera);
1.1645 + INFO_PRINTF1(_L("KErrNone return from CCamera::New2L()"));
1.1646 +
1.1647 + TRAP(error, snap = CCamera::CCameraSnapshot::NewL(*camera));
1.1648 + if (error==KErrNone)
1.1649 + {
1.1650 + INFO_PRINTF1(_L("CCameraSnapshot object was created using NewL"));
1.1651 + }
1.1652 + else
1.1653 + {
1.1654 + INFO_PRINTF1(_L("CCameraSnapshot object was not created using NewL"));
1.1655 + result = EFail;
1.1656 + }
1.1657 +
1.1658 + if (snap!= NULL)
1.1659 + {
1.1660 + CleanupStack::PushL(snap);
1.1661 +
1.1662 + // get the supported set of values
1.1663 + TUint32 suppformats = snap->SupportedFormats();
1.1664 +
1.1665 + CCamera::TFormat format = CCamera::EFormatMonochrome;
1.1666 + TSize orgSize(90,50);
1.1667 + TRgb orgColor(100,100,100);
1.1668 + TPoint orgPos(2,2);
1.1669 + TBool AspectRatio = ETrue;
1.1670 +
1.1671 + TRAP(error, snap->PrepareSnapshotL(format, orgPos, orgSize, orgColor,AspectRatio));
1.1672 +
1.1673 + if(error==KErrNone)
1.1674 + {
1.1675 + INFO_PRINTF1(_L("Snapshot Creation Successful"));
1.1676 + }
1.1677 + else
1.1678 + {
1.1679 + INFO_PRINTF2(_L("Snapshot Creation Failed - %d"), error);
1.1680 + result = EFail;
1.1681 + }
1.1682 +
1.1683 + // set new value
1.1684 + iInputEventUid.iUid = KUidECamEventSnapshotUidValue;
1.1685 +
1.1686 + // Start Snapshot
1.1687 + TRAP(error, snap->StartSnapshot());
1.1688 + if(error==KErrNone)
1.1689 + {
1.1690 + INFO_PRINTF1(_L("Start Snapshot Successful"));
1.1691 + }
1.1692 + else
1.1693 + {
1.1694 + INFO_PRINTF2(_L("Start Snapshot Failed - %d"), error);
1.1695 + return EFail;
1.1696 + }
1.1697 +
1.1698 + CheckNotification(iInputEventUid, result);
1.1699 +
1.1700 + RArray<TInt> FrameIndexOrder;
1.1701 +
1.1702 + // Ignore the data
1.1703 + TRAP(error, snap->SnapshotDataL(FrameIndexOrder));
1.1704 + if(error==KErrNone)
1.1705 + {
1.1706 + INFO_PRINTF1(_L("Snapshot DataL Successful"));
1.1707 + }
1.1708 + else
1.1709 + {
1.1710 + INFO_PRINTF2(_L("Snapshot DataL Failed - %d"), error);
1.1711 + return EFail;
1.1712 + }
1.1713 + FrameIndexOrder.Close();
1.1714 +
1.1715 + TBool isActive = EFalse;
1.1716 +
1.1717 + TRAP(error, isActive = snap->IsSnapshotActive());
1.1718 + if(error==KErrNone)
1.1719 + {
1.1720 + INFO_PRINTF1(_L("Is Snapshot Active Successful"));
1.1721 + }
1.1722 + else
1.1723 + {
1.1724 + INFO_PRINTF2(_L("Is Snapshot Active Failed - %d"), error);
1.1725 + return EFail;
1.1726 + }
1.1727 +
1.1728 + if(!isActive)
1.1729 + {
1.1730 + INFO_PRINTF1(_L("Snapshot must not be active"));
1.1731 + result = EFail;
1.1732 + }
1.1733 +
1.1734 + TRAP(error, snap->StopSnapshot());
1.1735 + if(error==KErrNone)
1.1736 + {
1.1737 + INFO_PRINTF1(_L("Stop Snapshot Successful"));
1.1738 + }
1.1739 + else
1.1740 + {
1.1741 + INFO_PRINTF2(_L("Stop Snapshot Failed - %d"), error);
1.1742 + return EFail;
1.1743 + }
1.1744 +
1.1745 + CleanupStack::PopAndDestroy(snap);
1.1746 + }
1.1747 + else
1.1748 + {
1.1749 + result = EFail;
1.1750 + }
1.1751 + CleanupStack::PopAndDestroy(camera);
1.1752 + }
1.1753 + else
1.1754 + {
1.1755 + INFO_PRINTF2(_L("Unexpected %d return from CCamera::New2L(): observer 2"), error);
1.1756 + result = EFail;
1.1757 + }
1.1758 +
1.1759 + __MM_HEAP_MARKEND;
1.1760 +
1.1761 + return result;
1.1762 + }
1.1763 +