1 package net.pterodactylus.sone.web.page
3 import freenet.client.*
4 import freenet.clients.http.*
5 import net.pterodactylus.sone.test.*
6 import net.pterodactylus.util.web.*
7 import org.hamcrest.MatcherAssert.*
8 import org.hamcrest.Matchers.*
11 private val highLevelSimpleClient = mock<HighLevelSimpleClient>()
12 private val sessionManager = mock<SessionManager>()
13 private const val pathPrefix = "/some/prefix/"
15 class PageToadletFactoryTest {
17 private val pageToadletFactory = PageToadletFactory(highLevelSimpleClient, sessionManager, pathPrefix)
20 fun `page toadlet without menu name is created without menu name`() {
21 val page = mock<Page<FreenetRequest>>()
22 val pageToadlet = pageToadletFactory.createPageToadlet(page)
23 assertThat(pageToadlet.menuName, nullValue())
27 fun `page toadlet with menu name is created with menu name`() {
28 val page = mock<Page<FreenetRequest>>()
29 val pageToadlet = pageToadletFactory.createPageToadlet(page, "testName")
30 assertThat(pageToadlet.menuName, equalTo("testName"))
34 fun `path prefix is handed down correctly`() {
35 val page = mock<Page<FreenetRequest>>().apply {
36 whenever(path).thenReturn("path")
38 val pageToadlet = pageToadletFactory.createPageToadlet(page)
39 assertThat(pageToadlet.path(), equalTo("/some/prefix/path"))
43 fun `menu name is added from annotation when no menu name is given`() {
44 val page = TestPageWithMenuName()
45 val pageToadlet = pageToadletFactory.createPageToadlet(page)
46 assertThat(pageToadlet.menuName, equalTo("testName"))
50 fun `menu name from annotation is ignored when menu name is given`() {
51 val page = TestPageWithMenuName()
52 val pageToadlet = pageToadletFactory.createPageToadlet(page, "foo")
53 assertThat(pageToadlet.menuName, equalTo("foo"))
59 private class TestPageWithMenuName : Page<FreenetRequest> {
61 override fun getPath() = ""
62 override fun isPrefixPage() = false
63 override fun handleRequest(request: FreenetRequest, response: Response) = response