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"