1 package net.pterodactylus.sone.web
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.util.template.Template
10 import org.hamcrest.MatcherAssert.assertThat
11 import org.hamcrest.Matchers.equalTo
12 import org.hamcrest.Matchers.notNullValue
13 import org.hamcrest.Matchers.sameInstance
17 * Unit test for [AboutPage].
19 class AboutPageTest : WebPageTest() {
21 private val version = "0.1.2"
22 private val year = 1234
23 private val homepage = "home://page"
24 private val page = AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage))
25 private val injector = Guice.createInjector(
26 Template::class.isProvidedByMock(),
27 WebInterface::class.isProvidedByMock(),
28 PluginVersion::class.isProvidedByMock(),
29 PluginYear::class.isProvidedByMock(),
30 PluginHomepage::class.isProvidedByMock()
34 fun `page returns correct path`() {
35 assertThat(page.path, equalTo("about.html"))
39 fun `page does not require login`() {
40 assertThat(page.requiresLogin(), equalTo(false))
44 fun `page sets correct version in template context`() {
45 page.processTemplate(freenetRequest, templateContext)
46 assertThat(templateContext["version"], equalTo<Any>(version))
50 fun `page sets correct homepage in template context`() {
51 page.processTemplate(freenetRequest, templateContext)
52 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
56 fun `page sets correct year in template context`() {
57 page.processTemplate(freenetRequest, templateContext)
58 assertThat(templateContext["year"], equalTo<Any>(year))
62 fun `page can be created by guice`() {
63 assertThat(injector.getInstance<AboutPage>(), notNullValue())
67 fun `page is created as singleton`() {
68 val firstInstance = injector.getInstance<AboutPage>()
69 val secondInstance = injector.getInstance<AboutPage>()
70 assertThat(firstInstance, sameInstance(secondInstance))