1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.main.*
4 import net.pterodactylus.sone.test.getInstance
5 import net.pterodactylus.sone.test.isProvidedByMock
6 import net.pterodactylus.sone.web.baseInjector
7 import org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
9 import org.hamcrest.Matchers.notNullValue
13 * Unit test for [AboutPage].
15 class AboutPageTest : WebPageTest({ template, webInterface -> AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
18 private const val version = "0.1.2"
19 private const val year = 1234
20 private const val homepage = "home://page"
24 fun `page returns correct path`() {
25 assertThat(page.path, equalTo("about.html"))
29 fun `page does not require login`() {
30 assertThat(page.requiresLogin(), equalTo(false))
34 fun `page sets correct version in template context`() {
35 page.processTemplate(freenetRequest, templateContext)
36 assertThat(templateContext["version"], equalTo<Any>(version))
40 fun `page sets correct homepage in template context`() {
41 page.processTemplate(freenetRequest, templateContext)
42 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
46 fun `page sets correct year in template context`() {
47 page.processTemplate(freenetRequest, templateContext)
48 assertThat(templateContext["year"], equalTo<Any>(year))
52 fun `about page can be created by dependency injection`() {
53 val injector = baseInjector.createChildInjector(
54 PluginVersion::class.isProvidedByMock(),
55 PluginYear::class.isProvidedByMock(),
56 PluginHomepage::class.isProvidedByMock()
58 assertThat(injector.getInstance<AboutPage>(), notNullValue())