+ assertThat(renderedPosts, containsInAnyOrder(posts[1], extraPost, posts[0]))
+ }
+ }
+
+ private fun Post.withTime(time: Long) = apply { whenever(this.time).thenReturn(time) }
+
+ @Test
+ @Suppress("UNCHECKED_CAST")
+ fun `posts are paginated properly`() {
+ webInterface.core.preferences.newPostsPerPage = 2
+ val posts = listOf(mock<Post>().withTime(2000), mock<Post>().withTime(3000), mock<Post>().withTime(1000))
+ whenever(webInterface.getNewPosts(currentSone)).thenReturn(posts)
+ verifyNoRedirect {
+ assertThat((templateContext["pagination"] as Pagination<Post>).items, contains(posts[1], posts[0]))
+ }
+ }
+
+ @Test
+ @Suppress("UNCHECKED_CAST")
+ fun `posts are paginated properly on second page`() {
+ webInterface.core.preferences.newPostsPerPage = 2
+ addHttpRequestParameter("page", "1")
+ val posts = listOf(mock<Post>().withTime(2000), mock<Post>().withTime(3000), mock<Post>().withTime(1000))
+ whenever(webInterface.getNewPosts(currentSone)).thenReturn(posts)
+ verifyNoRedirect {
+ assertThat((templateContext["pagination"] as Pagination<Post>).items, contains(posts[2]))