X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterfaceModuleTest.kt;h=c931aaf6468b7aeb076a6ef2b579383d91c24ad3;hb=8e5d39243ef21fa42158b361dcee7361c5e9e4a2;hp=fc8964a56aa0107c5d742d5afaf84b56130f4054;hpb=b5fed0f19bfb57f96574b65f0180a8ebb81c043b;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/WebInterfaceModuleTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/WebInterfaceModuleTest.kt index fc8964a..c931aaf 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/WebInterfaceModuleTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/WebInterfaceModuleTest.kt @@ -1,7 +1,7 @@ package net.pterodactylus.sone.web import com.google.inject.Guice.* -import freenet.l10n.* +import freenet.client.* import freenet.support.api.* import net.pterodactylus.sone.core.* import net.pterodactylus.sone.data.* @@ -12,23 +12,32 @@ import net.pterodactylus.sone.main.* import net.pterodactylus.sone.template.* import net.pterodactylus.sone.test.* import net.pterodactylus.sone.text.* +import net.pterodactylus.sone.web.notification.* +import net.pterodactylus.sone.web.page.* +import net.pterodactylus.util.notify.* import net.pterodactylus.util.template.* +import net.pterodactylus.util.web.* import org.hamcrest.MatcherAssert.* import org.hamcrest.Matchers.* -import org.junit.* +import java.util.* +import kotlin.test.* class WebInterfaceModuleTest { private val webInterfaceModule = WebInterfaceModule() - private val l10n = mock() private val loaders = mock() + private val translation = object : Translation { + override val currentLocale = Locale.ENGLISH + override fun translate(key: String) = if (key == "View.Sone.Text.UnknownDate") "unknown" else key + } private val additionalModules = arrayOf( Core::class.isProvidedByMock(), SoneProvider::class.isProvidedByMock(), - BaseL10n::class.isProvidedBy(l10n), + Translation::class.isProvidedBy(translation), SoneTextParser::class.isProvidedByMock(), ElementLoader::class.isProvidedByMock(), - Loaders::class.isProvidedBy(loaders) + Loaders::class.isProvidedBy(loaders), + HighLevelSimpleClient::class.isProvidedByMock() ) private val injector = createInjector(webInterfaceModule, *additionalModules)!! private val templateContext by lazy { injector.getInstance().createTemplateContext()!! } @@ -184,7 +193,6 @@ class WebInterfaceModuleTest { @Test fun `unknown date filter uses correct l10n key`() { - whenever(l10n.getString("View.Sone.Text.UnknownDate")).thenReturn("unknown") assertThat(getFilter("unknown")!!.format(null, 0L, emptyMap()), equalTo("unknown")) } @@ -194,6 +202,11 @@ class WebInterfaceModuleTest { } @Test + fun `template context contains duration format filter`() { + verifyFilter("duration") + } + + @Test fun `template context contains collection sort filter`() { verifyFilter("sort") } @@ -228,6 +241,11 @@ class WebInterfaceModuleTest { verifyFilter("paginate") } + @Test + fun `template context histogram renderer`() { + verifyFilter("render-histogram") + } + private inline fun verifyFilter(name: String) { assertThat(getFilter(name), instanceOf(F::class.java)) } @@ -236,9 +254,7 @@ class WebInterfaceModuleTest { @Test fun `template context factory is created as singleton`() { - val factory1 = injector.getInstance() - val factory2 = injector.getInstance() - assertThat(factory1, sameInstance(factory2)) + injector.verifySingletonInstance() } @Test @@ -257,4 +273,15 @@ class WebInterfaceModuleTest { assertThat(templateContext.getTemplate("testTemplate"), sameInstance(template)) } + @Test + fun `page toadlet factory is created with correct prefix`() { + val page = mock>() + assertThat(injector.getInstance().createPageToadlet(page).path(), startsWith("/Sone/")) + } + + @Test + fun `notification manager is created as singleton`() { + injector.verifySingletonInstance() + } + }