phoneapp/phoneui2/tsrc/ut_phoneuicommandadapter/unit_tests.cpp
author Shabe Razvi <shaber@symbian.org>
Wed, 15 Sep 2010 17:56:16 +0100
changeset 75 949d9e5675bf
parent 21 92ab7f8d0eab
permissions -rw-r--r--
Make CPEClientServices destructor more resilient (Bug 3706)

/*!
* 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:  Unit tests for PhoneUIQtView.
*
*/

#include <QtTest/QtTest>
#include <QtGui>
#include <QVariant>
#include <QKeyEvent>
#include <hbapplication.h>
#include "phoneuicommandadapter.h"
#include "cphoneuicontroller_stub.h"


//CONSTANTS


#define PHONE_QT_TEST_MAIN(TestObject) \
int main(int argc, char *argv[]) \
{ \
    HbApplication app(argc, argv); \
    TestObject tc; \
    QResource::registerResource("../hbcore.rcc"); \
    int ret = QTest::qExec(&tc, argc, argv); \
    /* Core dump if HbIconLoader instance is not destroyed before the application instance. */ \
    /* HbIconLoader uses QCoreApplication::aboutToQuit() signal to destroy itself. */ \
    /* app.exec() where the signal is normally emitted is not called here. */ \
    /* So, invoking the signal explicitly. */ \
    QMetaObject::invokeMethod(&app, "aboutToQuit", Qt::DirectConnection); \
    return ret; \
}

class TestPhoneCommandAdapter : public QObject
{
    Q_OBJECT
    
public:
    TestPhoneCommandAdapter ();
    ~TestPhoneCommandAdapter ();


public slots:
    void initTestCase ();
    void cleanupTestCase (); 
    void init ();
    void cleanup ();
    
private slots:
    void testKeyHandleCommand ();
    void testLeave ();



private:
    PhoneUiCommandAdapter *m_command_adapter; // class under test
    CPhoneUIController_Stub *m_uicontrol;

};


TestPhoneCommandAdapter::TestPhoneCommandAdapter ()
{    
}

TestPhoneCommandAdapter::~TestPhoneCommandAdapter ()
{
}

void TestPhoneCommandAdapter::initTestCase ()
{	
}

void TestPhoneCommandAdapter::cleanupTestCase ()
{
}

void TestPhoneCommandAdapter::init ()
{
    m_uicontrol = new CPhoneUIController_Stub(); 
    m_command_adapter = new PhoneUiCommandAdapter(*m_uicontrol);
}

void TestPhoneCommandAdapter::cleanup ()
{
    delete m_uicontrol;
    delete m_command_adapter;
}

void TestPhoneCommandAdapter::testKeyHandleCommand ()
{
    int command = 1001;
        	
    m_command_adapter->handleCommand(command);

    QVERIFY( command == m_command );

}

void TestPhoneCommandAdapter::testLeave ()
{
    m_leave = true;	
    int command = 1001;
    
    m_command_adapter->handleCommand(command);
    
    QVERIFY( 0 == m_command );
    m_leave = false;

}

PHONE_QT_TEST_MAIN(TestPhoneCommandAdapter)
#include "unit_tests.moc"