--- a/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonevisibilityhandler/unit_tests.cpp Wed Jun 23 18:12:20 2010 +0300
+++ b/phoneapp/phoneuiqtviewadapter/tsrc/ut_phonevisibilityhandler/unit_tests.cpp Tue Jul 06 14:15:47 2010 +0300
@@ -27,12 +27,16 @@
#include <telinformationpskeys.h>
#include <coreapplicationuisdomainpskeys.h>
#include <ccallinfoiter.h>
+#include <keyguardaccessapi.h>
#include "phoneuiqtviewif.h"
#define private public
#include "phonevisibilityhandler.h"
#undef public
int m_callCount = 0;
+int g_keyGuardEnabled = false;
+int g_enableKeyGuardCalled = false;
+int g_disableKeyGuardCalled = false;
#define PHONE_TEST_MAIN(TestObject) \
int main(int argc, char *argv[]) \
@@ -63,26 +67,26 @@
// From PhoneUIQtViewIF
BubbleManagerIF& bubbleManager () {};
- void addBubbleCommand (int bubbleId, const PhoneAction& action) {};
- void clearBubbleCommands (int bubbleId) {};
+ void addBubbleCommand (int , const PhoneAction& ) {};
+ void clearBubbleCommands (int ) {};
void addParticipantListAction(
- int commandId,
- const QString &text,
- const HbIcon &icon) {};
+ int ,
+ const QString &,
+ const HbIcon &) {};
void clearParticipantListActions() {};
void hideToolbar () {};
void showToolbar () {};
- void setToolbarActions (const QList<PhoneAction*>& actions) {};
+ void setToolbarActions (const QList<PhoneAction*>& ) {};
int volumeSliderValue () {};
void removeVolumeSlider () {};
void setVolumeSliderValue (
- int value,
- int commandId,
- int maxVolumeValue,
- int minVolumeValue ) {};
+ int ,
+ int ,
+ int ,
+ int ) {};
- void setExpandAction(int bubbleId, int commandId) {};
- void removeExpandAction(int bubbleId) {};
+ void setExpandAction(int , int ) {};
+ void removeExpandAction(int ) {};
void showDialpad() {};
void hideDialpad() {};
bool isDialpadVisible() {};
@@ -90,10 +94,13 @@
void clearAndHideDialpad() {};
void clearDialpad() {};
void bringToForeground() { m_bringToForegroundCalled = true;};
- void setMenuActions(const QList<PhoneAction*>& actions) {};
+ void setMenuActions(const QList<PhoneAction*>& ) {};
void shutdownPhoneApp() {};
- void setBackButtonVisible(bool visible) {};
+ void setBackButtonVisible(bool ) {};
HbMenu &menuReference() {};
+ void captureKey(Qt::Key , bool ) {};
+ void setRestrictedMode(bool ) {};
+
public slots:
void initTestCase();
@@ -111,6 +118,8 @@
void t_carmode();
void t_devicelock();
+
+ void t_keyGuardHandling();
private:
@@ -121,6 +130,33 @@
int m_normalPriority;
};
+CKeyguardAccessApi* CKeyguardAccessApi::NewL()
+{
+ return new CKeyguardAccessApi;
+}
+CKeyguardAccessApi::~CKeyguardAccessApi( ) {}
+CKeyguardAccessApi::CKeyguardAccessApi( ) {}
+
+
+TBool CKeyguardAccessApi::IsKeyguardEnabled()
+{
+ return g_keyGuardEnabled;
+}
+
+TInt CKeyguardAccessApi::EnableKeyguard( TBool )
+{
+ g_enableKeyGuardCalled = true;
+ return 0;
+}
+
+TInt CKeyguardAccessApi::DisableKeyguard( TBool )
+{
+ g_disableKeyGuardCalled = true;
+ return 0;
+}
+
+
+
TestPhoneVisibilityHandler::TestPhoneVisibilityHandler ()
{
}
@@ -135,7 +171,7 @@
m_handler = new PhoneVisibilityHandler (*this, this);
- m_startPosition = m_handler->ordinalPosition();
+ m_startPosition = CEikonEnv::Static()->RootWin().OrdinalPosition();
QVERIFY(m_startPosition > 0); // Expect OrdinalPosition higher than 0
m_startPriority = CEikonEnv::Static()->RootWin().OrdinalPriority();
QCOMPARE(m_startPriority, (int)ECoeWinPriorityNeverAtFront);
@@ -153,6 +189,9 @@
void TestPhoneVisibilityHandler::cleanup ()
{
+ g_keyGuardEnabled = false;
+ g_enableKeyGuardCalled = false;
+ g_disableKeyGuardCalled = false;
m_bringToForegroundCalled = false;
}
@@ -176,7 +215,7 @@
m_handler->bringToForeground();
QVERIFY(m_bringToForegroundCalled);
QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
- QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
// Test hide device dialogs when foreground ( false )
m_handler->hideDeviceDialogs(false);
@@ -186,7 +225,7 @@
// Test hide device dialogs when foreground ( true )
m_handler->hideDeviceDialogs(true);
QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
- QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
// send backgroud is called last
m_handler->sendToBackground(false);
@@ -227,6 +266,11 @@
QTest::qWait(100);
QVERIFY(m_handler->m_carModeEnabled == false);
QVERIFY(m_bringToForegroundCalled == false);
+
+ // send backgroud is called last
+ m_handler->sendToBackground(false);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
}
void TestPhoneVisibilityHandler::t_devicelock()
@@ -249,7 +293,7 @@
m_handler->bringToForeground();
QVERIFY(m_bringToForegroundCalled);
QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
- QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
// Test hide device dialogs when foreground ( false )
m_handler->hideDeviceDialogs(false);
@@ -259,12 +303,12 @@
// Test hide device dialogs when foreground ( true )
m_handler->hideDeviceDialogs(true);
QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
- QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
// Test lock status change
m_handler->HandlePropertyChangedL(KPSUidCoreApplicationUIs, KCoreAppUIsAutolockStatus, EAutolockOff);
QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
- QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 1);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
// send backgroud is called last
@@ -275,5 +319,114 @@
}
+void TestPhoneVisibilityHandler::t_keyGuardHandling()
+{
+ // Test when keyguard is not enabled before call
+ g_keyGuardEnabled = false;
+
+ // bringToForeground is call
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ // send backgroud is called last
+ m_handler->sendToBackground(false);
+ QVERIFY(!g_enableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+
+
+ // Test when keyguard is enabled before call
+ cleanup();
+ g_keyGuardEnabled = true;
+
+ // bringToForeground is call
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ // send backgroud is called last
+ m_handler->sendToBackground(false);
+ QVERIFY(g_enableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+
+ // Test when keyguard is enabled before call +
+ // keyguard is not enabled when phone is background
+ cleanup();
+ g_keyGuardEnabled = true;
+
+ // bringToForeground is call
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ // Test that keyguard is not enabled when phone is background
+ CEikonEnv::Static()->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNormal);
+ m_handler->sendToBackground(false);
+ QVERIFY(!g_enableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+
+
+ // Test case where two calls is created and key guard is enabled
+ cleanup();
+ g_keyGuardEnabled = true;
+
+ // bringToForeground is call
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ m_handler->sendToBackground(false);
+ QVERIFY(g_enableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+
+ // Test case where two calls is created and key guard is enabled during middle
+ cleanup();
+
+ // bringToForeground is call
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ g_keyGuardEnabled = true;
+ m_handler->bringToForeground();
+ QVERIFY(m_bringToForegroundCalled);
+ QVERIFY(g_disableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), 0);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), ECoeWinPriorityAlwaysAtFront + 100);
+
+ cleanup();
+ m_handler->sendToBackground(false);
+ QVERIFY(g_enableKeyGuardCalled);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPosition(), m_startPosition);
+ QCOMPARE(CEikonEnv::Static()->RootWin().OrdinalPriority(), m_startPriority);
+}
+
+
PHONE_TEST_MAIN(TestPhoneVisibilityHandler)
#include "unit_tests.moc"