File: TestNetworkLink.cpp

package info (click to toggle)
marble 4%3A25.08.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 159,996 kB
  • sloc: cpp: 191,890; xml: 39,908; ansic: 7,204; python: 2,190; sh: 1,187; makefile: 235; perl: 218; ruby: 97; java: 66
file content (75 lines) | stat: -rw-r--r-- 2,715 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// SPDX-License-Identifier: LGPL-2.1-or-later
//
// SPDX-FileCopyrightText: 2013 Mayank Madan <maddiemadan@gmail.com>
//

#include <QObject>

#include "TestUtils.h"
#include <GeoDataDocument.h>
#include <GeoDataFolder.h>
#include <GeoDataLink.h>
#include <GeoDataNetworkLink.h>
#include <MarbleDebug.h>

using namespace Marble;

class TestNetworkLink : public QObject
{
    Q_OBJECT
private Q_SLOTS:
    void initTestCase();
    void simpleParseTest();
};

void TestNetworkLink::initTestCase()
{
    MarbleDebug::setEnabled(true);
}

void TestNetworkLink::simpleParseTest()
{
    QString const centerContent(
        "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
        "<kml xmlns=\"http://www.opengis.net/kml/2.2\""
        " xmlns:gx=\"http://www.google.com/kml/ext/2.2\">"
        "<Folder>"
        " <NetworkLink>"
        "  <refreshVisibility>1</refreshVisibility> <!-- boolean -->"
        "  <flyToView>1</flyToView>                 <!-- boolean -->"
        "  <Link>"
        "   <href>http://files.kde.org/marble/examples/kml/</href>"
        "   <refreshMode>onChange</refreshMode>"
        "   <refreshInterval>2.1</refreshInterval>"
        "   <viewRefreshMode>never</viewRefreshMode>"
        "   <viewRefreshTime>4.2</viewRefreshTime>"
        "   <viewBoundScale>1.5</viewBoundScale>"
        "   <viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]</viewFormat>"
        "   <httpQuery>SiteType=sw,gw,sp&amp;SiteCode=all&amp;Format=ge</httpQuery>"
        "  </Link>"
        " </NetworkLink>"
        "</Folder>"
        "</kml>");

    GeoDataDocument *dataDocument = parseKml(centerContent);
    QCOMPARE(dataDocument->folderList().size(), 1);
    GeoDataFolder *folder = dataDocument->folderList().at(0);
    QCOMPARE(folder->size(), 1);
    auto networkLink = dynamic_cast<GeoDataNetworkLink *>(folder->child(0));
    QVERIFY(networkLink != nullptr);

    QCOMPARE(networkLink->refreshVisibility(), true);
    QCOMPARE(networkLink->flyToView(), true);
    QCOMPARE(networkLink->link().href(), QString("http://files.kde.org/marble/examples/kml/"));
    QCOMPARE(networkLink->link().refreshMode(), GeoDataLink::OnChange);
    QFUZZYCOMPARE(networkLink->link().refreshInterval(), 2.1, 0.0001);
    QCOMPARE(networkLink->link().viewRefreshMode(), GeoDataLink::Never);
    QFUZZYCOMPARE(networkLink->link().viewRefreshTime(), 4.2, 0.0001);
    QFUZZYCOMPARE(networkLink->link().viewBoundScale(), 1.5, 0.0001);
    QCOMPARE(networkLink->link().viewFormat(), QString("BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]"));
    QCOMPARE(networkLink->link().httpQuery(), QString("SiteType=sw,gw,sp&SiteCode=all&Format=ge"));
}

QTEST_MAIN(TestNetworkLink)

#include "TestNetworkLink.moc"