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