From ca6ecf83b15e96e65791e21749e3263296aef057 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Mon, 4 Mar 2019 16:24:36 -0500 Subject: Add fbclid trimmer, resolves #1290 --- .../kotlin/com/pitchedapps/frost/facebook/FbUrlFormatter.kt | 10 ++++++++-- .../test/kotlin/com/pitchedapps/frost/facebook/FbUrlTest.kt | 13 +++++++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbUrlFormatter.kt b/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbUrlFormatter.kt index 2c171762..6208f401 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbUrlFormatter.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/facebook/FbUrlFormatter.kt @@ -82,7 +82,13 @@ class FbUrlFormatter(url: String) { builder.append(cleaned) if (queries.isNotEmpty()) { builder.append("?") - queries.forEach { (k, v) -> builder.append("$k=$v&") } + queries.forEach { (k, v) -> + if (v.isEmpty()) { + builder.append("$k&") + } else { + builder.append("$k=$v&") + } + } } return builder.removeSuffix("&").toString() } @@ -121,7 +127,7 @@ class FbUrlFormatter(url: String) { * * acontext is not required for "friends interested in" notifications */ - val discardableQueries = arrayOf("ref", "refid", "SharedWith") + val discardableQueries = arrayOf("ref", "refid", "SharedWith", "fbclid") val converter = listOf( "\\3C " to "%3C", "\\3E " to "%3E", "\\23 " to "%23", "\\25 " to "%25", diff --git a/app/src/test/kotlin/com/pitchedapps/frost/facebook/FbUrlTest.kt b/app/src/test/kotlin/com/pitchedapps/frost/facebook/FbUrlTest.kt index 3bd59fd3..e2a6f4ae 100644 --- a/app/src/test/kotlin/com/pitchedapps/frost/facebook/FbUrlTest.kt +++ b/app/src/test/kotlin/com/pitchedapps/frost/facebook/FbUrlTest.kt @@ -70,6 +70,19 @@ class FbUrlTest { assertFbFormat(formattedUrl, url) } + @Test + fun valuelessQuery() { + val url = "$FB_URL_BASE?foo" + assertFbFormat(url, url) + } + + @Test + fun fbclid() { + val url = "$FB_URL_BASE?foo&fbclid=abc&bar=bbb" + val formattedUrl = "$FB_URL_BASE?foo&bar=bbb" + assertFbFormat(formattedUrl, url) + } + @Test fun doubleDash() { assertFbFormat("${FB_URL_BASE}relative", "$FB_URL_BASE/relative") -- cgit v1.2.3