Search in sources :

Example 16 with Url

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());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) BufferedWebResponse(org.apache.wicket.protocol.http.BufferedWebResponse) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) Url(org.apache.wicket.request.Url) Test(org.junit.Test)

Example 17 with Url

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());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) BufferedWebResponse(org.apache.wicket.protocol.http.BufferedWebResponse) Url(org.apache.wicket.request.Url) Test(org.junit.Test)

Example 18 with Url

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());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) BufferedWebResponse(org.apache.wicket.protocol.http.BufferedWebResponse) Url(org.apache.wicket.request.Url) Test(org.junit.Test)

Example 19 with Url

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());
}
Also used : AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) BufferedWebResponse(org.apache.wicket.protocol.http.BufferedWebResponse) Url(org.apache.wicket.request.Url) Test(org.junit.Test)

Example 20 with Url

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);
}
Also used : MockWebRequest(org.apache.wicket.mock.MockWebRequest) UrlRenderer(org.apache.wicket.request.UrlRenderer) Url(org.apache.wicket.request.Url) Test(org.junit.Test)

Aggregations

Url (org.apache.wicket.request.Url)361 Test (org.junit.jupiter.api.Test)220 IRequestHandler (org.apache.wicket.request.IRequestHandler)145 PageParameters (org.apache.wicket.request.mapper.parameter.PageParameters)58 MockWebRequest (org.apache.wicket.mock.MockWebRequest)57 UrlRenderer (org.apache.wicket.request.UrlRenderer)57 RenderPageRequestHandler (org.apache.wicket.core.request.handler.RenderPageRequestHandler)51 IRequestablePage (org.apache.wicket.request.component.IRequestablePage)50 Test (org.junit.Test)46 PageProvider (org.apache.wicket.core.request.handler.PageProvider)40 ResourceReferenceRequestHandler (org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler)35 IPageProvider (org.apache.wicket.core.request.handler.IPageProvider)34 ResourceUrl (org.apache.wicket.request.resource.caching.ResourceUrl)33 BookmarkableListenerRequestHandler (org.apache.wicket.core.request.handler.BookmarkableListenerRequestHandler)27 ListenerRequestHandler (org.apache.wicket.core.request.handler.ListenerRequestHandler)26 Request (org.apache.wicket.request.Request)25 MockPage (org.apache.wicket.MockPage)22 BookmarkablePageRequestHandler (org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler)18 BufferedWebResponse (org.apache.wicket.protocol.http.BufferedWebResponse)16 PageAndComponentProvider (org.apache.wicket.core.request.handler.PageAndComponentProvider)15