X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FSearchPageTest.kt;h=b0aee649456bbcd8a9d7660fac15675096a34918;hp=a77ffcce5cef5097f947925831c9ba029c3adbbc;hb=42d2da43d7a3dd0645e17c4db39252faa20a92d7;hpb=e7319b53b914961d59b8fce999da75adfab54009 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/SearchPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/SearchPageTest.kt index a77ffcc..b0aee64 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/pages/SearchPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/SearchPageTest.kt @@ -8,13 +8,16 @@ import net.pterodactylus.sone.data.Post import net.pterodactylus.sone.data.PostReply import net.pterodactylus.sone.data.Profile import net.pterodactylus.sone.data.Sone -import net.pterodactylus.sone.test.asOptional +import net.pterodactylus.sone.test.getInstance import net.pterodactylus.sone.test.isOnPage import net.pterodactylus.sone.test.mock import net.pterodactylus.sone.test.whenever +import net.pterodactylus.sone.utils.asOptional +import net.pterodactylus.sone.web.baseInjector import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.contains import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue import org.junit.Test import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger @@ -22,26 +25,25 @@ import java.util.concurrent.atomic.AtomicInteger /** * Unit test for [SearchPage]. */ -class SearchPageTest : WebPageTest() { +class SearchPageTest: WebPageTest({ template, webInterface -> SearchPage(template, webInterface, ticker) }) { - private val ticker = mock() - private val page = SearchPage(template, webInterface, ticker) - - override fun getPage() = page + companion object { + val ticker = mock() + } @Test fun `page returns correct path`() { - assertThat(page.path, equalTo("search.html")) + assertThat(page.path, equalTo("search.html")) } @Test fun `page does not require login`() { - assertThat(page.requiresLogin(), equalTo(false)) + assertThat(page.requiresLogin(), equalTo(false)) } @Test fun `page returns correct title`() { - addTranslation("Page.Search.Title", "search page title") + addTranslation("Page.Search.Title", "search page title") assertThat(page.getPageTitle(freenetRequest), equalTo("search page title")) } @@ -64,9 +66,9 @@ class SearchPageTest : WebPageTest() { @Test fun `searching for sone link redirects to view sone page`() { - addSone("sone-id", mock()) - addHttpRequestParameter("query", "sone://sone-id") - verifyRedirect("viewSone.html?sone=sone-id") + addSone("Sone-ID", mock()) + addHttpRequestParameter("query", "sone://Sone-ID") + verifyRedirect("viewSone.html?sone=Sone-ID") } @Test @@ -78,9 +80,9 @@ class SearchPageTest : WebPageTest() { @Test fun `searching for a post link redirects to post page`() { - addPost("post-id", mock()) - addHttpRequestParameter("query", "post://post-id") - verifyRedirect("viewPost.html?post=post-id") + addPost("Post-id", mock()) + addHttpRequestParameter("query", "post://Post-id") + verifyRedirect("viewPost.html?post=Post-id") } @Test @@ -93,8 +95,8 @@ class SearchPageTest : WebPageTest() { @Test fun `searching for a reply link redirects to the post page`() { val postReply = mock().apply { whenever(postId).thenReturn("post-id") } - addPostReply("reply-id", postReply) - addHttpRequestParameter("query", "reply://reply-id") + addPostReply("Reply-id", postReply) + addHttpRequestParameter("query", "reply://Reply-id") verifyRedirect("viewPost.html?post=post-id") } @@ -334,7 +336,7 @@ class SearchPageTest : WebPageTest() { val post = createPost("with-match", "text") val callCounter = AtomicInteger() whenever(post.text).thenAnswer { callCounter.incrementAndGet(); "text" } - val sone = createSoneWithPost(post) + val sone = createSoneWithPost(post) addSone("sone", sone) addHttpRequestParameter("query", "text") verifyNoRedirect { @@ -350,13 +352,13 @@ class SearchPageTest : WebPageTest() { val post = createPost("with-match", "text") val callCounter = AtomicInteger() whenever(post.text).thenAnswer { callCounter.incrementAndGet(); "text" } - val sone = createSoneWithPost(post) + val sone = createSoneWithPost(post) addSone("sone", sone) addHttpRequestParameter("query", "text") verifyNoRedirect { assertThat(this["postHits"], contains(post)) } - whenever(ticker.read()).thenReturn(TimeUnit.MINUTES.toNanos(5) + 1 ) + whenever(ticker.read()).thenReturn(TimeUnit.MINUTES.toNanos(5) + 1) verifyNoRedirect { assertThat(callCounter.get(), equalTo(2)) } @@ -365,4 +367,9 @@ class SearchPageTest : WebPageTest() { @Suppress("UNCHECKED_CAST") private operator fun get(key: String): T? = templateContext[key] as? T + @Test + fun `page can be created by dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + }