/**************************************************************************** ** ** 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 #include #include QT_USE_NAMESPACE class tst_QGeoAddress : public QObject { Q_OBJECT public: tst_QGeoAddress(); private Q_SLOTS: void constructorTest(); void textTest(); //TODO: there are various field we don't have yet in QGeoAddress // will need to either remove or enable these tests // void additionalDataTest(); // void alternativeAttributesTest(); void cityTest(); void countryCodeTest(); void countryTest(); void countyTest(); void districtTest(); // void floorTest(); // void houseNumberTest(); // void labelTest(); void postalCodeTest(); void stateTest(); void streetTest(); // void suiteTest(); void generatedText(); void generatedText_data(); void operatorsTest(); void emptyClearTest(); }; tst_QGeoAddress::tst_QGeoAddress() { } void tst_QGeoAddress::constructorTest() { QGeoAddress testObj; testObj.setStreet("testId"); QGeoAddress *testObjPtr = new QGeoAddress(testObj); QVERIFY2(testObjPtr != NULL, "Copy constructor - null"); QVERIFY2(*testObjPtr == testObj, "Copy constructor - compare"); delete testObjPtr; } void tst_QGeoAddress::textTest() { QGeoAddress address; QVERIFY(address.text().isEmpty()); address.setText(QStringLiteral("123 Fake Street\nSpringfield")); QCOMPARE(address.text(), QStringLiteral("123 Fake Street\nSpringfield")); } void tst_QGeoAddress::cityTest() { QGeoAddress testObj; QVERIFY2(testObj.city() == QString(), "Wrong default value"); testObj.setCity("testText"); QVERIFY2(testObj.city() == "testText", "Wrong value returned"); } void tst_QGeoAddress::countryCodeTest() { QGeoAddress testObj; QVERIFY2(testObj.countryCode() == QString(), "Wrong default value"); testObj.setCountryCode("testText"); QVERIFY2(testObj.countryCode() == "testText", "Wrong value returned"); } void tst_QGeoAddress::countryTest() { QGeoAddress testObj; QVERIFY2(testObj.country() == QString(), "Wrong default value"); testObj.setCountry("testText"); QVERIFY2(testObj.country() == "testText", "Wrong value returned"); } void tst_QGeoAddress::countyTest() { QGeoAddress testObj; QVERIFY2(testObj.county() == QString(), "Wrong default value"); testObj.setCounty("testText"); QVERIFY2(testObj.county() == "testText", "Wrong value returned"); } void tst_QGeoAddress::districtTest() { QGeoAddress testObj; QVERIFY2(testObj.district() == QString(), "Wrong default value"); testObj.setDistrict("testText"); QVERIFY2(testObj.district() == "testText", "Wrong value returned"); } // TODO: currently don't have floor in QGeoAddress //void tst_QGeoAddress::floorTest() //{ // QGeoAddress testObj; // QVERIFY2(testObj.floor() == QString(), "Wrong default value"); // testObj.setFloor("testText"); // QVERIFY2(testObj.floor() == "testText", "Wrong value returned"); //} //TODO: Atm not sure if we will have house number in API. //void tst_QGeoAddress::houseNumberTest() //{ // QGeoAddress testObj; // QVERIFY2(testObj.houseNumber() == QString(), "Wrong default value"); // testObj.setHouseNumber("testText"); // QVERIFY2(testObj.houseNumber() == "testText", "Wrong value returned"); //} //void tst_QGeoAddress::labelTest() //{ // QGeoAddress testObj; // QVERIFY2(testObj.label() == QString(), "Wrong default value"); // testObj.setLabel("testText"); // QVERIFY2(testObj.label() == "testText", "Wrong value returned"); //} void tst_QGeoAddress::postalCodeTest() { QGeoAddress testObj; QVERIFY2(testObj.postalCode() == QString(), "Wrong default value"); testObj.setPostalCode("testText"); QVERIFY2(testObj.postalCode() == "testText", "Wrong value returned"); } void tst_QGeoAddress::stateTest() { QGeoAddress testObj; QVERIFY2(testObj.state() == QString(), "Wrong default value"); testObj.setState("testText"); QVERIFY2(testObj.state() == "testText", "Wrong value returned"); } void tst_QGeoAddress::streetTest() { QGeoAddress testObj; QVERIFY2(testObj.street() == QString(), "Wrong default value"); testObj.setStreet("testText"); QVERIFY2(testObj.street() == "testText", "Wrong value returned"); } void tst_QGeoAddress::generatedText() { QFETCH(QString, countryCode); QFETCH(QString, expectedPostalCodeOnly); QFETCH(QString, expectedFullAddress); QGeoAddress streetOnly; streetOnly.setStreet("street"); streetOnly.setCountryCode(countryCode); QCOMPARE(streetOnly.text(), QStringLiteral("street")); QGeoAddress cityOnly; cityOnly.setCity("city"); cityOnly.setCountryCode(countryCode); if (countryCode == QLatin1String("CYM") || countryCode == QLatin1String("IRL")) QCOMPARE(cityOnly.text(), QString()); else QCOMPARE(cityOnly.text(), QStringLiteral("city")); QGeoAddress postalCodeOnly; postalCodeOnly.setPostalCode("postcode"); postalCodeOnly.setCountryCode(countryCode); QCOMPARE(postalCodeOnly.text(), expectedPostalCodeOnly); QGeoAddress fullAddress; fullAddress.setStreet("street"); fullAddress.setDistrict("district"); fullAddress.setPostalCode("postcode"); fullAddress.setCity("city"); fullAddress.setState("state"); fullAddress.setCountry("country"); fullAddress.setCountryCode(countryCode); QCOMPARE(fullAddress.text(), expectedFullAddress); } void tst_QGeoAddress::generatedText_data() { QTest::addColumn("countryCode"); QTest::addColumn("expectedPostalCodeOnly"); QTest::addColumn("expectedFullAddress"); QTest::newRow("Albania") << QString::fromLatin1("ALB") << QString::fromLatin1("postcode") /* postal code only */ << QString::fromLatin1("street
" /* full address */ "postcode, city
" "country"); QTest::newRow("Andorra") << QString::fromLatin1("AND") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("United Arab Emirates") << QString::fromLatin1("ARE") << QString() << QString::fromLatin1("street
" "district city
" "country"); QTest::newRow("Australia") << QString::fromLatin1("AUS") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district state postcode
" "country"); QTest::newRow("Austria") << QString::fromLatin1("AUT") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Bahamas") << QString::fromLatin1("BHS") << QString() << QString::fromLatin1("street
" "district city
" "country"); QTest::newRow("Bahrain") << QString::fromLatin1("BHR") << QString() << QString::fromLatin1("street
" "district, city, state
" "country"); QTest::newRow("Brazil") << QString::fromLatin1("BRA") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district city-state postcode
" "country"); QTest::newRow("Brunei Darussalam") << QString::fromLatin1("BRN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district city postcode
" "country"); QTest::newRow("Canada") << QString::fromLatin1("CAN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city, state postcode
" "country"); QTest::newRow("China") << QString::fromLatin1("CHN") << QString::fromLatin1("postcode") << QString::fromLatin1("street, city
" "postcode state
" "country"); QTest::newRow("Chile") << QString::fromLatin1("CHL") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode district, city, state
" "country"); QTest::newRow("Cayman Islands") << QString::fromLatin1("CYM") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "state postcode
" "country"); QTest::newRow("France") << QString::fromLatin1("FRA") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("United Kingdom") << QString::fromLatin1("GBR") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district, city, postcode
" "country"); QTest::newRow("Gibraltar") << QString::fromLatin1("GIB") << QString() << QString::fromLatin1("street
" "city
" "country"); QTest::newRow("Guadeloupe") << QString::fromLatin1("GLP") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("French Guiana") << QString::fromLatin1("GUF") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Hong Kong") << QString::fromLatin1("HKG") << QString() << QString::fromLatin1("street
" "district
" "city"); QTest::newRow("India") << QString::fromLatin1("IND") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city postcode state
" "country"); QTest::newRow("Indonesia") << QString::fromLatin1("IDN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city, postcode
" "country"); QTest::newRow("Ireland") << QString::fromLatin1("IRL") << QString() << QString::fromLatin1("street
" "district, state
" "country"); QTest::newRow("Italy") << QString::fromLatin1("ITA") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Jersey") << QString::fromLatin1("JEY") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city, postcode
" "country"); QTest::newRow("Jordan") << QString::fromLatin1("JOR") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district city postcode
" "country"); QTest::newRow("Kuwait") << QString::fromLatin1("KWT") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode, district, city
" "country"); QTest::newRow("Latvia") << QString::fromLatin1("LVA") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city, postcode
" "country"); QTest::newRow("Lebanon") << QString::fromLatin1("LBN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district city postcode
" "country"); QTest::newRow("Luxembourg") << QString::fromLatin1("LUX") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Malta") << QString::fromLatin1("MLT") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city postcode
" "country"); QTest::newRow("Monaco") << QString::fromLatin1("MCO") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Mexico") << QString::fromLatin1("MEX") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district
" "postcode city, state
" "country"); QTest::newRow("Martinique") << QString::fromLatin1("MTQ") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode, city
" "country"); QTest::newRow("Malaysia") << QString::fromLatin1("MYS") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "state
" "country"); QTest::newRow("New Zealand") << QString::fromLatin1("NZL") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district city postcode
" "country"); QTest::newRow("Oman") << QString::fromLatin1("OMN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district, postcode, city, country"); QTest::newRow("Puerto Rico") << QString::fromLatin1("PRI") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "district, city, state, postcode
" "country"); QTest::newRow("Qatar") << QString::fromLatin1("QAT") << QString() << QString::fromLatin1("street
" "district city, country"); QTest::newRow("Reunion") << QString::fromLatin1("REU") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Russian Federation") << QString::fromLatin1("RUS") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Saudi Arabia") << QString::fromLatin1("SAU") << QString::fromLatin1("postcode") << QString::fromLatin1("street district
" "city postcode
" "country"); QTest::newRow("Singapore") << QString::fromLatin1("SGP") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city postcode
" "country"); QTest::newRow("Marino") << QString::fromLatin1("SMR") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Taiwan") << QString::fromLatin1("TWN") << QString() << QString::fromLatin1("street, district, city
" "country"); QTest::newRow("Thailand") << QString::fromLatin1("THA") << QString("postcode") << QString::fromLatin1("street
" "district, city postcode
" "country"); QTest::newRow("Turkey") << QString::fromLatin1("TUR") << QString("postcode") << QString::fromLatin1("street
" "postcode district, city
" "country"); QTest::newRow("Ukraine") << QString::fromLatin1("UKR") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city postcode
" "country"); QTest::newRow("United States") << QString::fromLatin1("USA") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city, state postcode
" "country"); QTest::newRow("Virgin Islands, US") << QString::fromLatin1("VIR") << QString("postcode") << QString::fromLatin1("street
" "city, state postcode
" "country"); QTest::newRow("Vatican City State") << QString::fromLatin1("VAT") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); QTest::newRow("Venezuela") << QString::fromLatin1("VEN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "city postcode, state
" "country"); QTest::newRow("South Africa") << QString::fromLatin1("ZAF") << QString() << QString::fromLatin1("street
" "district, city
" "country"); QTest::newRow("Finland") << QString::fromLatin1("FIN") << QString::fromLatin1("postcode") << QString::fromLatin1("street
" "postcode city
" "country"); } // TODO: curenlty we don't have suite in QGeoAddress // will need to either remove or enable //void tst_QGeoAddress::suiteTest() //{ // QGeoAddress testObj; // QVERIFY2(testObj.suite() == QString(), "Wrong default value"); // testObj.setSuite("testText"); // QVERIFY2(testObj.suite() == "testText", "Wrong value returned"); //} void tst_QGeoAddress::operatorsTest() { QGeoAddress testObj; testObj.setStreet("testValue"); QGeoAddress testObj2; testObj2 = testObj; QVERIFY2(testObj == testObj2, "Not copied correctly"); testObj2.setCountry("testValue2"); QVERIFY2(testObj != testObj2, "Object should be different"); } void tst_QGeoAddress::emptyClearTest() { QGeoAddress testObj; QVERIFY(testObj.isEmpty()); testObj.setCountry(QStringLiteral("country")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setCountryCode(QStringLiteral("countryCode")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setState(QStringLiteral("state")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setCounty(QStringLiteral("county")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setCity(QStringLiteral("city")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setDistrict(QStringLiteral("district")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setPostalCode(QStringLiteral("postalCode")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setStreet(QStringLiteral("street")); QVERIFY(!testObj.isEmpty()); testObj.clear(); testObj.setText(QStringLiteral("formatted address")); QVERIFY(!testObj.isEmpty()); testObj.clear(); QVERIFY(testObj.isEmpty()); } QTEST_APPLESS_MAIN(tst_QGeoAddress) #include "tst_qgeoaddress.moc"