import net.pterodactylus.sone.data.Sone
import net.pterodactylus.sone.freenet.wot.Identity
import net.pterodactylus.sone.freenet.wot.OwnIdentity
+import net.pterodactylus.sone.test.getInstance
import net.pterodactylus.sone.test.mock
import net.pterodactylus.sone.test.thenReturnMock
import net.pterodactylus.sone.test.whenever
-import net.pterodactylus.sone.web.pages.WebPageTest
-import net.pterodactylus.sone.web.pages.LoginPage
+import net.pterodactylus.sone.web.baseInjector
import net.pterodactylus.util.web.Method.POST
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.contains
import org.hamcrest.Matchers.containsInAnyOrder
import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
import org.hamcrest.Matchers.nullValue
import org.junit.Before
import org.junit.Test
/**
* Unit test for [LoginPage].
*/
-class LoginPageTest : WebPageTest() {
-
- private val page = LoginPage(template, webInterface)
+class LoginPageTest: WebPageTest(::LoginPage) {
private val sones = listOf(createSone("Sone", "Test"), createSone("Test"), createSone("Sone"))
- override fun getPage() = page
-
private fun createSone(vararg contexts: String) = mock<Sone>().apply {
whenever(id).thenReturn(hashCode().toString())
val identity = mock<OwnIdentity>().apply {
@Test
fun `page is not enabled if full access required and request is not full access`() {
- core.preferences.isRequireFullAccess = true
+ core.preferences.newRequireFullAccess = true
assertThat(page.isEnabled(toadletContext), equalTo(false))
}
@Test
fun `page is enabled if full access required and request is full access and there is no current sone`() {
- core.preferences.isRequireFullAccess = true
+ core.preferences.newRequireFullAccess = true
unsetCurrentSone()
whenever(toadletContext.isAllowedFullAccess).thenReturn(true)
assertThat(page.isEnabled(toadletContext), equalTo(true))
@Test
fun `page is not enabled if full access required and request is full access but there is a current sone`() {
- core.preferences.isRequireFullAccess = true
+ core.preferences.newRequireFullAccess = true
whenever(toadletContext.isAllowedFullAccess).thenReturn(true)
assertThat(page.isEnabled(toadletContext), equalTo(false))
}
+ @Test
+ fun `page can be created by dependency injection`() {
+ assertThat(baseInjector.getInstance<LoginPage>(), notNullValue())
+ }
+
}