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