From c6d6cd1bd8a87789eefad825a44eec4851cbbcf2 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Fri, 5 Aug 2011 17:48:57 +0300 Subject: [PATCH] Update OfonoModem to match latest oFono --- lib/ofonomodem.cpp | 14 ++++++++++++++ lib/ofonomodem.h | 11 +++++++++-- tests/test_ofonomodem.cpp | 15 +++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/lib/ofonomodem.cpp b/lib/ofonomodem.cpp index 3168d3d..30cfea2 100644 --- a/lib/ofonomodem.cpp +++ b/lib/ofonomodem.cpp @@ -65,6 +65,8 @@ void OfonoModem::propertyChanged(const QString& property, const QVariant& value) emit onlineChanged(value.value()); else if (property == "Powered") emit poweredChanged(value.value()); + else if (property == "Lockdown") + emit lockdownChanged(value.value()); else if (property == "Emergency") emit emergencyChanged(value.value()); else if (property == "Name") @@ -89,6 +91,8 @@ void OfonoModem::setPropertyFailed(const QString& property) emit setOnlineFailed(); else if (property == "Powered") emit setPoweredFailed(); + else if (property == "Lockdown") + emit setLockdownFailed(); } void OfonoModem::modemAdded(const QString& /*modem*/) @@ -168,6 +172,16 @@ void OfonoModem::setOnline(bool online) m_if->setProperty("Online", qVariantFromValue(online)); } +bool OfonoModem::lockdown() const +{ + return m_if->properties()["Lockdown"].value(); +} + +void OfonoModem::setLockdown(bool lockdown) +{ + m_if->setProperty("Lockdown", qVariantFromValue(lockdown)); +} + bool OfonoModem::emergency() const { return m_if->properties()["Emergency"].value(); diff --git a/lib/ofonomodem.h b/lib/ofonomodem.h index c12c9ee..532c865 100644 --- a/lib/ofonomodem.h +++ b/lib/ofonomodem.h @@ -49,6 +49,7 @@ Q_PROPERTY(QString errorMessage READ errorMessage) Q_PROPERTY(bool powered READ powered WRITE setPowered NOTIFY poweredChanged) Q_PROPERTY(bool online READ online WRITE setOnline NOTIFY onlineChanged) +Q_PROPERTY(bool lockdown READ lockdown WRITE setLockdown NOTIFY lockdownChanged) Q_PROPERTY(bool emergency READ emergency NOTIFY emergencyChanged) Q_PROPERTY(QString name READ name NOTIFY nameChanged) @@ -103,9 +104,8 @@ public: QString errorMessage() const; bool powered() const; - void setPowered(bool powered); bool online() const; - void setOnline(bool online); + bool lockdown() const; bool emergency() const; QString name() const; @@ -117,6 +117,11 @@ public: QStringList features() const; QStringList interfaces() const; +public slots: + void setPowered(bool powered); + void setOnline(bool online); + void setLockdown(bool lockdown); + signals: //! Issued when a modem becomes unavailable or available again void validityChanged(bool validity); @@ -127,6 +132,8 @@ signals: void setPoweredFailed(); void onlineChanged(bool online); void setOnlineFailed(); + void lockdownChanged(bool lockdown); + void setLockdownFailed(); void emergencyChanged(bool emergency); void nameChanged(const QString &name); diff --git a/tests/test_ofonomodem.cpp b/tests/test_ofonomodem.cpp index 19562c6..8f6b148 100644 --- a/tests/test_ofonomodem.cpp +++ b/tests/test_ofonomodem.cpp @@ -55,6 +55,7 @@ private slots: QVERIFY(mm->isValid()); QVERIFY(mm->powered()); QVERIFY(mm->online()); + QVERIFY(!mm->lockdown()); QVERIFY(!mm->emergency()); QVERIFY(mm->features().count() > 0); QVERIFY(mm->interfaces().count() > 0); @@ -121,6 +122,8 @@ private slots: QSignalSpy poweredFailed(mm, SIGNAL(setPoweredFailed())); QSignalSpy online(mm, SIGNAL(onlineChanged(bool))); QSignalSpy onlineFailed(mm, SIGNAL(setOnlineFailed())); + QSignalSpy lockdown(mm, SIGNAL(lockdownChanged(bool))); + QSignalSpy lockdownFailed(mm, SIGNAL(setLockdownFailed())); QSignalSpy emergency(mm, SIGNAL(emergencyChanged(bool))); QSignalSpy name(mm, SIGNAL(nameChanged(const QString &))); QSignalSpy manufacturer(mm, SIGNAL(manufacturerChanged(const QString &))); @@ -166,6 +169,18 @@ private slots: QCOMPARE(interfaces.count(), 1); QCOMPARE(interfaces.takeFirst().at(0).toStringList().count(), 0); + mm->setLockdown(true); + QTest::qWait(5000); + QCOMPARE(lockdown.count(), 1); + QCOMPARE(lockdown.takeFirst().at(0).toBool(), true); + QCOMPARE(lockdownFailed.count(), 0); + + mm->setLockdown(false); + QTest::qWait(5000); + QCOMPARE(lockdown.count(), 1); + QCOMPARE(lockdown.takeFirst().at(0).toBool(), false); + QCOMPARE(lockdownFailed.count(), 0); + mm->setOnline(true); QTest::qWait(5000); QCOMPARE(onlineFailed.count(), 1); -- 2.7.4