camerauis/cameraxui/cxengine/tsrc/unit/unittest_cxezoomcontrolsymbian/unittest_cxezoomcontrolsymbian.cpp
branchRCL_3
changeset 24 bac7acad7cb3
parent 23 61bc0f252b2b
child 25 2c87b2808fd7
--- 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 <QObject>
-#include <QTest>
-#include <QSignalSpy>
-
-#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>("CxeError::Id");
-    qRegisterMetaType<CxeZoomControl::State>("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<QVariant> 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<CxeZoomControl::State>(spyArguments.at(0)),
-             CxeZoomControl::ZoomingIn);
-    spyArguments = spyStateChange.takeFirst(); // second signal
-    QCOMPARE(qvariant_cast<CxeZoomControl::State>(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<CxeZoomControl::State>(spyArguments.at(0)),
-             CxeZoomControl::ZoomingOut);
-    spyArguments.clear();
-    spyArguments = spyStateChange.takeFirst(); // second signal
-    QCOMPARE(qvariant_cast<CxeZoomControl::State>(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<CxeZoomControl::State>(spyArguments.at(0)),
-             CxeZoomControl::ZoomingIn);
-    spyArguments = spyStateChange.takeFirst(); // second signal
-    QCOMPARE(qvariant_cast<CxeZoomControl::State>(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<QVariant> 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<QVariant> spyArguments = spyZoomLevelChange.takeFirst();
-    QCOMPARE(spyArguments.at(0).toInt(), 0); // mCurrentZoomLevel
-}
-
-QTEST_MAIN(UnitTestCxeZoomControlSymbian);