use of org.apache.wicket.request.Url in project wicket by apache.
the class WebPageRendererTest method testRedirectToBufferNoPageToRender.
/**
* Tests that when during page render another request handler got scheduled. The handler will
* want to overwrite the response, so we need to let it
*/
@Test
public void testRedirectToBufferNoPageToRender() {
final AtomicBoolean stored = new AtomicBoolean(false);
TestPageRenderer renderer = new TestPageRenderer(handler) {
@Override
protected BufferedWebResponse renderPage(Url targetUrl, RequestCycle requestCycle) {
return null;
}
@Override
protected void storeBufferedResponse(Url url, BufferedWebResponse response) {
stored.set(true);
}
};
renderer.redirectToBuffer = true;
// needed for earlier checks
when(urlRenderer.getBaseUrl()).thenReturn(Url.parse("a"));
when(requestCycle.mapUrlFor(eq(handler))).thenReturn(Url.parse("b"));
renderer.respond(requestCycle);
verify(response, never()).write(any(byte[].class));
verify(response, never()).write(any(CharSequence.class));
verify(response, never()).sendRedirect(anyString());
Assert.assertFalse(stored.get());
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class WebPageRendererTest method testRedirectToBufferStatelessPageAndRedirectIsEsabled.
/**
* Tests that when the page is stateless and redirect for stateless pages is enabled then there
* should be a redirect
*/
@Test
public void testRedirectToBufferStatelessPageAndRedirectIsEsabled() {
final AtomicBoolean stored = new AtomicBoolean(false);
PageRenderer renderer = new TestPageRenderer(handler) {
@Override
protected boolean isRedirectToBuffer() {
return true;
}
@Override
protected void storeBufferedResponse(Url url, BufferedWebResponse response) {
stored.set(true);
}
};
when(page.isPageStateless()).thenReturn(true);
// needed for earlier checks
when(urlRenderer.getBaseUrl()).thenReturn(Url.parse("a"));
when(requestCycle.mapUrlFor(eq(handler))).thenReturn(Url.parse("b"));
renderer.respond(requestCycle);
verify(response, never()).write(any(byte[].class));
verify(response).sendRedirect(isNull());
Assert.assertTrue(stored.get());
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class WebPageRendererTest method testRedirectToBufferStatefulPageAndSameUrls.
/**
* Tests that when the page is stateful and the urls are the same then the response is written
* directly
*/
@Test
public void testRedirectToBufferStatefulPageAndSameUrls() {
final AtomicBoolean stored = new AtomicBoolean(false);
PageRenderer renderer = new TestPageRenderer(handler) {
@Override
protected boolean isRedirectToBuffer() {
return true;
}
@Override
protected void storeBufferedResponse(Url url, BufferedWebResponse response) {
stored.set(true);
}
};
when(provider.isNewPageInstance()).thenReturn(true);
Url sameUrl = Url.parse("same");
// needed for earlier checks
when(urlRenderer.getBaseUrl()).thenReturn(sameUrl);
when(requestCycle.mapUrlFor(eq(handler))).thenReturn(sameUrl);
renderer.respond(requestCycle);
verify(response).write(any(byte[].class));
verify(response, never()).sendRedirect(anyString());
Assert.assertFalse(stored.get());
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class WebPageRendererTest method testRedirectToBufferStatelessPageAndRedirectIsDisabled.
/**
* Tests that when the page is stateless and redirect for stateless pages is disabled then the
* page should be written without redirect
*/
@Test
public void testRedirectToBufferStatelessPageAndRedirectIsDisabled() {
final AtomicBoolean stored = new AtomicBoolean(false);
TestPageRenderer renderer = new TestPageRenderer(handler) {
@Override
protected boolean enableRedirectForStatelessPage() {
return false;
}
@Override
protected void storeBufferedResponse(Url url, BufferedWebResponse response) {
stored.set(true);
}
};
renderer.redirectToBuffer = true;
renderer.pageStateless = true;
// needed for earlier checks
when(urlRenderer.getBaseUrl()).thenReturn(Url.parse("a"));
when(requestCycle.mapUrlFor(eq(handler))).thenReturn(Url.parse("b"));
renderer.respond(requestCycle);
verify(response).write(any(byte[].class));
verify(response, never()).sendRedirect(anyString());
Assert.assertFalse(stored.get());
}
use of org.apache.wicket.request.Url in project wicket by apache.
the class UrlRendererTest method renderFullUrlAsRelativeToBaseUrlWithoutSchemeHostnameAndPort.
@Test
public void renderFullUrlAsRelativeToBaseUrlWithoutSchemeHostnameAndPort() {
Url baseUrl = Url.parse("/contextPath/filterPath/a/b/c/d");
Url encodedFullUrl = Url.parse("http://host:8080/contextPath/filterPath/a/b;jsessionid=123456");
UrlRenderer renderer = new UrlRenderer(new MockWebRequest(baseUrl));
String encodedRelativeUrl = renderer.renderRelativeUrl(encodedFullUrl);
assertEquals("../../b;jsessionid=123456", encodedRelativeUrl);
}
Aggregations