phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtbuttonscontroller/unit_tests.cpp
changeset 36 2eacb6118286
parent 30 ebdbd102c78a
child 37 ba76fc04e6c2
equal deleted inserted replaced
30:ebdbd102c78a 36:2eacb6118286
     1 /*!
       
     2 * Copyright (c) 2009 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:  Unit tests for PhoneUIQtButtonsController.
       
    15 *
       
    16 */
       
    17 
       
    18 #include <QtTest/QtTest>
       
    19 #include <QtGui>
       
    20 #include <hbapplication.h>
       
    21 #include <QSignalSpy>
       
    22 //#include <hbglobal_p.h>
       
    23 #include "phoneuiqtbuttonscontroller.h"
       
    24 
       
    25 class TestPhoneUIQtButtonsController : public QObject
       
    26 {
       
    27     Q_OBJECT
       
    28 public:
       
    29     TestPhoneUIQtButtonsController();
       
    30     virtual ~TestPhoneUIQtButtonsController();
       
    31 
       
    32 public slots:
       
    33     void initTestCase ();
       
    34     void cleanupTestCase ();
       
    35     void init ();
       
    36     void cleanup (); 
       
    37     
       
    38 private slots:
       
    39     void testSetButtonFlags();
       
    40     void testUnsetButtonFlags();
       
    41     void testGetButtonFlags();
       
    42 
       
    43 private:
       
    44     // Helper functions
       
    45     bool checkFlags(bool hold, bool ihf, bool wired, bool btaa);
       
    46     void setFlags(bool hold, bool ihf, bool wired, bool btaa);
       
    47     
       
    48 private:
       
    49     PhoneUIQtButtonsController *m_buttonsCtrl; // class under test
       
    50 };
       
    51 
       
    52 TestPhoneUIQtButtonsController::TestPhoneUIQtButtonsController ()
       
    53 {
       
    54 }
       
    55 
       
    56 TestPhoneUIQtButtonsController::~TestPhoneUIQtButtonsController ()
       
    57 {
       
    58 }
       
    59 
       
    60 void TestPhoneUIQtButtonsController::initTestCase ()
       
    61 {
       
    62 
       
    63 }
       
    64 
       
    65 void TestPhoneUIQtButtonsController::cleanupTestCase ()
       
    66 {
       
    67 
       
    68 }
       
    69 
       
    70 void TestPhoneUIQtButtonsController::init ()
       
    71 {
       
    72     m_buttonsCtrl = new PhoneUIQtButtonsController ();
       
    73 }
       
    74 
       
    75 void TestPhoneUIQtButtonsController::cleanup ()
       
    76 {
       
    77     delete m_buttonsCtrl;
       
    78 }
       
    79 
       
    80 void TestPhoneUIQtButtonsController::testSetButtonFlags()
       
    81 {
       
    82     // Set one flag
       
    83     setFlags(false,false,false,false);
       
    84     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
    85     QVERIFY(checkFlags(true,false,false,false) == true);
       
    86     
       
    87     setFlags(false,false,false,false);
       
    88     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
       
    89     QVERIFY(checkFlags(false,true,false,false) == true);
       
    90     
       
    91     setFlags(false,false,false,false);
       
    92     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
    93     QVERIFY(checkFlags(false,false,true,false) == true);
       
    94     
       
    95     setFlags(false,false,false,false);
       
    96     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
    97     QVERIFY(checkFlags(false,false,false,true) == true);
       
    98     
       
    99     // Two flags combinations
       
   100     setFlags(false,false,false,false);
       
   101     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   102     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
       
   103     QVERIFY(checkFlags(true,true,false,false) == true);
       
   104     
       
   105     setFlags(false,false,false,false);
       
   106     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   107     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
   108     QVERIFY(checkFlags(true,false,true,false) == true);
       
   109     
       
   110     setFlags(false,false,false,false);
       
   111     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   112     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
   113     QVERIFY(checkFlags(true,false,false,true) == true);
       
   114     
       
   115     setFlags(false,false,false,false);
       
   116     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
       
   117     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
   118     QVERIFY(checkFlags(false,true,true,false) == true);
       
   119     
       
   120     setFlags(false,false,false,false);
       
   121     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
       
   122     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
   123     QVERIFY(checkFlags(false,true,false,true) == true);
       
   124     
       
   125     // Three flags combinations
       
   126     setFlags(false,false,false,false);
       
   127     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   128     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);    
       
   129     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
   130     QVERIFY(checkFlags(true,true,true,false) == true);
       
   131     
       
   132     setFlags(false,false,false,false);
       
   133     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   134     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);        
       
   135     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
   136     QVERIFY(checkFlags(true,true,false,true) == true);
       
   137 
       
   138     setFlags(false,false,false,false);
       
   139     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   140     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
   141     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
   142     QVERIFY(checkFlags(true,false,true,true) == true);
       
   143     
       
   144     setFlags(false,false,false,false);
       
   145     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
       
   146     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
   147     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
   148     QVERIFY(checkFlags(false,true,true,true) == true);
       
   149     
       
   150     // All flags set
       
   151     setFlags(false,false,false,false);
       
   152     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
       
   153     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
       
   154     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
       
   155     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
       
   156     QVERIFY(checkFlags(true,true,true,true) == true);    
       
   157 }
       
   158 
       
   159 void TestPhoneUIQtButtonsController::testUnsetButtonFlags()
       
   160 {
       
   161     // Unset one flag
       
   162     setFlags(true,true,true,true);
       
   163     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   164     QVERIFY(checkFlags(false,true,true,true) == true);
       
   165     
       
   166     setFlags(true,true,true,true);
       
   167     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
       
   168     QVERIFY(checkFlags(true,false,true,true) == true);
       
   169     
       
   170     setFlags(true,true,true,true);
       
   171     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   172     QVERIFY(checkFlags(true,true,false,true) == true);
       
   173     
       
   174     setFlags(true,true,true,true);
       
   175     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   176     QVERIFY(checkFlags(true,true,true,false) == true);
       
   177     
       
   178     // Two flags combinations
       
   179     setFlags(true,true,true,true);
       
   180     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   181     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
       
   182     QVERIFY(checkFlags(false,false,true,true) == true);
       
   183     
       
   184     setFlags(true,true,true,true);
       
   185     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   186     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   187     QVERIFY(checkFlags(false,true,false,true) == true);
       
   188     
       
   189     setFlags(true,true,true,true);
       
   190     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   191     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   192     QVERIFY(checkFlags(false,true,true,false) == true);
       
   193     
       
   194     setFlags(true,true,true,true);
       
   195     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
       
   196     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   197     QVERIFY(checkFlags(true,false,false,true) == true);
       
   198     
       
   199     setFlags(true,true,true,true);
       
   200     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
       
   201     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   202     QVERIFY(checkFlags(true,false,true,false) == true);
       
   203     
       
   204     // Three flags combinations
       
   205     setFlags(true,true,true,true);
       
   206     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   207     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);    
       
   208     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   209     QVERIFY(checkFlags(false,false,false,true) == true);
       
   210     
       
   211     setFlags(true,true,true,true);
       
   212     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   213     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);        
       
   214     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   215     QVERIFY(checkFlags(false,false,true,false) == true);
       
   216     
       
   217     setFlags(true,true,true,true);
       
   218     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   219     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   220     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   221     QVERIFY(checkFlags(false,true,false,false) == true);
       
   222     
       
   223     setFlags(true,true,true,true);
       
   224     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
       
   225     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   226     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   227     QVERIFY(checkFlags(true,false,false,false) == true);
       
   228     
       
   229     // All flags unset
       
   230     setFlags(true,true,true,true);
       
   231     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
       
   232     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
       
   233     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
       
   234     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
       
   235     QVERIFY(checkFlags(false,false,false,false) == true);    
       
   236 }
       
   237 
       
   238 void TestPhoneUIQtButtonsController::testGetButtonFlags()
       
   239 {
       
   240     setFlags(true,false,false,false);
       
   241     QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == true &&
       
   242     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false &&
       
   243     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false &&
       
   244     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true);
       
   245     
       
   246     setFlags(false,true,false,false);
       
   247     QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false &&
       
   248     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == true &&
       
   249     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false &&
       
   250     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true);
       
   251     
       
   252     setFlags(false,false,true,false);
       
   253     QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false &&
       
   254     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false &&
       
   255     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == true &&
       
   256     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true);
       
   257 
       
   258     setFlags(false,false,false,true);
       
   259     QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false &&
       
   260     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false &&
       
   261     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false &&
       
   262     m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == true) == true);
       
   263 }
       
   264 
       
   265 bool TestPhoneUIQtButtonsController::checkFlags(bool hold, bool ihf, bool wired, bool btaa)
       
   266 {
       
   267     return (hold == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) &&
       
   268              ihf == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) &&
       
   269            wired == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) &&
       
   270             btaa == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) );
       
   271 }
       
   272 
       
   273 void TestPhoneUIQtButtonsController::setFlags(bool hold, bool ihf, bool wired, bool btaa)
       
   274 {
       
   275     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,hold);
       
   276     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,ihf);
       
   277     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,wired);
       
   278     m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,btaa);    
       
   279 }
       
   280 
       
   281 QTEST_MAIN(TestPhoneUIQtButtonsController)
       
   282 #include "unit_tests.moc"