homescreenapp/hsdomainmodel/tsrc/t_hsdomainmodel/src/t_hswidgettoucharea.cpp
changeset 90 3ac3aaebaee5
equal deleted inserted replaced
86:e4f038c420f7 90:3ac3aaebaee5
       
     1 /*
       
     2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 #include <HbTapAndHoldGesture>
       
    19 #include <HbPanGesture>
       
    20 
       
    21 #include "t_hsdomainmodel.h"
       
    22 #include "hswidgethost.h"
       
    23 #include "hswidgettoucharea.h"
       
    24 #include "hsscene.h"
       
    25 
       
    26 
       
    27 
       
    28 void TestHsDomainModel::testWidgetTouchAreaConstruction()
       
    29 {
       
    30     HsWidgetHost *widget = new HsWidgetHost(-1);
       
    31     HsWidgetTouchArea *widgetTouchArea = new HsWidgetTouchArea(widget->visual());
       
    32     QVERIFY(widgetTouchArea);
       
    33     delete widgetTouchArea;   
       
    34 }
       
    35 
       
    36 void TestHsDomainModel::testWidgetTouchAreaSceneEvent()
       
    37 {
       
    38     HsWidgetHost *widget = new HsWidgetHost(-1);
       
    39     HsWidgetTouchArea *widgetTouchArea = new HsWidgetTouchArea(widget->visual());
       
    40     HsScene *scene = HsScene::instance();
       
    41 
       
    42     // test shape fetch
       
    43     QPainterPath *path = new QPainterPath(widgetTouchArea->shape());
       
    44     QVERIFY(path);
       
    45     delete path;
       
    46 
       
    47     QSignalSpy widgetTapStartedSpy(scene, SIGNAL(widgetTapStarted(QPointF,HsWidgetHost*)));
       
    48     QSignalSpy widgetMoveFinishedSpy(scene, SIGNAL(widgetMoveFinished(const QPointF &, HsWidgetHost*)));
       
    49 
       
    50     // test touch begin
       
    51     QTouchEvent::TouchPoint touchPoint;
       
    52     QList<QTouchEvent::TouchPoint> touchPoints;
       
    53     touchPoints.append(touchPoint);
       
    54     QTouchEvent *touchEvent = new QTouchEvent(QEvent::TouchBegin);
       
    55     touchEvent->setTouchPoints(touchPoints);
       
    56     widgetTouchArea->sceneEvent(touchEvent);
       
    57     QCOMPARE(widgetTapStartedSpy.count(), 1);
       
    58 
       
    59     delete widgetTouchArea;    
       
    60     delete widget;  
       
    61 }
       
    62 
       
    63 
       
    64 void TestHsDomainModel::testWidgetTouchAreaGestureEvent()
       
    65 {
       
    66     HsWidgetHost *widget = new HsWidgetHost(-1);
       
    67     HsWidgetTouchArea *widgetTouchArea = new HsWidgetTouchArea(widget->visual());
       
    68     QList<QGesture*> gestureList;
       
    69 
       
    70     // test empty gesture list
       
    71     widgetTouchArea->gestureEvent(new QGestureEvent(gestureList));
       
    72 
       
    73     // test tapAndHold (not real test as gestures need to be created using qesturerecognizer
       
    74     HbTapAndHoldGesture *tapAndHoldGesture = new HbTapAndHoldGesture();
       
    75     gestureList << tapAndHoldGesture;
       
    76     QGestureEvent *gestureEvent = new QGestureEvent(gestureList);
       
    77     widgetTouchArea->gestureEvent(gestureEvent);
       
    78     
       
    79     gestureList.clear();
       
    80 
       
    81     // test pan
       
    82     HbPanGesture *panGesture = new HbPanGesture();
       
    83     gestureList << panGesture;
       
    84     gestureEvent = new QGestureEvent(gestureList);
       
    85     widgetTouchArea->gestureEvent(gestureEvent);
       
    86 
       
    87     delete tapAndHoldGesture;
       
    88     delete panGesture;
       
    89     delete widgetTouchArea;
       
    90 }