Search in sources :

Example 66 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class AbstractMapper method extractPageParameters.

/**
 * Extracts {@link PageParameters} from the URL using the given {@link IPageParametersEncoder} .
 *
 * @param request
 * @param segmentsToSkip
 *            how many URL segments should be skipped because they "belong" to the
 *            {@link IRequestMapper}
 * @param encoder
 * @return PageParameters instance
 */
protected PageParameters extractPageParameters(final Request request, int segmentsToSkip, final IPageParametersEncoder encoder) {
    Args.notNull(request, "request");
    Args.notNull(encoder, "encoder");
    // strip the segments and first query parameter from URL
    Url urlCopy = new Url(request.getUrl());
    while ((segmentsToSkip > 0) && (urlCopy.getSegments().isEmpty() == false)) {
        urlCopy.getSegments().remove(0);
        --segmentsToSkip;
    }
    if (!urlCopy.getQueryParameters().isEmpty() && Strings.isEmpty(urlCopy.getQueryParameters().get(0).getValue())) {
        removeMetaParameter(urlCopy);
    }
    return encoder.decodePageParameters(urlCopy);
}
Also used : Url(org.apache.wicket.request.Url)

Example 67 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class UrlPathPageParametersEncoderTest method encodeNamedParameters.

/**
 * Encode named parameters in the segments (so they look like indexed parameters)
 */
@Test
void encodeNamedParameters() {
    PageParameters params = new PageParameters();
    params.add("name1", "value1", INamedParameters.Type.MANUAL);
    params.add("name2", "value2", INamedParameters.Type.MANUAL);
    UrlPathPageParametersEncoder encoder = new UrlPathPageParametersEncoder();
    Url url = encoder.encodePageParameters(params);
    assertEquals("name1/value1/name2/value2", url.toString());
}
Also used : Url(org.apache.wicket.request.Url) Test(org.junit.jupiter.api.Test)

Example 68 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class UrlPathPageParametersEncoder method encodePageParameters.

@Override
public Url encodePageParameters(PageParameters params) {
    Args.notNull(params, "params");
    Args.isTrue(params.getIndexedCount() == 0, "This encoder does not support indexed page parameters. Specified parameters: %s", params);
    Url url = new Url();
    for (PageParameters.NamedPair pair : params.getAllNamed()) {
        url.getSegments().add(pair.getKey());
        url.getSegments().add(pair.getValue());
    }
    return url;
}
Also used : Url(org.apache.wicket.request.Url)

Example 69 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class UrlRendererTest method renderFullUrlWithRelativeArgument.

@Test
void renderFullUrlWithRelativeArgument() {
    Url baseUrl = Url.parse("one/two/three");
    baseUrl.setProtocol("http");
    baseUrl.setHost("www.example.com");
    baseUrl.setPort(8888);
    UrlRenderer renderer = new UrlRenderer(new MockWebRequest(baseUrl));
    // this is needed because MockWebRequest cuts data
    renderer.setBaseUrl(baseUrl);
    String fullUrl = renderer.renderFullUrl(Url.parse("../four"));
    assertEquals("http://www.example.com:8888/one/four", fullUrl);
}
Also used : MockWebRequest(org.apache.wicket.mock.MockWebRequest) UrlRenderer(org.apache.wicket.request.UrlRenderer) Url(org.apache.wicket.request.Url) Test(org.junit.jupiter.api.Test)

Example 70 with Url

use of org.apache.wicket.request.Url in project wicket by apache.

the class UrlRendererTest method rendersRelativeUrl.

@Test
void rendersRelativeUrl() {
    Url contextRelativeUrl = new Url();
    contextRelativeUrl.setProtocol("http");
    contextRelativeUrl.setHost("localshot");
    contextRelativeUrl.setPort(8080);
    contextRelativeUrl.setContextRelative(true);
    contextRelativeUrl.getSegments().addAll(asList("", ""));
    UrlRenderer r1 = new UrlRenderer(new MockWebRequest(contextRelativeUrl));
    assertEquals("../foo", r1.renderRelativeUrl(Url.parse("foo")));
}
Also used : MockWebRequest(org.apache.wicket.mock.MockWebRequest) UrlRenderer(org.apache.wicket.request.UrlRenderer) Url(org.apache.wicket.request.Url) Test(org.junit.jupiter.api.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