Ottomata has submitted this change and it was merged.

Change subject: Correct UAParser not to fail for malformed wmf_app
......................................................................


Correct UAParser not to fail for malformed wmf_app

Previous commit had a failure case for malformed WikimediaApp user agent 
strings.
Now it shouldn't fail.

Bug: T99932
Change-Id: I539a45327ed08e3ef198a5ede2dc7fec569ced4d
---
M 
refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/UAParser.java
M 
refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestUAParserAppVersionRecognition.java
2 files changed, 12 insertions(+), 3 deletions(-)

Approvals:
  Mforns: Verified; Looks good to me, but someone else must approve
  Ottomata: Verified; Looks good to me, approved



diff --git 
a/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/UAParser.java
 
b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/UAParser.java
index de41e8c..1ea7707 100644
--- 
a/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/UAParser.java
+++ 
b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/UAParser.java
@@ -115,14 +115,18 @@
             result.put("os_minor", NA);
         }
 
+        // Default wmf_app_version is NA
+        String wmfAppVersion = NA;
+
         String wmfAppStart = "WikipediaApp/";
         if (uaString.startsWith(wmfAppStart)) {
             int from = wmfAppStart.length();
+            // Take the substring until either space or end of string.
             int to = uaString.indexOf(' ', from);
-            result.put("wmf_app_version", uaString.substring(from, to));
-        } else {
-            result.put("wmf_app_version", NA);
+            to = (to == -1) ? uaString.length() : to;
+            wmfAppVersion = uaString.substring(from, to);
         }
+        result.put("wmf_app_version", wmfAppVersion);
 
         return result;
     }
diff --git 
a/refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestUAParserAppVersionRecognition.java
 
b/refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestUAParserAppVersionRecognition.java
index df2f65a..7b347f3 100644
--- 
a/refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestUAParserAppVersionRecognition.java
+++ 
b/refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestUAParserAppVersionRecognition.java
@@ -41,6 +41,10 @@
         String ua2 = "WikipediaApp/4.1.2 (iPhone OS 8.3; Tablet)";
         Map<String, String> uaMap2 = uaParser.getUAMap(ua2);
         assertEquals("App version check", "4.1.2", 
uaMap2.get("wmf_app_version"));
+
+        String ua = "WikipediaApp/2.0-r-2015-04-23";
+        Map<String, String> uaMap = uaParser.getUAMap(ua);
+        assertEquals("App version check", "2.0-r-2015-04-23", 
uaMap.get("wmf_app_version"));
     }
 
     @Test
@@ -50,4 +54,5 @@
         Map<String, String> uaMap = uaParser.getUAMap(ua);
         assertEquals("App version check", uaParser.NA, 
uaMap.get("wmf_app_version"));
     }
+
 }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I539a45327ed08e3ef198a5ede2dc7fec569ced4d
Gerrit-PatchSet: 2
Gerrit-Project: analytics/refinery/source
Gerrit-Branch: master
Gerrit-Owner: Joal <[email protected]>
Gerrit-Reviewer: Joal <[email protected]>
Gerrit-Reviewer: Mforns <[email protected]>
Gerrit-Reviewer: Ottomata <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to