diff options
Diffstat (limited to 'tests/auto/qgeolocation/tst_qgeolocation.cpp')
-rw-r--r-- | tests/auto/qgeolocation/tst_qgeolocation.cpp | 412 |
1 files changed, 0 insertions, 412 deletions
diff --git a/tests/auto/qgeolocation/tst_qgeolocation.cpp b/tests/auto/qgeolocation/tst_qgeolocation.cpp deleted file mode 100644 index 553d32cd..00000000 --- a/tests/auto/qgeolocation/tst_qgeolocation.cpp +++ /dev/null @@ -1,412 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "tst_qgeolocation.h" -#include <QtPositioning/QGeoCircle> -#include <QtPositioning/QGeoPolygon> - -QT_USE_NAMESPACE - -tst_QGeoLocation::tst_QGeoLocation() -{ -} - -void tst_QGeoLocation::initTestCase() -{ - -} - -void tst_QGeoLocation::cleanupTestCase() -{ - -} - -void tst_QGeoLocation::init() -{ -} - -void tst_QGeoLocation::cleanup() -{ -} - -void tst_QGeoLocation::constructor() -{ - QCOMPARE(m_location.address(), m_address); - QCOMPARE(m_location.coordinate(), m_coordinate); - QCOMPARE(m_location.boundingShape(), m_viewport); - QCOMPARE(m_location.extendedAttributes(), m_extendedAttributes); -} - -void tst_QGeoLocation::copy_constructor() -{ - auto qgeolocationcopy = std::make_unique<QGeoLocation>(m_location); - QCOMPARE(m_location, *qgeolocationcopy); -} - -void tst_QGeoLocation::move_constructor() -{ - QGeoAddress address; - address.setCity("Berlin"); - address.setCountry("Germany"); - address.setCountryCode("DEU"); - address.setDistrict("Adlershof"); - address.setPostalCode("12489"); - address.setStreet("Erich-Thilo-Strasse"); - - QGeoLocation location; - location.setAddress(address); - location.setCoordinate(QGeoCoordinate(1.3, 2.4, 3.1)); - location.setBoundingShape(QGeoCircle(QGeoCoordinate(1.3, 2.4), 100)); - - QGeoLocation locationCopy = location; - QCOMPARE(std::move(location), locationCopy); -} - -void tst_QGeoLocation::move_assignment() -{ - QGeoAddress address; - address.setCity("Berlin"); - address.setCountry("Germany"); - address.setCountryCode("DEU"); - address.setDistrict("Adlershof"); - address.setPostalCode("12489"); - address.setStreet("Erich-Thilo-Strasse"); - - QGeoLocation location; - location.setAddress(address); - location.setCoordinate(QGeoCoordinate(1.3, 2.4, 3.1)); - location.setBoundingShape(QGeoCircle(QGeoCoordinate(1.3, 2.4), 100)); - - QGeoLocation locationCopy = location; - - QGeoLocation otherLocation; - otherLocation = std::move(location); - QCOMPARE(otherLocation, locationCopy); - - // Check that (move)assignment to a moved-from object is fine - location = std::move(locationCopy); - QCOMPARE(location, otherLocation); -} - -void tst_QGeoLocation::destructor() -{ - QGeoLocation *qgeolocationcopy; - - qgeolocationcopy = new QGeoLocation(); - delete qgeolocationcopy; - - qgeolocationcopy = new QGeoLocation(m_location); - delete qgeolocationcopy; -} - -void tst_QGeoLocation::address() -{ - m_address.setCity("Berlin"); - m_address.setCountry("Germany"); - m_address.setCountryCode("DEU"); - m_address.setDistrict("Mitte"); - m_address.setPostalCode("10115"); - m_address.setStreet("Invalidenstrasse"); - - m_location.setAddress(m_address); - - QCOMPARE(m_location.address(),m_address); - - m_address.setPostalCode("10125"); - QVERIFY(m_location.address() != m_address); -} - -void tst_QGeoLocation::coordinate() -{ - m_coordinate.setLatitude(13.3851); - m_coordinate.setLongitude(52.5312); - m_coordinate.setAltitude(134.23); - - m_location.setCoordinate(m_coordinate); - - QCOMPARE(m_location.coordinate(), m_coordinate); - - m_coordinate.setAltitude(0); - QVERIFY(m_location.coordinate() != m_coordinate); -} - -void tst_QGeoLocation::viewport() -{ - m_coordinate.setLatitude(13.3851); - m_coordinate.setLongitude(52.5312); - - // rectangle bounding box - QGeoRectangle qgeoboundingboxcopy(m_coordinate, 0.4, 0.4); - m_location.setBoundingShape(qgeoboundingboxcopy); - - QCOMPARE(m_location.boundingShape(), qgeoboundingboxcopy); - // test that QGeoShape::boundingGeoRectangle() matches with - // the qgeoboundingboxcopy. It simplifies code porting - QCOMPARE(m_location.boundingShape().boundingGeoRectangle(), qgeoboundingboxcopy); - - qgeoboundingboxcopy.setHeight(1); - - QVERIFY(m_location.boundingShape() != qgeoboundingboxcopy); - - // circle bounding box - QGeoCircle circle(m_coordinate, 10); - m_location.setBoundingShape(circle); - - QCOMPARE(m_location.boundingShape(), circle); - - auto point = QGeoCoordinate(0.5, 0.5); - QVERIFY(!circle.contains(point)); - circle.extendCircle(point); - - QVERIFY(m_location.boundingShape() != circle); - QVERIFY(!m_location.boundingShape().contains(point)); - - // polygon bounding box - const QList<QGeoCoordinate> points = {QGeoCoordinate(1.0, 1.0), QGeoCoordinate(1.0, 2.0), QGeoCoordinate(2.0, 2.0)}; - QGeoPolygon polygon(points); - - point = QGeoCoordinate(1.75, 1.25); - QVERIFY(!polygon.contains(point)); - - m_location.setBoundingShape(polygon); - QCOMPARE(m_location.boundingShape(), polygon); - - polygon.addCoordinate(QGeoCoordinate(2.0, 1.0)); - QVERIFY(m_location.boundingShape() != polygon); - QVERIFY(polygon.contains(point)); - QVERIFY(!m_location.boundingShape().contains(point)); -} - -void tst_QGeoLocation::extendedAttributes() -{ - m_extendedAttributes = QVariantMap({{ "foo" , 42 }}); - m_location.setExtendedAttributes(m_extendedAttributes); - QCOMPARE(m_location.extendedAttributes(), m_extendedAttributes); - - m_extendedAttributes["foo"] = 41; - QVERIFY(m_location.extendedAttributes() != m_extendedAttributes); -} - -void tst_QGeoLocation::operators() -{ - QGeoAddress qgeoaddresscopy; - qgeoaddresscopy.setCity("Berlin"); - qgeoaddresscopy.setCountry("Germany"); - qgeoaddresscopy.setCountryCode("DEU"); - - QGeoCoordinate qgeocoordinatecopy (32.324 , 41.324 , 24.55); - QVariantMap extendedAttributesCopy {{ "foo" , 42 }}; - - m_address.setCity("Madrid"); - m_address.setCountry("Spain"); - m_address.setCountryCode("SPA"); - - m_coordinate.setLatitude(21.3434); - m_coordinate.setLongitude(38.43443); - m_coordinate.setAltitude(634.21); - - m_extendedAttributes["foo"] = 43; - - m_location.setAddress(m_address); - m_location.setCoordinate(m_coordinate); - m_location.setExtendedAttributes(m_extendedAttributes); - - //Create a copy and see that they are the same - QGeoLocation qgeolocationcopy(m_location); - QVERIFY(m_location == qgeolocationcopy); - QVERIFY(!(m_location != qgeolocationcopy)); - - //Modify one and test if they are different - qgeolocationcopy.setAddress(qgeoaddresscopy); - QVERIFY(!(m_location == qgeolocationcopy)); - QVERIFY(m_location != qgeolocationcopy); - qgeolocationcopy.setAddress(m_address); - qgeolocationcopy.setCoordinate(qgeocoordinatecopy); - QVERIFY(!(m_location == qgeolocationcopy)); - QVERIFY(m_location != qgeolocationcopy); - qgeolocationcopy.setCoordinate(m_coordinate); - qgeolocationcopy.setExtendedAttributes(extendedAttributesCopy); - QVERIFY(!(m_location == qgeolocationcopy)); - QVERIFY(m_location != qgeolocationcopy); - - - //delete qgeolocationcopy; - //Asign and test that they are the same - qgeolocationcopy = m_location; - QVERIFY(m_location ==qgeolocationcopy); - QVERIFY(!(m_location != qgeolocationcopy)); -} - -void tst_QGeoLocation::comparison() -{ - QFETCH(QString, dataField); - - QGeoLocation location; - - //set address - QGeoAddress address; - address.setStreet("21 jump st"); - address.setCountry("USA"); - location.setAddress(address); - - //set coordinate - location.setCoordinate(QGeoCoordinate(5,10)); - - //set viewport - location.setBoundingShape(QGeoRectangle(QGeoCoordinate(5,5),0.4,0.4)); - - QGeoLocation otherLocation(location); - - if (dataField == "no change") { - QCOMPARE(location, otherLocation); - } else { - if (dataField == "address") { - QGeoAddress otherAddress; - otherAddress.setStreet("42 evergreen tce"); - otherAddress.setCountry("USA"); - otherLocation.setAddress(otherAddress); - } else if (dataField == "coordinate") { - otherLocation.setCoordinate(QGeoCoordinate(12,13)); - } else if (dataField == "viewport"){ - otherLocation.setBoundingShape(QGeoRectangle(QGeoCoordinate(1,2), 0.5,0.5)); - } else if (dataField == "extendedAttributes"){ - otherLocation.setExtendedAttributes(QVariantMap({{"foo", 44}})); - } else { - qFatal("Unknown data field to test"); - } - - QVERIFY(location != otherLocation); - } -} - -void tst_QGeoLocation::comparison_data() -{ - QTest::addColumn<QString> ("dataField"); - QTest::newRow("no change") << "no change"; - QTest::newRow("address") << "address"; - QTest::newRow("coordinate") << "coordinate"; - QTest::newRow("extendedAttributes") << "extendedAttributes"; -} - -void tst_QGeoLocation::isEmpty() -{ - QGeoAddress address; - address.setCity(QStringLiteral("Braunschweig")); - QVERIFY(!address.isEmpty()); - - QGeoRectangle boundingBox; - boundingBox.setTopLeft(QGeoCoordinate(1, -1)); - boundingBox.setBottomRight(QGeoCoordinate(-1, 1)); - QVERIFY(!boundingBox.isEmpty()); - - QVariantMap extendedAttributes({{"foo", 11}}); - - QGeoLocation location; - - QVERIFY(location.isEmpty()); - - // address - location.setAddress(address); - QVERIFY(!location.isEmpty()); - location.setAddress(QGeoAddress()); - QVERIFY(location.isEmpty()); - - // coordinate - location.setCoordinate(QGeoCoordinate(1, 2)); - QVERIFY(!location.isEmpty()); - location.setCoordinate(QGeoCoordinate()); - QVERIFY(location.isEmpty()); - - // bounding box - location.setBoundingShape(boundingBox); - QVERIFY(!location.isEmpty()); - location.setBoundingShape(QGeoRectangle()); - QVERIFY(location.isEmpty()); - - // extended attributes - location.setExtendedAttributes(extendedAttributes); - QVERIFY(!location.isEmpty()); - location.setExtendedAttributes(QVariantMap()); - QVERIFY(location.isEmpty()); -} - -void tst_QGeoLocation::hashing() -{ - QFETCH(QGeoLocation, leftLocation); - QFETCH(QGeoLocation, rightLocation); - QFETCH(bool, result); - - const size_t leftHash = qHash(leftLocation); - const size_t rightHash = qHash(rightLocation); - QCOMPARE(leftHash == rightHash, result); -} - -void tst_QGeoLocation::hashing_data() -{ - QTest::addColumn<QGeoLocation>("leftLocation"); - QTest::addColumn<QGeoLocation>("rightLocation"); - QTest::addColumn<bool>("result"); - - QTest::newRow("empty") << QGeoLocation() << QGeoLocation() << true; - - QGeoAddress address; - address.setCity("city"); - address.setPostalCode("1234"); - address.setDistrict("district"); - address.setStreet("street"); - address.setStreetNumber("12"); - - QGeoLocation leftLocation; - leftLocation.setAddress(address); - leftLocation.setCoordinate(QGeoCoordinate(1, 1)); - leftLocation.setBoundingShape(QGeoCircle(QGeoCoordinate(1, 1), 10)); - - // do not copy, so that they have different d_ptr's - QGeoLocation rightLocation; - rightLocation.setAddress(address); - rightLocation.setCoordinate(QGeoCoordinate(1, 1)); - rightLocation.setBoundingShape(QGeoCircle(QGeoCoordinate(1, 1), 10)); - - QTest::newRow("same locations") << leftLocation << rightLocation << true; - - QGeoLocation rightLocationCopy = rightLocation; - rightLocationCopy.setBoundingShape(QGeoRectangle(QGeoCoordinate(2, 0), QGeoCoordinate(0, 2))); - QTest::newRow("different shapes") << leftLocation << rightLocationCopy << false; - - rightLocationCopy = rightLocation; - rightLocationCopy.setCoordinate(QGeoCoordinate(2, 1)); - QTest::newRow("different coordinates") << leftLocation << rightLocationCopy << false; - - rightLocationCopy = rightLocation; - address.setState("state"); - rightLocationCopy.setAddress(address); - QTest::newRow("different addresses") << leftLocation << rightLocationCopy << false; -} - -QTEST_APPLESS_MAIN(tst_QGeoLocation); - |