diff options
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/test/java/org/terst/listen/feed/FeedResolverTest.kt | 18 |
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)) |
