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