🔥 Remove templates from FreenetTemplatePages
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / AboutPageTest.kt
1 package net.pterodactylus.sone.web.pages
2
3 import net.pterodactylus.sone.main.*
4 import net.pterodactylus.sone.test.getInstance
5 import net.pterodactylus.sone.test.isProvidedByMock
6 import net.pterodactylus.sone.web.baseInjector
7 import net.pterodactylus.sone.web.page.*
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.equalTo
10 import org.hamcrest.Matchers.notNullValue
11 import org.junit.Test
12
13 /**
14  * Unit test for [AboutPage].
15  */
16 class AboutPageTest : WebPageTest({ webInterface, loaders, templateRenderer -> AboutPage(webInterface, loaders, templateRenderer, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
17
18         companion object {
19                 private const val version = "0.1.2"
20                 private const val year = 1234
21                 private const val homepage = "home://page"
22         }
23
24         @Test
25         fun `page returns correct path`() {
26                 assertThat(page.path, equalTo("about.html"))
27         }
28
29         @Test
30         fun `page does not require login`() {
31                 assertThat(page.requiresLogin(), equalTo(false))
32         }
33
34         @Test
35         fun `page sets correct version in template context`() {
36                 page.processTemplate(freenetRequest, templateContext)
37                 assertThat(templateContext["version"], equalTo<Any>(version))
38         }
39
40         @Test
41         fun `page sets correct homepage in template context`() {
42                 page.processTemplate(freenetRequest, templateContext)
43                 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
44         }
45
46         @Test
47         fun `page sets correct year in template context`() {
48                 page.processTemplate(freenetRequest, templateContext)
49                 assertThat(templateContext["year"], equalTo<Any>(year))
50         }
51
52         @Test
53         fun `about page can be created by dependency injection`() {
54                 val injector = baseInjector.createChildInjector(
55                                 PluginVersion::class.isProvidedByMock(),
56                                 PluginYear::class.isProvidedByMock(),
57                                 PluginHomepage::class.isProvidedByMock()
58                 )
59                 assertThat(injector.getInstance<AboutPage>(), notNullValue())
60         }
61
62         @Test
63         fun `page is annotated with correct menuname`() {
64             assertThat(page.menuName, equalTo("About"))
65         }
66
67         @Test
68         fun `page is annotated with correct template path`() {
69             assertThat(page.templatePath, equalTo("/templates/about.html"))
70         }
71
72 }