Joal has uploaded a new change for review.

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

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, 13 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/refinery/source 
refs/changes/26/217226/1

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..4560e44 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,13 +115,18 @@
             result.put("os_minor", NA);
         }
 
+        // Default wmf_app_version is NA
+        result.put("wmf_app_version", NA);
+
         String wmfAppStart = "WikipediaApp/";
         if (uaString.startsWith(wmfAppStart)) {
             int from = wmfAppStart.length();
             int to = uaString.indexOf(' ', from);
-            result.put("wmf_app_version", uaString.substring(from, to));
-        } else {
-            result.put("wmf_app_version", NA);
+            // if space after wmfAppStart, in between wmfAppStart and space 
substring
+            if (to > from)
+                result.put("wmf_app_version", uaString.substring(from, to));
+            else // Else between wmfAppStart and end of string
+                result.put("wmf_app_version", uaString.substring(from, 
uaString.length()));
         }
 
         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: newchange
Gerrit-Change-Id: I539a45327ed08e3ef198a5ede2dc7fec569ced4d
Gerrit-PatchSet: 1
Gerrit-Project: analytics/refinery/source
Gerrit-Branch: master
Gerrit-Owner: Joal <j...@wikimedia.org>

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

Reply via email to