[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:26:39 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=17d0fd4
The following commit has been merged in the master branch:
commit 17d0fd4902bd7ab279d402d777ad35ebe5bbfb6c
Author: Albert Vaca <albertvaka at gmail.com>
Date: Thu Jul 4 03:34:35 2013 +0200
Added unit tests for n tests for networkpackage serialization
---
daemon/networkpackage.cpp | 10 +++++++--
daemon/networkpackage.h | 2 +-
test/CMakeLists.txt | 2 ++
test/backendtests.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++
test/backendtests.h | 4 ++++
5 files changed, 67 insertions(+), 3 deletions(-)
diff --git a/daemon/networkpackage.cpp b/daemon/networkpackage.cpp
index 32c4201..379fc9b 100644
--- a/daemon/networkpackage.cpp
+++ b/daemon/networkpackage.cpp
@@ -33,6 +33,7 @@ NetworkPackage::NetworkPackage(QString type)
{
mId = time(NULL);
mType = type;
+ mVersion = 1;
}
QByteArray NetworkPackage::serialize() const
@@ -48,7 +49,7 @@ QByteArray NetworkPackage::serialize() const
bool ok;
QJson::Serializer serializer;
QByteArray json = serializer.serialize(variant,&ok);
- if (!ok) qDebug() << "D'oh!";
+ if (!ok) qDebug() << "Serialization error:" << serializer.errorMessage();
return json;
}
@@ -57,7 +58,12 @@ void NetworkPackage::unserialize(QByteArray a, NetworkPackage* np)
{
//Json -> QVariant
QJson::Parser parser;
- QVariantMap variant = parser.parse(a).toMap();
+ bool ok;
+ QVariantMap variant = parser.parse(a, &ok).toMap();
+ if (!ok) {
+ qDebug() << "Unserialization error:" << parser.errorLine() << parser.errorString();
+ np->setVersion(-1);
+ }
//QVariant -> Object
//NetworkPackage np;
diff --git a/daemon/networkpackage.h b/daemon/networkpackage.h
index a31d42c..3ee3454 100644
--- a/daemon/networkpackage.h
+++ b/daemon/networkpackage.h
@@ -52,7 +52,7 @@ public:
template<typename T> T get(const QString& property, const T& defaultValue = default_arg<T>::get()) const {
return mBody.value(property,defaultValue).template value<T>(); //Important note: Awesome template syntax is awesome
}
- template<typename T> void set(const QString& property, const T& value) const { return mBody[property].setValue(value); }
+ template<typename T> void set(const QString& property, const T& value) { mBody[property] = value; }
private:
void setId(long id) { mId = id; }
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 1c16c40..979cb20 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,4 +1,5 @@
set(kded_kdeconnect_tests_SRCS
+ ../daemon/networkpackage.cpp
backendtests.cpp
)
@@ -8,6 +9,7 @@ target_link_libraries(kded_kdeconnect_tests
${KDE4_KDECORE_LIBS}
${KDE4_KDEUI_LIBS}
kdnssd
+ qjson
${QT_QTTEST_LIBRARY}
${QT_QTNETWORK_LIBRARY}
)
diff --git a/test/backendtests.cpp b/test/backendtests.cpp
index 49fdf74..711e6b6 100644
--- a/test/backendtests.cpp
+++ b/test/backendtests.cpp
@@ -17,7 +17,10 @@
#include "backendtests.h"
+#include "../daemon/networkpackage.h"
+
#include <qtest_kde.h>
+#include <QtTest>
QTEST_KDEMAIN(BackendTests, NoGUI);
@@ -26,6 +29,55 @@ void BackendTests::initTestCase()
// Called before the first testfunction is executed
}
+void BackendTests::dummyTest()
+{
+ QDate date;
+ date.setYMD( 1967, 3, 11 );
+ QVERIFY( date.isValid() );
+ QCOMPARE( date.month(), 3 );
+ QCOMPARE( QDate::longMonthName(date.month()), QString("March") );
+}
+
+void BackendTests::networkPackageTest()
+{
+ NetworkPackage np("com.test");
+
+ np.set("hello","hola");
+ QCOMPARE( (np.get<QString>("hello","bye")) , QString("hola") );
+
+ np.set("hello","");
+ QCOMPARE( (np.get<QString>("hello","bye")) , QString("") );
+
+ np.body().remove("hello");
+ QCOMPARE( (np.get<QString>("hello","bye")) , QString("bye") );
+
+ QByteArray ba = np.serialize();
+ //qDebug() << "Serialized package:" << ba;
+ NetworkPackage np2;
+ NetworkPackage::unserialize(ba,&np2);
+
+ QCOMPARE( np.id(), np2.id() );
+ QCOMPARE( np.type(), np2.type() );
+ QCOMPARE( np.version(), np2.version() );
+ QCOMPARE( np.body(), np2.body() );
+
+ QByteArray json("{ \"id\": 123, \"type\": \"test\", \"body\": { \"testing\": true }, \"version\": 3 }");
+ //qDebug() << json;
+ NetworkPackage::unserialize(json,&np2);
+ QCOMPARE( np2.id(), long(123) );
+ QCOMPARE( np2.version(), 3 );
+ QCOMPARE( (np2.get<bool>("testing")), true );
+ QCOMPARE( (np2.get<bool>("not_testing")), false );
+ QCOMPARE( (np2.get<bool>("not_testing",true)), true );
+
+ //NetworkPackage::unserialize("this is not json",&np2);
+ //QtTest::ignoreMessage(QtSystemMsg, "json_parser - syntax error found, forcing abort, Line 1 Column 0");
+ //QtTest::ignoreMessage(QtDebugMsg, "Unserialization error: 1 \"syntax error, unexpected string\"");
+ //QCOMPARE( np2.version(), -1 );
+
+}
+
+
void BackendTests::cleanupTestCase()
{
// Called after the last testfunction was executed
diff --git a/test/backendtests.h b/test/backendtests.h
index 92d9eac..d0b59e1 100644
--- a/test/backendtests.h
+++ b/test/backendtests.h
@@ -26,6 +26,10 @@ class BackendTests : public QObject
private Q_SLOTS:
void initTestCase();
+
+ void dummyTest();
+ void networkPackageTest();
+
void cleanupTestCase();
void init();
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list