Niedzielski has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/289329

Change subject: Fix geo prop
......................................................................

Fix geo prop

• Don't return a null geo property or geo with a null latitude or
  longitude.

• Be more permissive in geo parser.

Bug: T135571
Change-Id: I22606b85bd60e1cc46105eae4b18e7be86d02ef4
---
M lib/parseProperty.js
M test/features/mobile-sections-lead/pagecontent.js
2 files changed, 24 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/mobileapps 
refs/changes/29/289329/1

diff --git a/lib/parseProperty.js b/lib/parseProperty.js
index 171745d..161b5bb 100644
--- a/lib/parseProperty.js
+++ b/lib/parseProperty.js
@@ -67,10 +67,11 @@
  * @returns {Geo} if latitude or longitude is truthy, else undefined.
  */
 function latLngStrToGeo(latLngStr) {
-    var latLng = latLngStr && latLngStr.split('; ') || [];
-    return latLng.length
-        && { "latitude": latLng[0] && parseFloat(latLng[0]),
-            "longitude": latLng[1] && parseFloat(latLng[1]) };
+    var latLng = latLngStr && latLngStr.split(/[;, ]+/) || [];
+    var geo = latLng.length &&
+              { latitude: latLng[0] && parseFloat(latLng[0]),
+                longitude: latLng[1] && parseFloat(latLng[1]) };
+    return mUtil.defaultVal(mUtil.filterEmpty(geo));
 }
 
 /**
@@ -78,7 +79,10 @@
  */
 function parseGeo(lead, page) {
     var coordinates = lead.querySelector('span#coordinates .geo');
-    page.geo = coordinates && latLngStrToGeo(coordinates.innerHTML);
+    var geo = coordinates && latLngStrToGeo(coordinates.textContent);
+    if (geo) {
+        page.geo = geo;
+    }
 }
 
 /**
diff --git a/test/features/mobile-sections-lead/pagecontent.js 
b/test/features/mobile-sections-lead/pagecontent.js
index 93c3d0f..9d933da 100644
--- a/test/features/mobile-sections-lead/pagecontent.js
+++ b/test/features/mobile-sections-lead/pagecontent.js
@@ -70,6 +70,21 @@
                 assert.deepEqual(lead.geo.longitude, -122.417);
             });
     });
+    it('es Savonlinna should have a lead object with a geo property', 
function() {
+        return preq.get({ uri: server.config.uri + 
'es.wikipedia.org/v1/page/mobile-sections-lead/Savonlinna' })
+            .then(function(res) {
+                var lead = res.body;
+                assert.deepEqual(lead.geo.latitude, 61.866666666667);
+                assert.deepEqual(lead.geo.longitude, 28.883055555556);
+            });
+    });
+    it('es Gogland should not have a lead object with a geo property', 
function() {
+        return preq.get({ uri: server.config.uri + 
'es.wikipedia.org/v1/page/mobile-sections-lead/Savonlinna' })
+            .then(function(res) {
+                var lead = res.body;
+                assert.ok(!lead.hasOwnProperty(lead.geo));
+            });
+    });
     it('Barack Obama should have a pronunciation', function() {
         return preq.get({ uri: server.config.uri + 
'en.wikipedia.org/v1/page/mobile-sections-lead/Barack_Obama' })
             .then(function(res) {

-- 
To view, visit https://gerrit.wikimedia.org/r/289329
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I22606b85bd60e1cc46105eae4b18e7be86d02ef4
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/mobileapps
Gerrit-Branch: master
Gerrit-Owner: Niedzielski <sniedziel...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to