✨ Annotate KnownSonesPage with MenuName
[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 org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
9 import org.hamcrest.Matchers.notNullValue
10 import org.junit.Test
11
12 /**
13  * Unit test for [AboutPage].
14  */
15 class AboutPageTest : WebPageTest({ template, webInterface -> AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
16
17         companion object {
18                 private const val version = "0.1.2"
19                 private const val year = 1234
20                 private const val homepage = "home://page"
21         }
22
23         @Test
24         fun `page returns correct path`() {
25                 assertThat(page.path, equalTo("about.html"))
26         }
27
28         @Test
29         fun `page does not require login`() {
30                 assertThat(page.requiresLogin(), equalTo(false))
31         }
32
33         @Test
34         fun `page sets correct version in template context`() {
35                 page.processTemplate(freenetRequest, templateContext)
36                 assertThat(templateContext["version"], equalTo<Any>(version))
37         }
38
39         @Test
40         fun `page sets correct homepage in template context`() {
41                 page.processTemplate(freenetRequest, templateContext)
42                 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
43         }
44
45         @Test
46         fun `page sets correct year in template context`() {
47                 page.processTemplate(freenetRequest, templateContext)
48                 assertThat(templateContext["year"], equalTo<Any>(year))
49         }
50
51         @Test
52         fun `about page can be created by dependency injection`() {
53                 val injector = baseInjector.createChildInjector(
54                                 PluginVersion::class.isProvidedByMock(),
55                                 PluginYear::class.isProvidedByMock(),
56                                 PluginHomepage::class.isProvidedByMock()
57                 )
58                 assertThat(injector.getInstance<AboutPage>(), notNullValue())
59         }
60
61 }