Hi,

I'd try with a proper .java/.html files.
Using getMarkupResourceStream() is not always the same as the
default/production way. Maybe the bug is somewhere there.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Thu, Mar 5, 2015 at 12:06 PM, Martin Sturm <[email protected]>
wrote:

> Hello together,
>
> we've just recognized some strange behavior when using <wicket:enclosure>
> tag.
>
> The scenario:
> I have a page that has two labels in it's component hierarchy. In the pages
> markup one label is surrounded with an enclosure-tag, and this label is
> invisible. The second label was not added to the markup. When I now render
> the page I would expect a WicketRuntimeException because of the broken
> markup but the page will be rendered successfully.
>
> I would open a ticket in jira, but I want to ensure that I'm not creating a
> ticket for an already known bug or expected behavior.
>
> I have a small quickstart for that:
>
> @Test(expected = WicketRuntimeException.class) // fails
> public void renderInvisible() throws Exception {
>     final WicketTester tester = new WicketTester();
>     tester.startPage(new TestPage(false));
>     tester.assertRenderedPage(TestPage.class);
>     tester.assertVisible("secondLabel"); // true
> }
>
> @Test(expected = WicketRuntimeException.class) // success
> public void renderVisible() throws Exception {
>     final WicketTester tester = new WicketTester();
>     tester.startPage(new TestPage(true));
>     tester.assertRenderedPage(TestPage.class);
> }
>
> public static class TestPage extends WebPage implements
> IMarkupResourceStreamProvider {
>
>     public TestPage(boolean labelVisible) {
>         add(new Label("label", "invisible").setVisible(labelVisible));
>         add(new Label("secondLabel", "WTF?"));
>     }
>
>     @Override
>     public IResourceStream getMarkupResourceStream(final MarkupContainer
> container, final Class<?> containerClass) {
>         return new StringResourceStream("<html><body><wicket:enclosure
> child=\"label\"><span
> wicket:id=\"label\"></span></wicket:enclosure></body></html>");
>     }
> }
>
> Maybe I could contribute a patch. Do you have any idea where I can find the
> cause of this issue?
>
> I've just found out, that unrenderedComponents list in Page#checkRendering
> is empty but it must not.
>
> cheers,
> Martin
>

Reply via email to