aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-09-28 23:53:14 -0700
committerGitHub <noreply@github.com>2019-09-28 23:53:14 -0700
commitf5ae18fc0d824dbdce5523128f9ded86bdfa6d08 (patch)
treecabaef0452a65671c42806588b5e789b89bb01e4
parent08a0bbe6e921f411e04a13c4fdc1282cf9fb4221 (diff)
parentb67c1c8e0d06fc9ae57335fab88180cebfc20414 (diff)
downloadfrost-f5ae18fc0d824dbdce5523128f9ded86bdfa6d08.tar.gz
frost-f5ae18fc0d824dbdce5523128f9ded86bdfa6d08.tar.bz2
frost-f5ae18fc0d824dbdce5523128f9ded86bdfa6d08.zip
Merge pull request #1560 from AllanWang/fix-notif-parse
Remove accessibility text in notif parser
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/facebook/parsers/NotifParser.kt1
-rw-r--r--app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt19
2 files changed, 18 insertions, 2 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/facebook/parsers/NotifParser.kt b/app/src/main/kotlin/com/pitchedapps/frost/facebook/parsers/NotifParser.kt
index ab18172f..af342d04 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/facebook/parsers/NotifParser.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/facebook/parsers/NotifParser.kt
@@ -103,6 +103,7 @@ private class NotifParserImpl : FrostParserBase<FrostNotifs>(false) {
private fun parseNotif(element: Element): FrostNotif? {
val a = element.getElementsByTag("a").first() ?: return null
+ a.selectFirst("span.accessible_elem")?.remove()
val abbr = element.getElementsByTag("abbr")
val epoch = FB_EPOCH_MATCHER.find(abbr.attr("data-store"))[1]?.toLongOrNull() ?: -1L
// fetch id
diff --git a/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt b/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt
index 11e2502b..0be29c2b 100644
--- a/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt
+++ b/app/src/test/kotlin/com/pitchedapps/frost/facebook/parsers/FbParseTest.kt
@@ -44,11 +44,17 @@ class FbParseTest {
private inline fun <reified T : ParseData> FrostParser<T>.test(action: T.() -> Unit = {}) =
parse(COOKIE).test(url, action)
- private inline fun <reified T : ParseData> ParseResponse<T>?.test(url: String, action: T.() -> Unit = {}) {
+ private inline fun <reified T : ParseData> ParseResponse<T>?.test(
+ url: String,
+ action: T.() -> Unit = {}
+ ) {
val response = this
?: fail("${T::class.simpleName} parser returned null for $url")
println(response)
- assertFalse(response.data.isEmpty, "${T::class.simpleName} parser returned empty data for $url")
+ assertFalse(
+ response.data.isEmpty,
+ "${T::class.simpleName} parser returned empty data for $url"
+ )
response.data.action()
}
@@ -77,5 +83,14 @@ class FbParseTest {
assertNotNull(it.img, "img may not be properly matched")
}
notifs.map(FrostNotif::time).assertDescending("notif time values")
+ if (notifs.none { it.unread }) {
+ println("No messages unread.")
+ }
+ notifs.forEach {
+ assertFalse(
+ it.content.startsWith("unread", ignoreCase = true),
+ "Parse error; notif starts with 'Unread'"
+ )
+ }
}
}