--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phoneuiqtbuttonscontroller/unit_tests.cpp Fri Mar 19 09:28:42 2010 +0200
@@ -0,0 +1,282 @@
+/*!
+* 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 PhoneUIQtButtonsController.
+*
+*/
+
+#include <QtTest/QtTest>
+#include <QtGui>
+#include <hbapplication.h>
+#include <QSignalSpy>
+//#include <hbglobal_p.h>
+#include "phoneuiqtbuttonscontroller.h"
+
+class TestPhoneUIQtButtonsController : public QObject
+{
+ Q_OBJECT
+public:
+ TestPhoneUIQtButtonsController();
+ virtual ~TestPhoneUIQtButtonsController();
+
+public slots:
+ void initTestCase ();
+ void cleanupTestCase ();
+ void init ();
+ void cleanup ();
+
+private slots:
+ void testSetButtonFlags();
+ void testUnsetButtonFlags();
+ void testGetButtonFlags();
+
+private:
+ // Helper functions
+ bool checkFlags(bool hold, bool ihf, bool wired, bool btaa);
+ void setFlags(bool hold, bool ihf, bool wired, bool btaa);
+
+private:
+ PhoneUIQtButtonsController *m_buttonsCtrl; // class under test
+};
+
+TestPhoneUIQtButtonsController::TestPhoneUIQtButtonsController ()
+{
+}
+
+TestPhoneUIQtButtonsController::~TestPhoneUIQtButtonsController ()
+{
+}
+
+void TestPhoneUIQtButtonsController::initTestCase ()
+{
+
+}
+
+void TestPhoneUIQtButtonsController::cleanupTestCase ()
+{
+
+}
+
+void TestPhoneUIQtButtonsController::init ()
+{
+ m_buttonsCtrl = new PhoneUIQtButtonsController ();
+}
+
+void TestPhoneUIQtButtonsController::cleanup ()
+{
+ delete m_buttonsCtrl;
+}
+
+void TestPhoneUIQtButtonsController::testSetButtonFlags()
+{
+ // Set one flag
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ QVERIFY(checkFlags(true,false,false,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ QVERIFY(checkFlags(false,true,false,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ QVERIFY(checkFlags(false,false,true,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(false,false,false,true) == true);
+
+ // Two flags combinations
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ QVERIFY(checkFlags(true,true,false,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ QVERIFY(checkFlags(true,false,true,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(true,false,false,true) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ QVERIFY(checkFlags(false,true,true,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(false,true,false,true) == true);
+
+ // Three flags combinations
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ QVERIFY(checkFlags(true,true,true,false) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(true,true,false,true) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(true,false,true,true) == true);
+
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(false,true,true,true) == true);
+
+ // All flags set
+ setFlags(false,false,false,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,true);
+ QVERIFY(checkFlags(true,true,true,true) == true);
+}
+
+void TestPhoneUIQtButtonsController::testUnsetButtonFlags()
+{
+ // Unset one flag
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ QVERIFY(checkFlags(false,true,true,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ QVERIFY(checkFlags(true,false,true,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ QVERIFY(checkFlags(true,true,false,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(true,true,true,false) == true);
+
+ // Two flags combinations
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ QVERIFY(checkFlags(false,false,true,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ QVERIFY(checkFlags(false,true,false,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(false,true,true,false) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ QVERIFY(checkFlags(true,false,false,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(true,false,true,false) == true);
+
+ // Three flags combinations
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ QVERIFY(checkFlags(false,false,false,true) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(false,false,true,false) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(false,true,false,false) == true);
+
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(true,false,false,false) == true);
+
+ // All flags unset
+ setFlags(true,true,true,true);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,false);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,false);
+ QVERIFY(checkFlags(false,false,false,false) == true);
+}
+
+void TestPhoneUIQtButtonsController::testGetButtonFlags()
+{
+ setFlags(true,false,false,false);
+ QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == true &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true);
+
+ setFlags(false,true,false,false);
+ QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == true &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true);
+
+ setFlags(false,false,true,false);
+ QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == true &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == false) == true);
+
+ setFlags(false,false,false,true);
+ QVERIFY((m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) == false &&
+ m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) == true) == true);
+}
+
+bool TestPhoneUIQtButtonsController::checkFlags(bool hold, bool ihf, bool wired, bool btaa)
+{
+ return (hold == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Hold) &&
+ ihf == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Ihf) &&
+ wired == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Wired) &&
+ btaa == m_buttonsCtrl->getButtonFlags(PhoneUIQtButtonsController::Btaa) );
+}
+
+void TestPhoneUIQtButtonsController::setFlags(bool hold, bool ihf, bool wired, bool btaa)
+{
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Hold,hold);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Ihf,ihf);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Wired,wired);
+ m_buttonsCtrl->setButtonFlags(PhoneUIQtButtonsController::Btaa,btaa);
+}
+
+QTEST_MAIN(TestPhoneUIQtButtonsController)
+#include "unit_tests.moc"