From 76e37402b3ec5ee66c4918a43c5afa7f60fb55d1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Thu, 12 Apr 2018 16:22:35 -0400 Subject: [PATCH] [locale] Extend tests with negative results --- src/modules/locale/GeoIPTests.cpp | 42 +++++++++++++++++++++++++++++++ src/modules/locale/GeoIPTests.h | 2 ++ 2 files changed, 44 insertions(+) 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( "" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "fnord" ); + QCOMPARE( tz.first, QString() ); +#endif +} diff --git a/src/modules/locale/GeoIPTests.h b/src/modules/locale/GeoIPTests.h index b153d5c5f..e673a0740 100644 --- a/src/modules/locale/GeoIPTests.h +++ b/src/modules/locale/GeoIPTests.h @@ -31,8 +31,10 @@ public: private Q_SLOTS: void initTestCase(); void testJSON(); + void testJSONbad(); void testXML(); void testXML2(); + void testXMLbad(); }; #endif