File indexing completed on 2024-04-21 08:30:16

0001 /*
0002     SPDX-FileCopyrightText: 2022 Volker Krause <vkrause@kde.org>
0003     SPDX-License-Identifier: LGPL-2.0-or-later
0004 */
0005 
0006 #include "../src/lib/json/jsonp_p.h"
0007 
0008 #include <QObject>
0009 #include <QTest>
0010 
0011 using namespace KPublicTransport;
0012 
0013 class JsonPTest: public QObject
0014 {
0015     Q_OBJECT
0016 private Q_SLOTS:
0017     void testDecode_data()
0018     {
0019         QTest::addColumn<QByteArray>("in");
0020         QTest::addColumn<QByteArray>("out");
0021 
0022         QTest::newRow("empty") << QByteArray() << QByteArray();
0023         QTest::newRow("minimal-wrapped-object") << QByteArray("({});") << QByteArray("{}");
0024         QTest::newRow("wrapped-object") << QByteArray("parseJson({\"content\":{}, \"array\":[]});") << QByteArray("{\"content\":{}, \"array\":[]}");
0025         QTest::newRow("minimal-wrapped-array") << QByteArray("([]);") << QByteArray("[]");
0026         QTest::newRow("wrapped-array") << QByteArray("parseJson([{\"content\":{}, \"array\":[]}]);") << QByteArray("[{\"content\":{}, \"array\":[]}]");
0027         QTest::newRow("unwrapped-object") << QByteArray("{\"content\":{}, \"array\":[]}") << QByteArray("{\"content\":{}, \"array\":[]}");
0028         QTest::newRow("unwrapped-array") << QByteArray("[{\"content\":{}, \"array\":[]}]") << QByteArray("[{\"content\":{}, \"array\":[]}]");
0029 
0030         QTest::newRow("invalid-object") << QByteArray("}{") << QByteArray("}{");
0031         QTest::newRow("invalid-array") << QByteArray("][") << QByteArray("][");
0032 
0033         QTest::newRow("invalid") << QByteArray("{[") << QByteArray("{[");
0034         QTest::newRow("invalid-mismatch") << QByteArray("{]") << QByteArray("{]");
0035     }
0036 
0037     void testDecode()
0038     {
0039         QFETCH(QByteArray, in);
0040         QFETCH(QByteArray, out);
0041 
0042         QCOMPARE(JsonP::decode(in), out);
0043     }
0044 };
0045 
0046 QTEST_APPLESS_MAIN(JsonPTest)
0047 
0048 #include "jsonptest.moc"