diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxezoomcontrolsymbian/unittest_cxezoomcontrolsymbian.cpp --- a/camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxezoomcontrolsymbian/unittest_cxezoomcontrolsymbian.cpp Tue Aug 31 15:03:46 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,248 +0,0 @@ -/* - * Copyright (c) 2009-2010 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: - * - */ -#include -#include -#include - -#include "unittest_cxezoomcontrolsymbian.h" -#include "cxezoomcontrolsymbian.h" -#include "cxefakecameradevice.h" -#include "cxefakesettings.h" -#include "cxefakefeaturemanager.h" -#include "cxefakecameradevicecontrol.h" -#include "cxeerror.h" -#include "cxezoomcontrolsymbian.h" -#include "cxetestutils.h" - - -UnitTestCxeZoomControlSymbian::UnitTestCxeZoomControlSymbian() -: mZoomControl(NULL), mFakeCameraDevice(NULL), mFakeCameraDeviceControl(NULL), mFakeSettings(NULL), mFakeFeatureManager(NULL) -{ - qRegisterMetaType("CxeError::Id"); - qRegisterMetaType("CxeZoomControl::State"); -} - -UnitTestCxeZoomControlSymbian::~UnitTestCxeZoomControlSymbian() -{ - -} - - -void UnitTestCxeZoomControlSymbian::init() -{ - CX_DEBUG_ENTER_FUNCTION(); - - mFakeCameraDevice = new CxeFakeCameraDevice; - mFakeCameraDevice->newCamera(Cxe::PrimaryCameraIndex, - mFakeCameraDeviceControl); - mFakeCameraDeviceControl = new CxeFakeCameraDeviceControl; - mFakeCameraDeviceControl->setState(CxeCameraDeviceControl::Ready); - - mFakeFeatureManager = new CxeFakeFeatureManager(); - - mFakeSettings = new CxeFakeSettings(); - - mZoomControl = new CxeZoomControlSymbian(*mFakeCameraDevice, - *mFakeCameraDeviceControl, - *mFakeSettings, - *mFakeFeatureManager); - - // init zoom control - connect(this, SIGNAL(prepareZoom(int)), mZoomControl, SLOT(prepareZoomForStill(int))); - - // make sure that after creation we are in correct state - QCOMPARE(mZoomControl->state(), CxeZoomControl::Idle); - - // after construction the initial values are 0 - // other cases for min and max are tested as part of other testcases - QCOMPARE(mZoomControl->min(),0); - QCOMPARE(mZoomControl->max(),0); - - CX_DEBUG_EXIT_FUNCTION(); -} - -void UnitTestCxeZoomControlSymbian::cleanup() -{ - delete mZoomControl; - mZoomControl = NULL; - - delete mFakeCameraDeviceControl; - mFakeCameraDeviceControl = NULL; - - delete mFakeCameraDevice; - mFakeCameraDevice = NULL; - - delete mFakeSettings; - mFakeSettings = NULL; - - delete mFakeFeatureManager; - mFakeFeatureManager = NULL; -} - -void UnitTestCxeZoomControlSymbian::testZoomTo() -{ - CX_DEBUG_ENTER_FUNCTION(); - - QSignalSpy spyStateChange(mZoomControl, SIGNAL(stateChanged(CxeZoomControl::State, - CxeError::Id))); - QSignalSpy spyZoomLevelChange(mZoomControl, - SIGNAL(zoomLevelChanged(int))); - QList spyArguments; - - // before prepare, this method should not do anything - mZoomControl->zoomTo(mZoomControl->max()); - QVERIFY(!CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - QCOMPARE(mZoomControl->max(), 0); - QCOMPARE(mZoomControl->min(), 0); - QCOMPARE(mZoomControl->state(), CxeZoomControl::Idle); - - // call fakeclass to emit a signal to get the zoomcontrol initialized - // and get zoom values - mFakeCameraDeviceControl->setState(CxeCameraDeviceControl::Ready); - emit prepareZoom(0); - int min = mZoomControl->min(); - int max = mZoomControl->max(); - int middle = min + (max-min)/2; - - // clear signal spies (just to be sure) - spyStateChange.clear(); - spyZoomLevelChange.clear(); - - // zoom to middle - mZoomControl->zoomTo(middle); - // verify statechanges - QVERIFY(CxeTestUtils::waitForSignal(spyStateChange, 1000, 2, false)); - spyArguments = spyStateChange.takeFirst(); // first signal - QCOMPARE(qvariant_cast(spyArguments.at(0)), - CxeZoomControl::ZoomingIn); - spyArguments = spyStateChange.takeFirst(); // second signal - QCOMPARE(qvariant_cast(spyArguments.at(0)), - CxeZoomControl::Ready); - // verify current zoomlevel change - QVERIFY(CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - spyArguments = spyZoomLevelChange.takeFirst(); - QCOMPARE(spyArguments.at(0).toInt(), middle); // mCurrentZoomLevel - - // clear signal spies - spyStateChange.clear(); - spyZoomLevelChange.clear(); - - // zoom to min - mZoomControl->zoomTo(min); - // verify statechanges - QVERIFY(CxeTestUtils::waitForSignal(spyStateChange, 1000, 2, false)); - spyArguments.clear(); - spyArguments = spyStateChange.takeFirst(); // first signal - QCOMPARE(qvariant_cast(spyArguments.at(0)), - CxeZoomControl::ZoomingOut); - spyArguments.clear(); - spyArguments = spyStateChange.takeFirst(); // second signal - QCOMPARE(qvariant_cast(spyArguments.at(0)), - CxeZoomControl::Ready); - // verify current zoomlevel change - QVERIFY(CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - spyArguments.clear(); - spyArguments = spyZoomLevelChange.takeFirst(); - QCOMPARE(spyArguments.at(0).toInt(), min); // mCurrentZoomLevel - - // clear signal spies - spyStateChange.clear(); - spyZoomLevelChange.clear(); - - // zoom to max - mZoomControl->zoomTo(max); - // verify statechanges - QVERIFY(CxeTestUtils::waitForSignal(spyStateChange, 1000, 2, false)); - spyArguments = spyStateChange.takeFirst(); // first signal - QCOMPARE(qvariant_cast(spyArguments.at(0)), - CxeZoomControl::ZoomingIn); - spyArguments = spyStateChange.takeFirst(); // second signal - QCOMPARE(qvariant_cast(spyArguments.at(0)), - CxeZoomControl::Ready); - // verify current zoomlevel change - QVERIFY(CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - spyArguments = spyZoomLevelChange.takeFirst(); - QCOMPARE(spyArguments.at(0).toInt(), max); // mCurrentZoomLevel - - // clear signal spies - spyStateChange.clear(); - spyZoomLevelChange.clear(); - - // zoom to max+1 (nothing should happen, check that no signal is emitted) - mZoomControl->zoomTo(max+1); - QVERIFY(!CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - QVERIFY(!CxeTestUtils::waitForSignal(spyStateChange, 1000)); - - - CX_DEBUG_EXIT_FUNCTION(); -} - -void UnitTestCxeZoomControlSymbian::testPrepareZoomControl() -{ - QSignalSpy spyZoomLevelChange(mZoomControl, SIGNAL(zoomLevelChanged(int))); - - // setting the state of mFakeCameraDeviceControl emits stateChanged signal - // that CxeZoomControlSymbian connects to prepareZoomControl slot - - // signal parameters that are not supposed to change zoom values - mFakeCameraDeviceControl->setState(CxeCameraDeviceControl::Idle); - emit prepareZoom(0); - // zoomcontrol is in initial state and zoom values should not change - QVERIFY(!CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - QCOMPARE(mZoomControl->max(),0); - QCOMPARE(mZoomControl->min(),0); - QCOMPARE(mZoomControl->state(), CxeZoomControl::Idle); - - spyZoomLevelChange.clear(); - - // check that the zoom min and max values are updated - // when slot is called with the Ready parameter - mFakeCameraDeviceControl->setState(CxeCameraDeviceControl::Ready); - emit prepareZoom(0); - QVERIFY(CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - QList spyArguments = spyZoomLevelChange.takeFirst(); - QCOMPARE(spyArguments.at(0).toInt(), 0); // mCurrentZoomLevel should not change when prepare is called - QVERIFY(mZoomControl->max() > 0); // Must be positive, or zero if not supported. - QCOMPARE(mZoomControl->min(), 0); // Must be negative, or zero if macro zoom not supported - QCOMPARE(mZoomControl->state(), CxeZoomControl::Ready); -} - -void UnitTestCxeZoomControlSymbian::testPrepareForCameraDelete() -{ - QSignalSpy spyZoomLevelChange(mZoomControl, SIGNAL(zoomLevelChanged(int))); - - // zoomcontrol needs to be prepared in order to delete camera - // this emits a signal that calls prepareZoomControl - mFakeCameraDeviceControl->setState(CxeCameraDeviceControl::Ready); - emit prepareZoom(0); - - // call fakeclass method that emits a signal, - // which is connected to prepareForCameraDelete slot in contructor - // of CxeZoomControlSymbian - mFakeCameraDevice->deleteCamera(); - - // check that after prepareForCameraDelete default values are set - QCOMPARE(mZoomControl->max(),0); - QCOMPARE(mZoomControl->min(),0); - QCOMPARE(mZoomControl->state(),CxeZoomControl::Idle); - // check signal is emitted, and current zoom level is reset - QVERIFY(CxeTestUtils::waitForSignal(spyZoomLevelChange, 1000)); - QList spyArguments = spyZoomLevelChange.takeFirst(); - QCOMPARE(spyArguments.at(0).toInt(), 0); // mCurrentZoomLevel -} - -QTEST_MAIN(UnitTestCxeZoomControlSymbian);