From b67c1c8e0d06fc9ae57335fab88180cebfc20414 Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sat, 28 Sep 2019 23:39:43 -0700 Subject: Remove accessibility text in parser --- .../pitchedapps/frost/facebook/parsers/NotifParser.kt | 1 + .../pitchedapps/frost/facebook/parsers/FbParseTest.kt | 19 +++++++++++++++++-- 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 f9db0a8f..d53b1e07 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(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 FrostParser.test(action: T.() -> Unit = {}) = parse(COOKIE).test(url, action) - private inline fun ParseResponse?.test(url: String, action: T.() -> Unit = {}) { + private inline fun ParseResponse?.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'" + ) + } } } -- cgit v1.2.3