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 net.pterodactylus.sone.web.page.*
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.equalTo
10 import org.hamcrest.Matchers.notNullValue
14 * Unit test for [AboutPage].
16 class AboutPageTest : WebPageTest({ template, webInterface -> AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
19 private const val version = "0.1.2"
20 private const val year = 1234
21 private const val homepage = "home://page"
25 fun `page returns correct path`() {
26 assertThat(page.path, equalTo("about.html"))
30 fun `page does not require login`() {
31 assertThat(page.requiresLogin(), equalTo(false))
35 fun `page sets correct version in template context`() {
36 page.processTemplate(freenetRequest, templateContext)
37 assertThat(templateContext["version"], equalTo<Any>(version))
41 fun `page sets correct homepage in template context`() {
42 page.processTemplate(freenetRequest, templateContext)
43 assertThat(templateContext["homepage"], equalTo<Any>(homepage))
47 fun `page sets correct year in template context`() {
48 page.processTemplate(freenetRequest, templateContext)
49 assertThat(templateContext["year"], equalTo<Any>(year))
53 fun `about page can be created by dependency injection`() {
54 val injector = baseInjector.createChildInjector(
55 PluginVersion::class.isProvidedByMock(),
56 PluginYear::class.isProvidedByMock(),
57 PluginHomepage::class.isProvidedByMock()
59 assertThat(injector.getInstance<AboutPage>(), notNullValue())
63 fun `page is annotated with correct menuname`() {
64 assertThat(page.menuName, equalTo("About"))