Update OfonoModem to match latest oFono
authorAlexander Kanavin <alex.kanavin@gmail.com>
Fri, 5 Aug 2011 14:48:57 +0000 (17:48 +0300)
committerAlexander Kanavin <alex.kanavin@gmail.com>
Fri, 5 Aug 2011 15:11:31 +0000 (18:11 +0300)
lib/ofonomodem.cpp
lib/ofonomodem.h
tests/test_ofonomodem.cpp

index 3168d3d..30cfea2 100644 (file)
@@ -65,6 +65,8 @@ void OfonoModem::propertyChanged(const QString& property, const QVariant& value)
         emit onlineChanged(value.value<bool>());
     else if (property == "Powered")
         emit poweredChanged(value.value<bool>());
+    else if (property == "Lockdown")
+        emit lockdownChanged(value.value<bool>());
     else if (property == "Emergency")
         emit emergencyChanged(value.value<bool>());
     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<bool>();
+}
+
+void OfonoModem::setLockdown(bool lockdown)
+{
+    m_if->setProperty("Lockdown", qVariantFromValue(lockdown));
+}
+
 bool OfonoModem::emergency() const
 {
     return m_if->properties()["Emergency"].value<bool>();
index c12c9ee..532c865 100644 (file)
@@ -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);
index 19562c6..8f6b148 100644 (file)
@@ -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);