File indexing completed on 2024-12-01 03:36:51
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2013 Dennis Nienhüser <nienhueser@kde.org> 0004 // 0005 0006 #include <QObject> 0007 0008 #include <GeoDataDocument.h> 0009 #include <MarbleDebug.h> 0010 #include <GeoDataCamera.h> 0011 #include "TestUtils.h" 0012 0013 using namespace Marble; 0014 0015 class TestCamera : public QObject 0016 { 0017 Q_OBJECT 0018 private Q_SLOTS: 0019 void initTestCase(); 0020 void simpleParseTest(); 0021 }; 0022 0023 void TestCamera::initTestCase() 0024 { 0025 MarbleDebug::setEnabled( true ); 0026 } 0027 0028 void TestCamera::simpleParseTest() 0029 { 0030 QString const kmlContent ( 0031 "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" 0032 "<kml xmlns=\"http://www.opengis.net/kml/2.2\"" 0033 " xmlns:gx=\"http://www.google.com/kml/ext/2.2\">" 0034 "<Document>" 0035 " <Camera id=\"myCam\">" 0036 " <longitude>1</longitude>" 0037 " <latitude>2</latitude>" 0038 " <altitude>3</altitude>" 0039 " <heading>4</heading>" 0040 " <tilt>5</tilt>" 0041 " <roll>6</roll>" 0042 " <altitudeMode>relativeToGround</altitudeMode>" 0043 " </Camera>" 0044 "</Document>" 0045 "</kml>" ); 0046 0047 GeoDataDocument* dataDocument = parseKml( kmlContent ); 0048 GeoDataCamera *camera = dynamic_cast<GeoDataCamera*>( dataDocument->abstractView() ); 0049 0050 QVERIFY( camera != nullptr); 0051 0052 GeoDataCoordinates::Unit const degree = GeoDataCoordinates::Degree; 0053 QCOMPARE( camera->longitude( degree ), 1.0 ); 0054 QCOMPARE( camera->latitude( degree ), 2.0 ); 0055 QCOMPARE( camera->altitude(), 3.0 ); 0056 QCOMPARE( camera->heading(), 4.0 ); 0057 QCOMPARE( camera->tilt(), 5.0 ); 0058 QCOMPARE( camera->roll(), 6.0 ); 0059 QCOMPARE( camera->altitudeMode(), RelativeToGround ); 0060 0061 delete dataDocument; 0062 } 0063 0064 QTEST_MAIN( TestCamera ) 0065 0066 #include "TestCamera.moc" 0067