import net.pterodactylus.sone.test.whenever
import net.pterodactylus.sone.utils.asOptional
import net.pterodactylus.sone.web.baseInjector
+import net.pterodactylus.sone.web.page.*
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.contains
import org.hamcrest.Matchers.equalTo
/**
* Unit test for [SearchPage].
*/
-class SearchPageTest: WebPageTest({ template, webInterface -> SearchPage(template, webInterface, ticker) }) {
+class SearchPageTest: WebPageTest({ webInterface, loaders, templateRenderer -> SearchPage(webInterface, loaders, templateRenderer, ticker) }) {
companion object {
val ticker = mock<Ticker>()
@Test
fun `page returns correct title`() {
addTranslation("Page.Search.Title", "search page title")
- assertThat(page.getPageTitle(freenetRequest), equalTo("search page title"))
+ assertThat(page.getPageTitle(soneRequest), equalTo("search page title"))
}
@Test
@Test
fun `sone hits are paginated correctly`() {
- core.preferences.postsPerPage = 2
+ core.preferences.newPostsPerPage = 2
val sones = listOf(createSone("1Sone"), createSone("Other1"), createSone("22Sone"), createSone("333Sone"), createSone("Other2"))
.onEach { addSone(it.id, it) }
addHttpRequestParameter("query", "sone")
@Test
fun `sone hits page 2 is shown correctly`() {
- core.preferences.postsPerPage = 2
+ core.preferences.newPostsPerPage = 2
val sones = listOf(createSone("1Sone"), createSone("Other1"), createSone("22Sone"), createSone("333Sone"), createSone("Other2"))
.onEach { addSone(it.id, it) }
addHttpRequestParameter("query", "sone")
@Test
fun `post hits are paginated correctly`() {
- core.preferences.postsPerPage = 2
+ core.preferences.newPostsPerPage = 2
val sones = listOf(createSoneWithPost("match1", "1Sone"), createSoneWithPost("no-match1", "Other1"), createSoneWithPost("match2", "22Sone"), createSoneWithPost("match3", "333Sone"), createSoneWithPost("no-match2", "Other2"))
addHttpRequestParameter("query", "sone")
verifyNoRedirect {
@Test
fun `post hits page 2 is shown correctly`() {
- core.preferences.postsPerPage = 2
+ core.preferences.newPostsPerPage = 2
val sones = listOf(createSoneWithPost("match1", "1Sone"), createSoneWithPost("no-match1", "Other1"), createSoneWithPost("match2", "22Sone"), createSoneWithPost("match3", "333Sone"), createSoneWithPost("no-match2", "Other2"))
addHttpRequestParameter("query", "sone")
addHttpRequestParameter("postPage", "1")
assertThat(baseInjector.getInstance<SearchPage>(), notNullValue())
}
+ @Test
+ fun `page is annotated with correct template path`() {
+ assertThat(page.templatePath, equalTo("/templates/search.html"))
+ }
+
}