summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
Diffstat (limited to 'app/src')
-rw-r--r--app/src/test/java/org/terst/listen/feed/FeedResolverTest.kt18
1 files changed, 18 insertions, 0 deletions
diff --git a/app/src/test/java/org/terst/listen/feed/FeedResolverTest.kt b/app/src/test/java/org/terst/listen/feed/FeedResolverTest.kt
index 55e33b2..26d3857 100644
--- a/app/src/test/java/org/terst/listen/feed/FeedResolverTest.kt
+++ b/app/src/test/java/org/terst/listen/feed/FeedResolverTest.kt
@@ -94,6 +94,24 @@ class FeedResolverTest {
!failed.message.contains("START_DOCUMENT") && !failed.message.contains("InputStreamReader"))
}
+ /**
+ * The page from the bug report, reproduced: NPR declares its feed, but also carries a
+ * second rel="alternate" with no type at all (an android-app:// deep link). Picking that
+ * one would resolve to something unfetchable.
+ */
+ @Test
+ fun `ignores an alternate link with no type`() = runTest {
+ val html = """
+ <!DOCTYPE html><html><head>
+ <link rel='alternate' href='android-app://org.npr.one/nprone/view?aggId=510318' />
+ <link rel="alternate" type="application/rss+xml" title="Up First" href="${url("/rss")}" />
+ </head><body>Up First</body></html>
+ """.trimIndent()
+ server.enqueue(MockResponse().setHeader("Content-Type", "text/html").setBody(html))
+
+ assertEquals(FeedResolver.Resolution.Feed(url("/rss")), resolve(url("/podcasts/510318/up-first")))
+ }
+
@Test
fun `a 404 reports the status rather than a parse error`() = runTest {
server.enqueue(MockResponse().setResponseCode(404))