import net.pterodactylus.sone.web.page.FreenetRequest
import net.pterodactylus.util.template.Template
import net.pterodactylus.util.template.TemplateContext
+import javax.inject.Inject
/**
* A [SoneTemplatePage] that stores information about Sone in the [TemplateContext].
*/
-class AboutPage(template: Template, webInterface: WebInterface,
+class AboutPage @Inject constructor(template: Template, webInterface: WebInterface,
private val pluginVersion: PluginVersion,
private val pluginYear: PluginYear,
private val pluginHomepage: PluginHomepage): SoneTemplatePage("about.html", webInterface, template, "Page.About.Title") {
package net.pterodactylus.sone.web.pages
+import com.google.inject.Guice
import net.pterodactylus.sone.main.SonePlugin.PluginHomepage
import net.pterodactylus.sone.main.SonePlugin.PluginVersion
import net.pterodactylus.sone.main.SonePlugin.PluginYear
+import net.pterodactylus.sone.test.getInstance
+import net.pterodactylus.sone.test.isProvidedByMock
+import net.pterodactylus.sone.web.WebInterface
+import net.pterodactylus.util.template.Template
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
import org.junit.Test
/**
assertThat(templateContext["year"], equalTo<Any>(year))
}
+ @Test
+ fun `about page can be created by dependency injection`() {
+ val injector = Guice.createInjector(
+ Template::class.isProvidedByMock(),
+ WebInterface::class.isProvidedByMock(),
+ PluginVersion::class.isProvidedByMock(),
+ PluginYear::class.isProvidedByMock(),
+ PluginHomepage::class.isProvidedByMock()
+ )
+ assertThat(injector.getInstance<AboutPage>(), notNullValue())
+ }
+
}