summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2013-06-24 12:49:06 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-25 16:02:11 +0200
commit95a9372e5c27e5663893585a73ea80120b9e436c (patch)
treee4f63902482363548e1e491804d6687b3caf3da1 /tests
parent8dad4698d9a01ea6cc322a4bd95eb9de118f5754 (diff)
Fix parsing of QNdefMessage::fromByteArray()
Multiple NdefRecords were parsed incorrectly because the to-be-added record was never reset when reading the next entry. The added unit test fails without the fix. Task-number: QTBUG-31950 Change-Id: I2f1335b7e2d43000f55dc429524c5b8b87f868d2 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Alex <alexander.blasche@digia.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qndefmessage/tst_qndefmessage.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/auto/qndefmessage/tst_qndefmessage.cpp b/tests/auto/qndefmessage/tst_qndefmessage.cpp
index 476fad28..ba0dcd18 100644
--- a/tests/auto/qndefmessage/tst_qndefmessage.cpp
+++ b/tests/auto/qndefmessage/tst_qndefmessage.cpp
@@ -61,6 +61,7 @@ public:
private slots:
void tst_parse_data();
void tst_parse();
+ void messageParsingFromByteArray();
};
tst_QNdefMessage::tst_QNdefMessage()
@@ -415,6 +416,45 @@ void tst_QNdefMessage::tst_parse()
}
}
+void tst_QNdefMessage::messageParsingFromByteArray()
+{
+ const QByteArray reference("1234567890");
+ QNdefMessage message;
+ QNdefRecord first;
+ QVERIFY(first.isEmpty());
+ first.setTypeNameFormat(QNdefRecord::Uri);
+ QVERIFY(first.isEmpty());
+ first.setPayload(reference);
+ QCOMPARE(first.payload(), reference);
+ QVERIFY(!first.isEmpty());
+ QCOMPARE(first.typeNameFormat(), QNdefRecord::Uri);
+
+ message.append(first);
+
+ QNdefRecord second;
+
+ QCOMPARE(second.payload(), QByteArray());
+ QVERIFY(second.isEmpty());
+ QCOMPARE(second.typeNameFormat(), QNdefRecord::Empty);
+
+ message.append(second);
+
+ QByteArray result = message.toByteArray();
+ QNdefMessage messageCopy = QNdefMessage::fromByteArray(result);
+ QCOMPARE(messageCopy.size(), 2);
+
+ first = messageCopy.at(0);
+ second = messageCopy.at(1);
+
+ QCOMPARE(first.payload(), reference);
+ QVERIFY(!first.isEmpty());
+ QCOMPARE(first.typeNameFormat(), QNdefRecord::Uri);
+ QCOMPARE(second.payload(), QByteArray());
+ QVERIFY(second.isEmpty());
+ QCOMPARE(second.typeNameFormat(), QNdefRecord::Empty);
+
+}
+
QTEST_MAIN(tst_QNdefMessage)
#include "tst_qndefmessage.moc"