camerauis/cameraxui/cxui/tsrc/cxuitestbat.cpp
branchRCL_3
changeset 24 bac7acad7cb3
parent 23 61bc0f252b2b
child 25 2c87b2808fd7
--- a/camerauis/cameraxui/cxui/tsrc/cxuitestbat.cpp	Tue Aug 31 15:03:46 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*
-* Copyright (c) 2009 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 <QTest>
-#include <QSignalSpy>
-#include <hbmainwindow.h>
-#include <hbslider.h>
-#include <hbaction.h>
-#include "cxuitestbat.h"
-#include "cxeengine.h"
-#include "cxenamespace.h"
-#include "cxevideocapturecontrol.h"
-#include "cxeviewfindercontrol.h"
-#include "cxuiviewmanager.h"
-#include "cxutils.h"
-#include "cxuienums.h"
-#include "cxuicapturekeyhandler.h"
-#include "cxuidocumentloader.h"
-
-
-// Run before each test
-void TestCxUiBat::initTestCase()
-{
-
-    mMainWindow = new HbMainWindow;
-    mMainWindow->setOrientation(Qt::Horizontal);
-    mEngine = CxeEngine::createEngine();
-
-    mKeyHandler = new CxuiCaptureKeyHandler(*mEngine);
-    mViewManager = new CxuiViewManager(*mMainWindow, *mEngine, *mKeyHandler);
-
-    mViewManager->prepareWindow();
-    mMainWindow->showFullScreen();
-}
-
-// Run after each test
-void TestCxUiBat::cleanup()
-{
-    //delete mEngine;
-}
-
-// Run after each test
-void TestCxUiBat::cleanupTestCase()
-{
-    delete mMainWindow;
-    delete mKeyHandler;
-    delete mViewManager;
-    //delete mEngine;
-}
-
-void TestCxUiBat::initStillImageMode()
-{
-    mEngine->initMode( Cxe::ImageMode );
-
-}
-
-void TestCxUiBat::sendCameraKeyEvent(QEvent::Type event)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    QKeyEvent* captureKeyEvent;
-    if (event == QEvent::None) {
-        captureKeyEvent = QKeyEvent::createExtendedKeyEvent(QEvent::KeyPress, Qt::Key_unknown, 0,
-                0xab, 0, 0);
-        QApplication::postEvent(mMainWindow, captureKeyEvent);
-        captureKeyEvent = QKeyEvent::createExtendedKeyEvent(QEvent::KeyRelease, Qt::Key_unknown, 0,
-                0xab, 0, 0);
-        QApplication::postEvent(mMainWindow, captureKeyEvent);
-
-    } else {
-        captureKeyEvent = QKeyEvent::createExtendedKeyEvent(event, Qt::Key_unknown, 0, 0xab, 0, 0);
-        QApplication::postEvent(mMainWindow, captureKeyEvent);
-    }
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void TestCxUiBat::sendAutofocusKeyEvent(QEvent::Type event)
-{
-    CX_DEBUG_ENTER_FUNCTION();
-    QKeyEvent* autofocusKeyEvent = QKeyEvent::createExtendedKeyEvent(event, Qt::Key_unknown, 0,
-            0xe2, 0, 0);
-    QApplication::postEvent(mMainWindow, autofocusKeyEvent);
-    CX_DEBUG_EXIT_FUNCTION();
-}
-
-void TestCxUiBat::initVideoMode()
-{
-    mEngine->initMode( Cxe::VideoMode );
-
-    QSignalSpy deviceStateSpy(&mEngine->videoCaptureControl(),
-            SIGNAL(stateChanged(CxeVideoCaptureControl::State, CxeError::Id)));
-    QVERIFY( deviceStateSpy.isValid() );
-
-    QTest::qWait( 3000 );
-
-    QCOMPARE( deviceStateSpy.count(), 3 );
-
-    QList<QVariant> initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Initialized );
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Preparing );
-    initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Ready );
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-}
-
-// Tests capture key in still mode
-void TestCxUiBat::testCaptureKeyInImageMode()
-    {
-    mEngine->initMode(Cxe::ImageMode);
-    QTest::qWait(3000);
-    // Test if we are in still VF
-    QVERIFY(mMainWindow->currentViewIndex() == CxUi::StillPreCaptureView );
-
-    CX_DEBUG(("testCaptureKey in still capture mode"));
-    sendCameraKeyEvent();
-
-    QSignalSpy deviceStateSpy(&mEngine->stillCaptureControl(),
-            SIGNAL(snapshotReady(int, CxeError::Id)));
-    QVERIFY( deviceStateSpy.isValid() );
-    QTest::qWait(2000);
-    QCOMPARE( deviceStateSpy.count(), 1 );
-    if (deviceStateSpy.count() > 0) {
-        // Expect zero error code
-        QList<QVariant> initModeArguments = deviceStateSpy.takeFirst();
-        QVERIFY( initModeArguments.at(0).toInt() == 0 );
-    }
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::StillPostCaptureView );
-
-    CX_DEBUG(("Test to get back viewfinder with capture key"));
-    sendCameraKeyEvent();
-    QTest::qWait(1000);
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::StillPreCaptureView );
-
-    // Test autofocus with halfkeypress and releasing
-    CX_DEBUG(("testAutoFocus_1"));
-
-    QSignalSpy autofocusStateSpy(&mEngine->autoFocusControl(),
-            SIGNAL(stateChanged(CxeAutoFocusControl::State, CxeError::Id)));
-    QVERIFY( autofocusStateSpy.isValid() );
-
-    // Test autofocus with halfkeypress and canceling it
-    sendAutofocusKeyEvent(QEvent::KeyPress);
-    CX_DEBUG(("testAutoFocus_2"));
-    sendAutofocusKeyEvent(QEvent::KeyRelease);
-    QTest::qWait(1000);
-
-    QCOMPARE( autofocusStateSpy.count(), 3 );
-    if (autofocusStateSpy.count() > 0) {
-        QList<QVariant> initModeArguments = autofocusStateSpy.takeFirst();
-        QVERIFY( initModeArguments.at(0).value<CxeAutoFocusControl::State>() == CxeAutoFocusControl::InProgress );
-        QVERIFY( initModeArguments.at(1).toInt() == 0 );
-        CX_DEBUG(("testAutoFocus_2a"));
-        initModeArguments = autofocusStateSpy.takeAt(0);
-        QVERIFY( initModeArguments.at(1).toInt() == 0 );
-        QVERIFY( initModeArguments.at(0).value<CxeAutoFocusControl::State>() == CxeAutoFocusControl::Canceling );
-        initModeArguments = autofocusStateSpy.takeAt(0);
-        QVERIFY( initModeArguments.at(0).value<CxeAutoFocusControl::State>() == CxeAutoFocusControl::Unknown );
-        QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    }
-
-    // Test autofocus with halfkeypress and capture focused image
-    CX_DEBUG(("testAutoFocus_3"));
-
-    sendAutofocusKeyEvent(QEvent::KeyPress);
-    CX_DEBUG(("Capture autofocused image"));
-    QTest::qWait(3000);
-    sendCameraKeyEvent();
-    sendAutofocusKeyEvent(QEvent::KeyRelease);
-    QTest::qWait(1000);
-
-    QCOMPARE( autofocusStateSpy.count(), 2 );
-    if (autofocusStateSpy.count() > 0) {
-    QList<QVariant> initModeArguments = autofocusStateSpy.takeFirst();
-    QVERIFY( initModeArguments.at(0).value<CxeAutoFocusControl::State>() == CxeAutoFocusControl::InProgress );
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    initModeArguments = autofocusStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(0).value<CxeAutoFocusControl::State>() == CxeAutoFocusControl::Ready ||
-            initModeArguments.at(0).value<CxeAutoFocusControl::State>() == CxeAutoFocusControl::Failed );
-
-    }
-
-    QCOMPARE( deviceStateSpy.count(), 1 );
-    if (deviceStateSpy.count() > 0) {
-        // Expect zero error code
-        QList<QVariant> initModeArguments = deviceStateSpy.takeFirst();
-        QVERIFY( initModeArguments.at(0).toInt() == 0 );
-    }
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::StillPostCaptureView );
-    }
-
-// Tests capture key in video mode
-void TestCxUiBat::testCaptureKeyInVideoMode()
-{
-
-    connect(this, SIGNAL(toPrecaptureView()), mViewManager, SLOT(changeToPrecaptureView()));
-    QSignalSpy deviceStateSpy(&mEngine->videoCaptureControl(),
-            SIGNAL(stateChanged(CxeVideoCaptureControl::State, CxeError::Id)));
-    QVERIFY( deviceStateSpy.isValid() );
-    emit toPrecaptureView();
-    QTest::qWait(1500);
-    // Test if we are in still VF
-    QVERIFY(mMainWindow->currentViewIndex() == CxUi::VideoPreCaptureView );
-
-
-    // Generate camera key event to start recording
-    CX_DEBUG(("Start video recording"));
-    sendCameraKeyEvent();
-    QTest::qWait(5000);
-
-    // Generate camera key event to stop recording
-    CX_DEBUG(("Stop video recording"));
-    sendCameraKeyEvent();
-    QTest::qWait(3000);
-
-    QCOMPARE( deviceStateSpy.count(), 4 );
-
-    QList<QVariant> initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::PlayingStartSound );
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Recording );
-    initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Stopping );
-    initModeArguments = deviceStateSpy.takeAt(0);
-    QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Idle );
-    QVERIFY( initModeArguments.at(1).toInt() == 0 );
-
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::VideoPostCaptureView );
-
-    CX_DEBUG(("Test to get back viewfinder with capture key"));
-    sendCameraKeyEvent();
-    QTest::qWait(5000);
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::VideoPreCaptureView );
-
-    QCOMPARE(deviceStateSpy.count(), 3);
-    if (deviceStateSpy.count() > 0) {
-        QList<QVariant> initModeArguments = deviceStateSpy.takeAt(0);
-        QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Initialized  );
-        QVERIFY( initModeArguments.at(1).toInt() == 0 );
-        initModeArguments = deviceStateSpy.takeAt(0);
-        QVERIFY( initModeArguments.at(1).toInt() == 0 );
-        QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Preparing );
-        initModeArguments = deviceStateSpy.takeAt(0);
-        QVERIFY( initModeArguments.at(0).value<CxeVideoCaptureControl::State>() == CxeVideoCaptureControl::Ready );
-        QVERIFY( initModeArguments.at(1).toInt() == 0 );
-    }
-
-
-}
-
-// Tests only that correct view is activated
-void TestCxUiBat::testItemVisibilityInPrecaptureview()
-{
-    CX_DEBUG(("testZoomInPrecaptureview"));
-    mEngine->initMode(Cxe::ImageMode);
-    emit toPrecaptureView();
-    QTest::qWait(1000);
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::StillPreCaptureView );
-
-    QSignalSpy zoomStateSpy(&mEngine->zoomControl(),
-            SIGNAL(stateChanged(CxeZoomControl::State, CxeError::Id)));
-    QVERIFY( zoomStateSpy.isValid() );
-
-    QSignalSpy zoomLevelStateSpy(&mEngine->zoomControl(),
-            SIGNAL(zoomLevelChanged(int)));
-    QVERIFY( zoomLevelStateSpy.isValid() );
-
-    CX_DEBUG(("ShowControls"));
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(180,60),5 );
-    QTest::qWait(300);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::TitlePaneItem), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::NaviPaneItem), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::ToolBarItem), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::IndicatorItems), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::PrimarySoftKeyItem), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::SecondarySoftKeyItem), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::MiddleSoftKeyItem), true);
-    QCOMPARE(mMainWindow->isItemVisible(Hb::SoftKeyItems), true);
-
-
-    CX_DEBUG(("test Zoom slider - touch events control zoom level"));
-    QTest::qWait(1000);
-
-    HbAction *zoomAction = qobject_cast<HbAction *>(mViewManager->documentLoader()->findObject("cxui_action_zoom"));
-    HbSlider *zoom = qobject_cast<HbSlider *>(mViewManager->documentLoader()->findWidget("zoom"));
-    CX_DEBUG_ASSERT(zoomAction);
-    CX_DEBUG_ASSERT(zoom);
-
-    // trigger zoom action on toolbar
-    zoomAction->trigger();
-
-    // get the zoom position
-    QPoint centerPoint = zoom->geometry().toRect().center();
-    QPoint firstPoint = zoom->geometry().toRect().topLeft();
-    QPoint secondPoint = zoom->geometry().toRect().bottomRight();
-
-    CX_DEBUG( ("zoom slider coordinates topleft(%d,%d) and bottomright(%d,%d)",
-            firstPoint.x(), firstPoint.y(), secondPoint.x(), secondPoint.y() ));
-
-    firstPoint = (centerPoint - firstPoint);
-    secondPoint = (secondPoint - centerPoint);
-
-    CX_DEBUG( ("dragging zoom from (%d,%d) to (%d,%d)",
-            firstPoint.x(), firstPoint.y(),
-            secondPoint.x(), secondPoint.y() ));
-
-    // click on zoom
-    QTest::mousePress( mMainWindow->viewport(), Qt::LeftButton,0, firstPoint );
-    QTest::mouseMove ( mMainWindow->viewport(), secondPoint, 1000 );
-    QTest::mouseRelease( mMainWindow->viewport(), Qt::LeftButton,0, secondPoint);
-    // At least ZoominIn/ZoominOut and Ready states are set
-    QVERIFY(zoomStateSpy.count() > 2 );
-    // At least once zoom value has been changed.
-    QVERIFY(zoomLevelStateSpy.count() > 2 );
-
-    CX_DEBUG( ("mouse click on (%d,%d)", centerPoint.x(), centerPoint.y() ));
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, centerPoint);
-    // At least ZoominIn/ZoominOut and Ready states are set
-    QVERIFY(zoomStateSpy.count() > 2 );
-    // At least once zoom value has been changed.
-    QVERIFY(zoomLevelStateSpy.count() > 2 );
-    QTest::qWait(1000);
-
-    /*CX_DEBUG(("testFlash"));
-    QTest::qWait(1000);
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(35,150));
-    QTest::qWait(1000);
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(185,150));
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(35,150));
-    sendCameraKeyEvent(QEvent::KeyPress);
-    sendCameraKeyEvent(QEvent::KeyRelease);*/
-
-
-    CX_DEBUG(("testGoToVideo"));
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(35,100), 500 );
-    QTest::qWait(3000);
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::VideoPreCaptureView );
-
-    CX_DEBUG(("testGoToStill"));
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(180,60) );
-    QTest::qWait(1000);
-    QTest::mouseClick( mMainWindow->viewport(), Qt::LeftButton,0, QPoint(35,100), 500 );
-    QTest::qWait(3000);
-    QVERIFY( mMainWindow->currentViewIndex()== CxUi::StillPreCaptureView );
-}
-
-// main() function non-GUI testing
-QTEST_MAIN( TestCxUiBat );