1 package net.pterodactylus.sone.web.pages
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
17 * Unit test for [AboutPage].
19 class AboutPageTest : WebPageTest({ template, webInterface -> AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
22 private const val version = "0.1.2"
23 private const val year = 1234
24 private const val homepage = "home://page"
28 fun `page returns correct path`() {
29 assertThat(page.path, equalTo("about.html"))
33 fun `page does not require login`() {
34 assertThat(page.requiresLogin(), equalTo(false))
38 fun `page sets correct version in template context`() {
39 page.processTemplate(freenetRequest, templateContext)
40 assertThat(templateContext["version"], equalTo<Any>(version))
44 fun `page sets correct homepage in template context`() {
45 page.processTemplate(freenetRequest, templateContext)
46 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
50 fun `page sets correct year in template context`() {
51 page.processTemplate(freenetRequest, templateContext)
52 assertThat(templateContext["year"], equalTo<Any>(year))
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()
64 assertThat(injector.getInstance<AboutPage>(), notNullValue())