1 package net.pterodactylus.sone.web.pages
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
15 * Unit test for [AboutPage].
17 class AboutPageTest : WebPageTest({ template, webInterface -> AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
20 private const val version = "0.1.2"
21 private const val year = 1234
22 private const val homepage = "home://page"
26 fun `page returns correct path`() {
27 assertThat(page.path, equalTo("about.html"))
31 fun `page does not require login`() {
32 assertThat(page.requiresLogin(), equalTo(false))
36 fun `page sets correct version in template context`() {
37 page.processTemplate(freenetRequest, templateContext)
38 assertThat(templateContext["version"], equalTo<Any>(version))
42 fun `page sets correct homepage in template context`() {
43 page.processTemplate(freenetRequest, templateContext)
44 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
48 fun `page sets correct year in template context`() {
49 page.processTemplate(freenetRequest, templateContext)
50 assertThat(templateContext["year"], equalTo<Any>(year))
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()
60 assertThat(injector.getInstance<AboutPage>(), notNullValue())