diff --git a/src/modules/locale/GeoIPTests.cpp b/src/modules/locale/GeoIPTests.cpp index 9ad7ad7fc..2c59aa729 100644 --- a/src/modules/locale/GeoIPTests.cpp +++ b/src/modules/locale/GeoIPTests.cpp @@ -51,8 +51,34 @@ GeoIPTests::testJSON() QCOMPARE( tz.first, QLatin1String( "Europe" ) ); QCOMPARE( tz.second, QLatin1String( "Amsterdam" ) ); + + // JSON is quite tolerant + tz = handler.processReply( "time_zone: \"Europe/Brussels\"" ); + QCOMPARE( tz.second, QLatin1String( "Brussels" ) ); + + tz = handler.processReply( "time_zone: America/New_York\n" ); + QCOMPARE( tz.first, "America" ); +} + +void +GeoIPTests::testJSONbad() +{ + static const char data[] = "time_zone: 1"; + + FreeGeoIP handler; + auto tz = handler.processReply( data ); + + tz = handler.processReply( data ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "
404 Forbidden" ); + QCOMPARE( tz.first, QString() ); } + void GeoIPTests::testXML() { @@ -96,3 +122,19 @@ GeoIPTests::testXML2() QCOMPARE( tz.second, QLatin1String( "North Dakota/Beulah" ) ); #endif } + +void +GeoIPTests::testXMLbad() +{ +#ifdef HAVE_XML + XMLGeoIP handler; + auto tz = handler.processReply( "{time_zone: \"Europe/Paris\"}" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "