aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSachin Kundu <ext-sachin.kundu@nokia.com>2010-12-10 12:49:36 +0200
committerSachin Kundu <ext-sachin.kundu@nokia.com>2010-12-10 12:49:36 +0200
commitf891042021f2593d74c33de175f2c76077355649 (patch)
tree9978bde5ba22cc952a9ea278cb9d4033b26045f9
parent67aab107e8d6419c339a6cab4f2926eee0c51327 (diff)
Fixes: NB#208330 - meegotouchhome process causing high wakeups when device is in idle state
RevBy: Vesa Halttunen, Pauli Lehtinen
-rw-r--r--debian/changelog1
-rw-r--r--src/extensions/applicationextension/mextensionhandle.cpp63
-rw-r--r--src/extensions/applicationextension/mextensionhandle.h8
-rw-r--r--src/extensions/applicationextension/mextensionhandle_p.h9
-rw-r--r--src/extensions/applicationextension/mextensionrunner.cpp32
-rw-r--r--src/extensions/applicationextension/mextensionrunner.h16
-rw-r--r--tests/stubs/mextensionhandle_stub.h8
-rw-r--r--tests/ut_mapplethandle/ut_mapplethandle.pro5
-rw-r--r--tests/ut_mextensionhandle/ut_mextensionhandle.cpp65
-rw-r--r--tests/ut_mextensionhandle/ut_mextensionhandle.h3
-rw-r--r--tests/ut_mextensionhandle/ut_mextensionhandle.pro5
-rw-r--r--tests/ut_mextensionrunner/ut_mextensionrunner.cpp54
-rw-r--r--tests/ut_mextensionrunner/ut_mextensionrunner.h3
-rw-r--r--tests/ut_mextensionrunner/ut_mextensionrunner.pro5
14 files changed, 253 insertions, 24 deletions
diff --git a/debian/changelog b/debian/changelog
index 8f4e7384..441efec5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
libmeegotouch (0.20.65~1) unstable; urgency=low
* unreleased
+ * Fixes: NB#208330 - meegotouchhome process causing high wakeups when device is in idle state
-- Adrian Yanes <ext-adrian.yanes@nokia.com> Wed, 08 Dec 2010 15:56:30 +0200
diff --git a/src/extensions/applicationextension/mextensionhandle.cpp b/src/extensions/applicationextension/mextensionhandle.cpp
index e0c9d7a1..2760b7b4 100644
--- a/src/extensions/applicationextension/mextensionhandle.cpp
+++ b/src/extensions/applicationextension/mextensionhandle.cpp
@@ -57,6 +57,10 @@
#include <MAction>
#include <mobjectmenu.h>
+#ifdef HAVE_CONTEXTSUBSCRIBER
+#include "contextproperty.h"
+#endif
+
#include "mwidgetcreator.h"
M_REGISTER_WIDGET(MExtensionHandle)
@@ -66,12 +70,18 @@ const QString MExtensionHandlePrivate::PACKAGE_MANAGER_DBUS_PATH = "/com/nokia/p
//! D-Bus interface of the Package Manager
const QString MExtensionHandlePrivate::PACKAGE_MANAGER_DBUS_INTERFACE = "com.nokia.package_manager";
+//! Interval for checking that the extension is alive
+static const uint ALIVE_TIMER_INTERVAL = 5000;
+
MExtensionHandlePrivate::MExtensionHandlePrivate() :
restartCount(0),
aliveResponseTimeout(3000),
runnerConnectionTimeout(20000),
applicationVisible(true),
remoteActions(),
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ screenBlankProperty(new ContextProperty("Session.State", this)),
+#endif
q_ptr(NULL)
{
communicationTimer.setSingleShot(true);
@@ -116,29 +126,20 @@ MExtensionHandle::MExtensionHandle(QGraphicsItem *parent) :
MWidgetController(new MExtensionHandleModel, parent),
d_ptr(new MExtensionHandlePrivate())
{
- Q_D(MExtensionHandle);
-
- if (d)
- d->q_ptr = this;
-
- // TODO: FIXME - this needs to have the scene specified,
- // temporarily uses currently active MWindow's scene.
- connect(MApplication::activeWindow(),
- SIGNAL(orientationChanged(M::Orientation)),
- this, SLOT(orientationEvent(M::Orientation)));
-
- connect(this, SIGNAL(visibleChanged()), this, SLOT(visibilityChanged()));
-
- // Configure the timers
- connect(&d->aliveTimer, SIGNAL(timeout()), this, SLOT(sendAliveMessageRequest()));
- connect(&d->communicationTimer, SIGNAL(timeout()), this, SLOT(communicationTimerTimeout()));
+ initialize();
}
MExtensionHandle::MExtensionHandle(MExtensionHandlePrivate *dd, MExtensionHandleModel *model, QGraphicsItem *parent) :
MWidgetController(model, parent),
d_ptr(dd)
{
+ initialize();
+}
+
+void MExtensionHandle::initialize()
+{
Q_D(MExtensionHandle);
+
if (d)
d->q_ptr = this;
@@ -153,6 +154,10 @@ MExtensionHandle::MExtensionHandle(MExtensionHandlePrivate *dd, MExtensionHandle
// Configure the timers
connect(&d->aliveTimer, SIGNAL(timeout()), this, SLOT(sendAliveMessageRequest()));
connect(&d->communicationTimer, SIGNAL(timeout()), this, SLOT(communicationTimerTimeout()));
+
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ connect(d->screenBlankProperty, SIGNAL(valueChanged()), this, SLOT(updateDisplayState()));
+#endif
}
MExtensionHandle::~MExtensionHandle()
@@ -160,6 +165,25 @@ MExtensionHandle::~MExtensionHandle()
kill();
}
+void MExtensionHandle::updateDisplayState()
+{
+ Q_D(MExtensionHandle);
+
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ if(state() == MExtensionHandleModel::RUNNING) {
+ bool blanked = d->screenBlankProperty->value().toString() == "blanked";
+
+ if(blanked && d->aliveTimer.isActive()) {
+ d->aliveTimer.stop();
+ d->communicationTimer.stop();
+ } else if(!d->aliveTimer.isActive()) {
+ d->aliveTimer.start(ALIVE_TIMER_INTERVAL);
+ sendAliveMessageRequest();
+ }
+ }
+#endif
+}
+
void MExtensionHandle::initPlaceHolder(const QString &packageName, const QString &installationError)
{
model()->setPackageName(packageName);
@@ -279,10 +303,13 @@ void MExtensionHandle::connectionEstablished()
// Set the state to running
model()->setCurrentState(MExtensionHandleModel::RUNNING);
- // Send alive request every 5 seconds. Send the first alive request immediately.
- d->aliveTimer.start(5000);
+ // Send alive requests at certain interval. Send the first alive request immediately.
+ d->aliveTimer.start(ALIVE_TIMER_INTERVAL);
sendAliveMessageRequest();
+ // Set the current display state
+ updateDisplayState();
+
// Send the visibility changed message to the runner
d->visibilityChanged();
diff --git a/src/extensions/applicationextension/mextensionhandle.h b/src/extensions/applicationextension/mextensionhandle.h
index fae9e793..e986bb62 100644
--- a/src/extensions/applicationextension/mextensionhandle.h
+++ b/src/extensions/applicationextension/mextensionhandle.h
@@ -242,6 +242,11 @@ protected slots:
*/
void remoteActionTriggered();
+ /*!
+ * \brief Stops or starts the alive timer depending on the display blanking state
+ */
+ void updateDisplayState();
+
signals:
/*!
* \brief Signals that a pixmap has been taken into use by the runner
@@ -256,6 +261,9 @@ signals:
private:
Q_DECLARE_PRIVATE(MExtensionHandle)
+ //! Initializes the object
+ void initialize();
+
//! Sets the state to BROKEN and restarts if this is the first time
void setBrokenState();
diff --git a/src/extensions/applicationextension/mextensionhandle_p.h b/src/extensions/applicationextension/mextensionhandle_p.h
index c1e3cba4..2e9a2288 100644
--- a/src/extensions/applicationextension/mextensionhandle_p.h
+++ b/src/extensions/applicationextension/mextensionhandle_p.h
@@ -30,6 +30,10 @@
class MAction;
+#ifdef HAVE_CONTEXTSUBSCRIBER
+class ContextProperty;
+#endif
+
/*!
* A private data class for MExtensionHandle.
*/
@@ -91,6 +95,11 @@ public:
//! A list of remote actions
QList<MAction *> remoteActions;
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ //! Context property for getting the screen blanking status
+ ContextProperty *screenBlankProperty;
+#endif
+
//! D-Bus service of the Package Manager
static const QString PACKAGE_MANAGER_DBUS_SERVICE;
diff --git a/src/extensions/applicationextension/mextensionrunner.cpp b/src/extensions/applicationextension/mextensionrunner.cpp
index 805874df..49736210 100644
--- a/src/extensions/applicationextension/mextensionrunner.cpp
+++ b/src/extensions/applicationextension/mextensionrunner.cpp
@@ -64,6 +64,9 @@
#ifdef QT_OPENGL_LIB
#include <QGLWidget>
#endif
+#ifdef HAVE_CONTEXTSUBSCRIBER
+#include "contextproperty.h"
+#endif
#include <typeinfo>
@@ -101,6 +104,10 @@ MExtensionRunner::MExtensionRunner() :
widget(NULL),
scene(NULL),
view(NULL),
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ screenBlankProperty(new ContextProperty("Session.State", this)),
+#endif
+ displayBlanked(false),
#ifdef QT_OPENGL_LIB
context(NULL),
#endif
@@ -113,6 +120,9 @@ MExtensionRunner::MExtensionRunner() :
connect(communicator, SIGNAL(messageReceived(MAppletMessage)), this, SLOT(messageReceived(MAppletMessage)));
connect(aliveTimer, SIGNAL(timeout()), this, SLOT(hostProcessNotAlive()));
connect(communicator, SIGNAL(connectionLost()), this, SLOT(hostProcessNotAlive()));
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ connect(screenBlankProperty, SIGNAL(valueChanged()), this, SLOT(updateDisplayState()));
+#endif
}
MExtensionRunner::~MExtensionRunner()
@@ -170,6 +180,24 @@ bool MExtensionRunner::init(const QString &serverName)
return true;
}
+void MExtensionRunner::updateDisplayState()
+{
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ bool blanked = screenBlankProperty->value().toString() == "blanked";
+
+ if(displayBlanked != blanked) {
+ displayBlanked = blanked;
+
+ if(blanked) {
+ aliveTimer->stop();
+ } else {
+ aliveTimer->start(ALIVE_TIMER_TIMEOUT);
+ }
+ }
+#endif
+}
+
+
void MExtensionRunner::teardown()
{
delete scene;
@@ -193,7 +221,9 @@ void MExtensionRunner::messageReceived(const MAppletMessage &message)
}
aliveTimer->stop();
- aliveTimer->start(ALIVE_TIMER_TIMEOUT);
+ if(!displayBlanked) {
+ aliveTimer->start(ALIVE_TIMER_TIMEOUT);
+ }
switch (message.type()) {
case MAppletMessage::MousePressMessage:
diff --git a/src/extensions/applicationextension/mextensionrunner.h b/src/extensions/applicationextension/mextensionrunner.h
index bf7dac21..b13d2210 100644
--- a/src/extensions/applicationextension/mextensionrunner.h
+++ b/src/extensions/applicationextension/mextensionrunner.h
@@ -42,6 +42,9 @@ class QAction;
#ifdef QT_OPENGL_LIB
class QGLContext;
#endif
+#ifdef HAVE_CONTEXTSUBSCRIBER
+class ContextProperty;
+#endif
//! \internal
/**
@@ -108,6 +111,11 @@ protected slots:
*/
virtual void hostProcessNotAlive();
+ /*!
+ * \brief Stops or starts the alive timer depending on the display blanking state
+ */
+ void updateDisplayState();
+
protected:
//! AppletClient for communicating between the runner and the host processes.
MAppletClient *communicator;
@@ -131,6 +139,14 @@ protected:
//! List to hold object menu actions received from widget.
QList<QAction *> widgetObjectMenuActions;
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ //! Context property for getting the screen blanking status
+ ContextProperty *screenBlankProperty;
+#endif
+
+ //! True if the display is currently blanked
+ bool displayBlanked;
+
#ifdef QT_OPENGL_LIB
//! OpenGL context
QGLContext *context;
diff --git a/tests/stubs/mextensionhandle_stub.h b/tests/stubs/mextensionhandle_stub.h
index 0dd01da1..cd9cf9f6 100644
--- a/tests/stubs/mextensionhandle_stub.h
+++ b/tests/stubs/mextensionhandle_stub.h
@@ -63,6 +63,7 @@ class MExtensionHandleStub : public StubBase {
virtual void remoteActionTriggered();
virtual void setBrokenState();
virtual void displayContextMenu(QList<QString> actions);
+ virtual void updateDisplayState();
};
// 2. IMPLEMENT STUB
@@ -95,6 +96,10 @@ void MExtensionHandleStub::reinit() {
stubMethodEntered("reinit");
}
+void MExtensionHandleStub::updateDisplayState() {
+ stubMethodEntered("updateDisplayState");
+}
+
void MExtensionHandleStub::setAliveResponseTimeout(uint timeout) {
QList<ParameterBase*> params;
params.append( new Parameter<uint >(timeout));
@@ -394,5 +399,8 @@ void MExtensionHandle::displayContextMenu(QList<QString> actions) {
gMExtensionHandleStub->displayContextMenu(actions);
}
+void MExtensionHandle::updateDisplayState() {
+ gMExtensionHandleStub->updateDisplayState();
+}
#endif
diff --git a/tests/ut_mapplethandle/ut_mapplethandle.pro b/tests/ut_mapplethandle/ut_mapplethandle.pro
index 23870d5c..9de703f9 100644
--- a/tests/ut_mapplethandle/ut_mapplethandle.pro
+++ b/tests/ut_mapplethandle/ut_mapplethandle.pro
@@ -6,6 +6,11 @@ INCLUDEPATH += \
$$MSRCDIR/corelib/style
QT += xml
+contains(DEFINES, HAVE_CONTEXTSUBSCRIBER) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += contextsubscriber-1.0
+}
+
MODEL_HEADERS += \
$$MSRCDIR/corelib/widgets/mwidgetmodel.h \
$$MSRCDIR/extensions/applicationextension/mextensionhandlemodel.h \
diff --git a/tests/ut_mextensionhandle/ut_mextensionhandle.cpp b/tests/ut_mextensionhandle/ut_mextensionhandle.cpp
index 1f99efd7..ce67cc71 100644
--- a/tests/ut_mextensionhandle/ut_mextensionhandle.cpp
+++ b/tests/ut_mextensionhandle/ut_mextensionhandle.cpp
@@ -55,6 +55,10 @@
#include <mappletid_stub.h>
#include <mscenemanager.h>
+#ifdef HAVE_CONTEXTSUBSCRIBER
+#include "contextproperty.h"
+#endif
+
MApplication *app;
bool visibility;
@@ -74,6 +78,15 @@ void MWidget::contextMenuEvent(QGraphicsSceneContextMenuEvent *)
Ut_MExtensionHandle::contextMenuOpened = true;
}
+// ContextProperty stubs
+#ifdef HAVE_CONTEXTSUBSCRIBER
+QString gContextPropertyValue = "";
+QVariant ContextProperty::value() const
+{
+ return gContextPropertyValue;
+}
+#endif
+
// MSceneManager stubs (used by MExtensionHandle)
void MSceneManager::appearSceneWindow(MSceneWindow *, MSceneWindow::DeletionPolicy)
{
@@ -163,11 +176,26 @@ bool MAppletCommunicator::sendMessage(const MAppletMessage &message)
}
// QTimer stubs
-bool timerCalled = false;
+QList<QTimer*> gQTimerStartCalls;
+void QTimer::start()
+{
+ gQTimerStartCalls.append(this);
+ id = 1;
+}
+
+void QTimer::start(int)
+{
+ start();
+}
+
+bool gQTimerStopCalled = false;
+QList<QTimer*> gQTimerStopCalls;
void QTimer::stop()
{
- timerCalled = true;
+ gQTimerStopCalled = true;
+ gQTimerStopCalls.append(this);
+ id = -1;
}
int elapsedQTime = 0;
@@ -234,7 +262,13 @@ void Ut_MExtensionHandle::init()
listenForConnection = true;
elapsedQTime = 0;
- timerCalled = false;
+ gQTimerStartCalls.clear();
+ gQTimerStopCalled = false;
+ gQTimerStopCalls.clear();
+
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ gContextPropertyValue = "";
+#endif
gStartQProcess = true;
@@ -405,7 +439,7 @@ void Ut_MExtensionHandle::testAppletCommunication()
handle->init("/bin/true", "metaDataFileName");
MAppletAliveMessageResponse message;
handle->messageReceivedFromRunner(message);
- QCOMPARE(timerCalled, true);
+ QCOMPARE(gQTimerStopCalled, true);
}
void Ut_MExtensionHandle::testRelayingMousePress()
@@ -644,4 +678,27 @@ void Ut_MExtensionHandle::testSetSizeHints()
QCOMPARE(handle->model()->sizeHints(), sizeHints);
}
+#ifdef HAVE_CONTEXTSUBSCRIBER
+void Ut_MExtensionHandle::testWhenDisplayBlankedThenAliveCheckingStops()
+{
+ handle->init("/bin/true", "metaDataFileName");
+ emit connectionFromRunnerEstablished();
+ QVERIFY(qFind(gQTimerStartCalls, &handle->privateClass()->aliveTimer) != gQTimerStartCalls.end());
+ QVERIFY(qFind(gQTimerStartCalls, &handle->privateClass()->communicationTimer) != gQTimerStartCalls.end());
+
+ gContextPropertyValue = "blanked";
+ gQTimerStopCalls.clear();
+ handle->updateDisplayState();
+ QVERIFY(qFind(gQTimerStopCalls, &handle->privateClass()->aliveTimer) != gQTimerStopCalls.end());
+ QVERIFY(qFind(gQTimerStopCalls, &handle->privateClass()->communicationTimer) != gQTimerStopCalls.end());
+
+ gContextPropertyValue = "";
+ gQTimerStartCalls.clear();
+ handle->updateDisplayState();
+ QVERIFY(qFind(gQTimerStartCalls, &handle->privateClass()->aliveTimer) != gQTimerStartCalls.end());
+ QVERIFY(qFind(gQTimerStartCalls, &handle->privateClass()->communicationTimer) != gQTimerStartCalls.end());
+}
+#endif
+
+
QTEST_APPLESS_MAIN(Ut_MExtensionHandle)
diff --git a/tests/ut_mextensionhandle/ut_mextensionhandle.h b/tests/ut_mextensionhandle/ut_mextensionhandle.h
index b6867afe..47938a2c 100644
--- a/tests/ut_mextensionhandle/ut_mextensionhandle.h
+++ b/tests/ut_mextensionhandle/ut_mextensionhandle.h
@@ -91,6 +91,9 @@ private slots:
void testInstallationOperationCompleteWithError();
void testAppletInstallationProgess();
void testSetSizeHints();
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ void testWhenDisplayBlankedThenAliveCheckingStops();
+#endif
signals:
void messageReceived(const MAppletMessage &message);
diff --git a/tests/ut_mextensionhandle/ut_mextensionhandle.pro b/tests/ut_mextensionhandle/ut_mextensionhandle.pro
index 39f42455..0a54a9e9 100644
--- a/tests/ut_mextensionhandle/ut_mextensionhandle.pro
+++ b/tests/ut_mextensionhandle/ut_mextensionhandle.pro
@@ -6,6 +6,11 @@ INCLUDEPATH += \
$$MSRCDIR/corelib/style
QT += xml
+contains(DEFINES, HAVE_CONTEXTSUBSCRIBER) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += contextsubscriber-1.0
+}
+
MODEL_HEADERS += \
$$MSRCDIR/corelib/widgets/mwidgetmodel.h \
$$MSRCDIR/extensions/applicationextension/mextensionhandlemodel.h
diff --git a/tests/ut_mextensionrunner/ut_mextensionrunner.cpp b/tests/ut_mextensionrunner/ut_mextensionrunner.cpp
index 9223d793..709fce2b 100644
--- a/tests/ut_mextensionrunner/ut_mextensionrunner.cpp
+++ b/tests/ut_mextensionrunner/ut_mextensionrunner.cpp
@@ -41,10 +41,23 @@
#include <QtTest/QtTest>
#include <QGraphicsLinearLayout>
+#ifdef HAVE_CONTEXTSUBSCRIBER
+#include "contextproperty.h"
+#endif
+
#ifdef Q_WS_X11
#include <X11/Xlib.h>
#endif
+// ContextProperty stubs
+#ifdef HAVE_CONTEXTSUBSCRIBER
+QString gContextPropertyValue = "";
+QVariant ContextProperty::value() const
+{
+ return gContextPropertyValue;
+}
+#endif
+
// MWindow stubs (to prevent crashing)
MWindow::MWindow(QWidget *parent)
: QGraphicsView(parent),
@@ -56,13 +69,28 @@ MWindow::~MWindow()
}
// QTimer stubs (used by MExtensionRunner)
-void QTimer::start(int)
+QList<QTimer*> gQTimerStartCalls;
+void QTimer::start()
{
+ gQTimerStartCalls.append(this);
+ id = 1;
if (Ut_MExtensionRunner::timerImmediateTimeout) {
emit timeout();
}
}
+void QTimer::start(int)
+{
+ start();
+}
+
+QList<QTimer*> gQTimerStopCalls;
+void QTimer::stop()
+{
+ gQTimerStopCalls.append(this);
+ id = -1;
+}
+
// QCoreApplication stubs (used by MExtensionRunner)
void QCoreApplication::quit()
{
@@ -147,6 +175,8 @@ void Ut_MExtensionRunner::init()
connect(this, SIGNAL(sendMessage(MAppletMessage)), m_instance, SLOT(messageReceived(MAppletMessage)));
timerImmediateTimeout = false;
+ gQTimerStartCalls.clear();
+ gQTimerStopCalls.clear();
quitCalled = false;
gMAppletSharedMutexStub->stubReset();
gMAppletSharedMutexStub->stubSetReturnValue("init", true);
@@ -159,6 +189,10 @@ void Ut_MExtensionRunner::init()
MAppletCommunicator_sentUpdateGeometryMessageSizeHints = QVector<QSizeF>(Qt::NSizeHints);
sceneRenderCalled = false;
gMAppletSettingsStub->stubReset();
+
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ gContextPropertyValue = "";
+#endif
}
void Ut_MExtensionRunner::cleanup()
@@ -486,4 +520,22 @@ void Ut_MExtensionRunner::testObjectMenuRequestMessageGetsPropagated()
QCOMPARE(MAppletCommunicator_sentObjectMenuActionList.at(0), QString("correct_action"));
}
+#ifdef HAVE_CONTEXTSUBSCRIBER
+void Ut_MExtensionRunner::testWhenDisplayBlankedThenAliveCheckingStops()
+{
+ gContextPropertyValue = "blanked";
+ gQTimerStopCalls.clear();
+ m_instance->updateDisplayState();
+ QVERIFY(qFind(gQTimerStopCalls, m_instance->aliveTimer) != gQTimerStopCalls.end());
+
+ gQTimerStartCalls.clear();
+ m_instance->messageReceived(MAppletAliveMessageRequest());
+ QCOMPARE(gQTimerStartCalls.count(), 0);
+
+ gContextPropertyValue = "";
+ m_instance->updateDisplayState();
+ QVERIFY(qFind(gQTimerStartCalls, m_instance->aliveTimer) != gQTimerStartCalls.end());
+}
+#endif
+
QTEST_MAIN(Ut_MExtensionRunner)
diff --git a/tests/ut_mextensionrunner/ut_mextensionrunner.h b/tests/ut_mextensionrunner/ut_mextensionrunner.h
index df568732..3ded0271 100644
--- a/tests/ut_mextensionrunner/ut_mextensionrunner.h
+++ b/tests/ut_mextensionrunner/ut_mextensionrunner.h
@@ -76,6 +76,9 @@ private slots:
void testSceneChanged();
void testObjectMenuRequestMessage();
void testObjectMenuRequestMessageGetsPropagated();
+#ifdef HAVE_CONTEXTSUBSCRIBER
+ void testWhenDisplayBlankedThenAliveCheckingStops();
+#endif
signals:
void sendMessage(const MAppletMessage &message);
diff --git a/tests/ut_mextensionrunner/ut_mextensionrunner.pro b/tests/ut_mextensionrunner/ut_mextensionrunner.pro
index f832419b..7f5facff 100644
--- a/tests/ut_mextensionrunner/ut_mextensionrunner.pro
+++ b/tests/ut_mextensionrunner/ut_mextensionrunner.pro
@@ -3,6 +3,11 @@ include(../common_mextensions.pri)
QT += network xml
+contains(DEFINES, HAVE_CONTEXTSUBSCRIBER) {
+ CONFIG += link_pkgconfig
+ PKGCONFIG += contextsubscriber-1.0
+}
+
SOURCES += ut_mextensionrunner.cpp \
$$MSRCDIR/extensions/applicationextension/mextensionrunner.cpp \
../stubs/stubbase.cpp