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