blob: 7b012f1e3e5d3738e1b5eca9c5eeb125cda9c9f5 [file] [log] [blame]
/****************************************************************************
**
** 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 <QtCore/QString>
#include <QtTest/QtTest>
#include <QtPositioning/qgeoaddress.h>
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<QString>("countryCode");
QTest::addColumn<QString>("expectedPostalCodeOnly");
QTest::addColumn<QString>("expectedFullAddress");
QTest::newRow("Albania") << QString::fromLatin1("ALB")
<< QString::fromLatin1("postcode") /* postal code only */
<< QString::fromLatin1("street<br/>" /* full address */
"postcode, city<br/>"
"country");
QTest::newRow("Andorra") << QString::fromLatin1("AND")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("United Arab Emirates") << QString::fromLatin1("ARE")
<< QString()
<< QString::fromLatin1("street<br/>"
"district city<br/>"
"country");
QTest::newRow("Australia") << QString::fromLatin1("AUS")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district state postcode<br/>"
"country");
QTest::newRow("Austria") << QString::fromLatin1("AUT")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Bahamas") << QString::fromLatin1("BHS")
<< QString()
<< QString::fromLatin1("street<br/>"
"district city<br/>"
"country");
QTest::newRow("Bahrain") << QString::fromLatin1("BHR")
<< QString()
<< QString::fromLatin1("street<br/>"
"district, city, state<br/>"
"country");
QTest::newRow("Brazil") << QString::fromLatin1("BRA")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district city-state postcode<br/>"
"country");
QTest::newRow("Brunei Darussalam") << QString::fromLatin1("BRN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district city postcode<br/>"
"country");
QTest::newRow("Canada") << QString::fromLatin1("CAN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city, state postcode<br/>"
"country");
QTest::newRow("China") << QString::fromLatin1("CHN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street, city<br/>"
"postcode state<br/>"
"country");
QTest::newRow("Chile") << QString::fromLatin1("CHL")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode district, city, state<br/>"
"country");
QTest::newRow("Cayman Islands") << QString::fromLatin1("CYM")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"state postcode<br/>"
"country");
QTest::newRow("France") << QString::fromLatin1("FRA")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("United Kingdom") << QString::fromLatin1("GBR")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district, city, postcode<br/>"
"country");
QTest::newRow("Gibraltar") << QString::fromLatin1("GIB")
<< QString()
<< QString::fromLatin1("street<br/>"
"city<br/>"
"country");
QTest::newRow("Guadeloupe") << QString::fromLatin1("GLP")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("French Guiana") << QString::fromLatin1("GUF")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Hong Kong") << QString::fromLatin1("HKG")
<< QString()
<< QString::fromLatin1("street<br/>"
"district<br/>"
"city");
QTest::newRow("India") << QString::fromLatin1("IND")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city postcode state<br/>"
"country");
QTest::newRow("Indonesia") << QString::fromLatin1("IDN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city, postcode<br/>"
"country");
QTest::newRow("Ireland") << QString::fromLatin1("IRL")
<< QString()
<< QString::fromLatin1("street<br/>"
"district, state<br/>"
"country");
QTest::newRow("Italy") << QString::fromLatin1("ITA")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Jersey") << QString::fromLatin1("JEY")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city, postcode<br/>"
"country");
QTest::newRow("Jordan") << QString::fromLatin1("JOR")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district city postcode<br/>"
"country");
QTest::newRow("Kuwait") << QString::fromLatin1("KWT")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode, district, city<br/>"
"country");
QTest::newRow("Latvia") << QString::fromLatin1("LVA")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city, postcode<br/>"
"country");
QTest::newRow("Lebanon") << QString::fromLatin1("LBN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district city postcode<br/>"
"country");
QTest::newRow("Luxembourg") << QString::fromLatin1("LUX")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Malta") << QString::fromLatin1("MLT")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city postcode<br/>"
"country");
QTest::newRow("Monaco") << QString::fromLatin1("MCO")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Mexico") << QString::fromLatin1("MEX")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district<br/>"
"postcode city, state<br/>"
"country");
QTest::newRow("Martinique") << QString::fromLatin1("MTQ")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode, city<br/>"
"country");
QTest::newRow("Malaysia") << QString::fromLatin1("MYS")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"state<br/>"
"country");
QTest::newRow("New Zealand") << QString::fromLatin1("NZL")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district city postcode<br/>"
"country");
QTest::newRow("Oman") << QString::fromLatin1("OMN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district, postcode, city, country");
QTest::newRow("Puerto Rico") << QString::fromLatin1("PRI")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"district, city, state, postcode<br/>"
"country");
QTest::newRow("Qatar") << QString::fromLatin1("QAT")
<< QString()
<< QString::fromLatin1("street<br/>"
"district city, country");
QTest::newRow("Reunion") << QString::fromLatin1("REU")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Russian Federation") << QString::fromLatin1("RUS")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Saudi Arabia") << QString::fromLatin1("SAU")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street district<br/>"
"city postcode<br/>"
"country");
QTest::newRow("Singapore") << QString::fromLatin1("SGP")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city postcode<br/>"
"country");
QTest::newRow("Marino") << QString::fromLatin1("SMR")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Taiwan") << QString::fromLatin1("TWN")
<< QString()
<< QString::fromLatin1("street, district, city<br/>"
"country");
QTest::newRow("Thailand") << QString::fromLatin1("THA")
<< QString("postcode")
<< QString::fromLatin1("street<br/>"
"district, city postcode<br/>"
"country");
QTest::newRow("Turkey") << QString::fromLatin1("TUR")
<< QString("postcode")
<< QString::fromLatin1("street<br/>"
"postcode district, city<br/>"
"country");
QTest::newRow("Ukraine") << QString::fromLatin1("UKR")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city postcode<br/>"
"country");
QTest::newRow("United States") << QString::fromLatin1("USA")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city, state postcode<br/>"
"country");
QTest::newRow("Virgin Islands, US") << QString::fromLatin1("VIR")
<< QString("postcode")
<< QString::fromLatin1("street<br/>"
"city, state postcode<br/>"
"country");
QTest::newRow("Vatican City State") << QString::fromLatin1("VAT")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"country");
QTest::newRow("Venezuela") << QString::fromLatin1("VEN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"city postcode, state<br/>"
"country");
QTest::newRow("South Africa") << QString::fromLatin1("ZAF")
<< QString()
<< QString::fromLatin1("street<br/>"
"district, city<br/>"
"country");
QTest::newRow("Finland") << QString::fromLatin1("FIN")
<< QString::fromLatin1("postcode")
<< QString::fromLatin1("street<br/>"
"postcode city<br/>"
"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"