File indexing completed on 2024-05-12 05:13:44

0001 /*
0002     SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "gpx/gpxwriter.h"
0008 
0009 #include <QBuffer>
0010 #include <QDateTime>
0011 #include <QTimeZone>
0012 #include <QtTest/qtest.h>
0013 
0014 class GpxWriterTest : public QObject
0015 {
0016     Q_OBJECT
0017 private Q_SLOTS:
0018     void testWrite()
0019     {
0020         QByteArray gpxOut;
0021         QBuffer buffer(&gpxOut);
0022         buffer.open(QIODevice::WriteOnly);
0023 
0024         {
0025             Gpx::Writer writer(&buffer);
0026             writer.writeStartMetadata();
0027             writer.writeLink(QStringLiteral("https://apps.kde.org/itinerary"), QStringLiteral("KDE Itinerary"));
0028             writer.writeEndMetadata();
0029 
0030             writer.writeStartRoute();
0031             writer.writeName(QStringLiteral("ICE 123 from A to B"));
0032             writer.writeStartRoutePoint(46.1, 7.8);
0033             writer.writeTime(QDateTime({1996, 10, 14}, {12, 23}, QTimeZone("Europe/Brussels")));
0034             writer.writeEndRoutePoint();
0035             writer.writeEndRoute();
0036         }
0037 
0038         const char expected[] =
0039             "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
0040             "<gpx xmlns=\"http://www.topografix.com/GPX/1/1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.topografix.com/GPX/1/1\">\n"
0041             "    <metadata>\n"
0042             "        <link href=\"https://apps.kde.org/itinerary\">\n"
0043             "            <text>KDE Itinerary</text>\n"
0044             "        </link>\n"
0045             "    </metadata>\n"
0046             "    <rte>\n"
0047             "        <name>ICE 123 from A to B</name>\n"
0048             "        <rtept lat=\"46.1\" lon=\"7.8\">\n"
0049             "            <time>1996-10-14T12:23:00+02:00</time>\n"
0050             "        </rtept>\n"
0051             "    </rte>\n"
0052             "</gpx>\n";
0053 
0054         if (gpxOut != expected) {
0055             qDebug().noquote() << gpxOut;
0056         }
0057         QCOMPARE(gpxOut, expected);
0058     }
0059 };
0060 
0061 QTEST_GUILESS_MAIN(GpxWriterTest)
0062 
0063 #include "gpxwritertest.moc"