package net.pterodactylus.sone.web.page
import freenet.clients.http.*
-import freenet.clients.http.SessionManager.*
import freenet.support.api.*
-import net.pterodactylus.sone.freenet.*
import net.pterodactylus.util.web.*
import java.net.*
-import java.util.UUID.*
open class FreenetRequest(uri: URI, method: Method,
val httpRequest: HTTPRequest,
- val toadletContext: ToadletContext,
- val sessionManager: SessionManager
+ val toadletContext: ToadletContext
) : Request(uri, method)
override fun path() = pathPrefix + page.path
override fun handleMethodGET(uri: URI, httpRequest: HTTPRequest, toadletContext: ToadletContext) =
- handleRequest(FreenetRequest(uri, Method.GET, httpRequest, toadletContext, sessionManager))
+ handleRequest(FreenetRequest(uri, Method.GET, httpRequest, toadletContext))
fun handleMethodPOST(uri: URI?, httpRequest: HTTPRequest?, toadletContext: ToadletContext?) =
- handleRequest(FreenetRequest(uri!!, Method.POST, httpRequest!!, toadletContext!!, sessionManager))
+ handleRequest(FreenetRequest(uri!!, Method.POST, httpRequest!!, toadletContext!!))
private fun handleRequest(pageRequest: FreenetRequest) {
pageRequest.toadletContext.bucketFactory.makeBucket(-1).use { pageBucket ->
import net.pterodactylus.util.web.*
import java.net.*
-class SoneRequest(uri: URI, method: Method, httpRequest: HTTPRequest, toadletContext: ToadletContext, sessionManager: SessionManager,
+class SoneRequest(uri: URI, method: Method, httpRequest: HTTPRequest, toadletContext: ToadletContext,
val core: Core,
val webInterface: WebInterface
-) : FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager)
+) : FreenetRequest(uri, method, httpRequest, toadletContext)
fun FreenetRequest.toSoneRequest(core: Core, webInterface: WebInterface) =
- SoneRequest(uri, method, httpRequest, toadletContext, sessionManager, core, webInterface)
+ SoneRequest(uri, method, httpRequest, toadletContext, core, webInterface)
private val String.urlEncode: String get() = URLEncoder.encode(this, "UTF-8")
override fun isEnabled(toadletContext: ToadletContext) =
- isEnabled(SoneRequest(toadletContext.uri, Method.GET, HTTPRequestImpl(toadletContext.uri, "GET"), toadletContext, webInterface.sessionManager, core, webInterface))
+ isEnabled(SoneRequest(toadletContext.uri, Method.GET, HTTPRequestImpl(toadletContext.uri, "GET"), toadletContext, core, webInterface))
open fun isEnabled(soneRequest: SoneRequest) = when {
requiresLogin && getCurrentSone(soneRequest.toadletContext) == null -> false
HTTPRequest httpRequest = mock(HTTPRequest.class);
ToadletContext toadletContext = mock(ToadletContext.class);
SessionManager sessionManager = mock(SessionManager.class);
- FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager);
+ FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext);
OutputStream outputStream = new ByteArrayOutputStream();
Response response = new Response(outputStream);
page.handleRequest(request, response);
HTTPRequest httpRequest = mock(HTTPRequest.class);
ToadletContext toadletContext = mock(ToadletContext.class);
SessionManager sessionManager = mock(SessionManager.class);
- FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager);
+ FreenetRequest request = new FreenetRequest(uri, method, httpRequest, toadletContext);
OutputStream outputStream = new ByteArrayOutputStream();
Response response = new Response(outputStream);
staticPage.handleRequest(request, response);
private val httpRequest = mock(HTTPRequest::class.java)
private val toadletContext = mock(ToadletContext::class.java)
private val sessionManager = mock<SessionManager>()
- private val request = FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager)
+ private val request = FreenetRequest(uri, method, httpRequest, toadletContext)
@Test
fun `uri is retained correctly`() {
private val method = Method.GET
private val httpRequest = Mockito.mock(HTTPRequest::class.java)
private val toadletContext = Mockito.mock(ToadletContext::class.java)
- private val sessionManager = mock<SessionManager>()
private val core = mock<Core>()
private val webInterface = mock<WebInterface>()
- private val soneRequest = SoneRequest(uri, method, httpRequest, toadletContext, sessionManager, core, webInterface)
+ private val soneRequest = SoneRequest(uri, method, httpRequest, toadletContext, core, webInterface)
@Test
fun `freenet request properties are retained correctly`() {
assertThat(soneRequest.method, equalTo(method))
assertThat(soneRequest.httpRequest, equalTo(httpRequest))
assertThat(soneRequest.toadletContext, equalTo(toadletContext))
- assertThat(soneRequest.sessionManager, equalTo(sessionManager))
}
@Test
@Test
fun `freenet request is wrapped correctly`() {
- val freenetRequest = FreenetRequest(uri, method, httpRequest, toadletContext, sessionManager)
+ val freenetRequest = FreenetRequest(uri, method, httpRequest, toadletContext)
val wrappedSoneRequest = freenetRequest.toSoneRequest(core, webInterface)
assertThat(wrappedSoneRequest.uri, equalTo(uri))
assertThat(wrappedSoneRequest.method, equalTo(method))
assertThat(wrappedSoneRequest.httpRequest, equalTo(httpRequest))
assertThat(wrappedSoneRequest.toadletContext, equalTo(toadletContext))
- assertThat(wrappedSoneRequest.sessionManager, equalTo(sessionManager))
assertThat(wrappedSoneRequest.core, sameInstance(core))
assertThat(wrappedSoneRequest.webInterface, sameInstance(webInterface))
}
val core = webInterface.core
val eventBus = mock<EventBus>()
val preferences = Preferences(eventBus)
- val sessionManager = mock<SessionManager>()
open val page by lazy { pageSupplier(webInterface, loaders, templateRenderer) }
val freenetRequest = mock<FreenetRequest>()
init {
- whenever(freenetRequest.sessionManager).thenReturn(sessionManager)
whenever(freenetRequest.uri).thenReturn(mock())
}
}
private fun setupWebInterface() {
- whenever(webInterface.sessionManager).thenReturn(sessionManager)
whenever(webInterface.getCurrentSoneCreatingSession(eq(toadletContext))).thenReturn(currentSone)
whenever(webInterface.getCurrentSone(eq(toadletContext), anyBoolean())).thenReturn(currentSone)
whenever(webInterface.getCurrentSoneWithoutCreatingSession(eq(toadletContext))).thenReturn(currentSone)