WICKET-4585 WicketTester.assertErrorMessages passes even if the message isn't visible on the page WICKET-5128 Allow for Testing Component relative Feedback-Messages in Wicket-Tester
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/0c412482 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/0c412482 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/0c412482 Branch: refs/heads/master Commit: 0c412482dfba45570fe7b7b0116383e59b3245f6 Parents: ca1c4eb Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Tue Jun 25 15:15:30 2013 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Tue Jun 25 15:15:30 2013 +0300 ---------------------------------------------------------------------- .../ExactLevelFeedbackMessageFilter.java | 36 ++++++ .../apache/wicket/feedback/FeedbackMessage.java | 2 +- .../wicket/util/tester/BaseWicketTester.java | 55 ++++++--- .../apache/wicket/util/tester/WicketTester.java | 119 +++++++++++++++---- .../wicket/util/tester/WicketTesterHelper.java | 13 +- .../wicket/util/tester/WicketTesterTest.java | 25 ++++ .../ComponentFeedbackResourceTestingPage.html | 7 ++ .../ComponentFeedbackResourceTestingPage.java | 30 +++++ .../apps_8/TestResourceProvidingLabel.java | 41 +++++++ .../TestResourceProvidingLabel.properties | 3 + 10 files changed, 279 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/main/java/org/apache/wicket/feedback/ExactLevelFeedbackMessageFilter.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/feedback/ExactLevelFeedbackMessageFilter.java b/wicket-core/src/main/java/org/apache/wicket/feedback/ExactLevelFeedbackMessageFilter.java new file mode 100644 index 0000000..5b6fcd6 --- /dev/null +++ b/wicket-core/src/main/java/org/apache/wicket/feedback/ExactLevelFeedbackMessageFilter.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.feedback; + +/** + * Filter for accepting feedback messages of a certain error level. + */ +public class ExactLevelFeedbackMessageFilter implements IFeedbackMessageFilter +{ + private final int level; + + public ExactLevelFeedbackMessageFilter(int level) + { + this.level = level; + } + + @Override + public boolean accept(FeedbackMessage message) + { + return message.getLevel() == level; + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java b/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java index 9520f6f..fbee466 100644 --- a/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java +++ b/wicket-core/src/main/java/org/apache/wicket/feedback/FeedbackMessage.java @@ -59,7 +59,7 @@ public class FeedbackMessage implements IDetachable public static final int FATAL = 500; /** Levels as strings for debugging. */ - private static final Map<Integer, String> levelStrings = new HashMap<Integer, String>(); + private static final Map<Integer, String> levelStrings = new HashMap<>(); static { http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java index 8880e29..3e4e178 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java @@ -30,6 +30,7 @@ import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Set; import java.util.UUID; @@ -68,6 +69,7 @@ import org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler; import org.apache.wicket.core.request.handler.PageAndComponentProvider; import org.apache.wicket.core.request.handler.PageProvider; import org.apache.wicket.core.request.handler.RenderPageRequestHandler; +import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter; import org.apache.wicket.feedback.FeedbackCollector; import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.feedback.IFeedbackMessageFilter; @@ -2012,31 +2014,43 @@ public class BaseWicketTester * Asserts no error-level feedback messages. * * @return a <code>Result</code> + * @see #hasNoFeedbackMessage(int) */ public Result hasNoErrorMessage() { - List<Serializable> messages = getMessages(FeedbackMessage.ERROR); - return isTrue( - "expect no error message, but contains\n" + WicketTesterHelper.asLined(messages), - messages.isEmpty()); + return hasNoFeedbackMessage(FeedbackMessage.ERROR); } /** * Asserts no info-level feedback messages. * * @return a <code>Result</code> + * @see #hasNoFeedbackMessage(int) */ public Result hasNoInfoMessage() { - List<Serializable> messages = getMessages(FeedbackMessage.INFO); + return hasNoFeedbackMessage(FeedbackMessage.INFO); + } + + /** + * Asserts there are no feedback messages with the given level. + * + * @param level + * the level of the feedback message + * @return a <code>Result</code> + */ + public Result hasNoFeedbackMessage(int level) + { + List<Serializable> messages = getMessages(level); return isTrue( - "expect no info message, but contains\n" + WicketTesterHelper.asLined(messages), - messages.isEmpty()); + String.format("expected no %s message, but contains\n%s", + new FeedbackMessage(null, "", level).getLevelAsString().toLowerCase(Locale.ENGLISH), WicketTesterHelper.asLined(messages)), + messages.isEmpty()); } /** * Retrieves <code>FeedbackMessages</code>. - * + * * @param level * level of feedback message, for example: * <code>FeedbackMessage.DEBUG or FeedbackMessage.INFO.. etc</code> @@ -2045,18 +2059,10 @@ public class BaseWicketTester */ public List<Serializable> getMessages(final int level) { - List<FeedbackMessage> allMessages = new FeedbackCollector(getLastRenderedPage()).collect(new IFeedbackMessageFilter() - { - - @Override - public boolean accept(FeedbackMessage message) - { - return message.getLevel() == level; - } - }); + List<FeedbackMessage> messages = getFeedbackMessages(new ExactLevelFeedbackMessageFilter(level)); List<Serializable> actualMessages = Generics.newArrayList(); - for (FeedbackMessage message : allMessages) + for (FeedbackMessage message : messages) { actualMessages.add(message.getMessage()); } @@ -2064,6 +2070,19 @@ public class BaseWicketTester } /** + * Retrieves <code>FeedbackMessages</code>. + * + * @param filter + * A filter that decides which messages to collect + * @return <code>List</code> of messages (as <code>String</code>s) + * @see FeedbackMessage + */ + public List<FeedbackMessage> getFeedbackMessages(final IFeedbackMessageFilter filter) + { + return new FeedbackCollector(getLastRenderedPage()).collect(filter); + } + + /** * Dumps the source of last rendered <code>Page</code>. */ public void dumpPage() http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java index a8b6032..af16454 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTester.java @@ -17,8 +17,9 @@ package org.apache.wicket.util.tester; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; import java.io.Serializable; @@ -33,17 +34,22 @@ import org.apache.wicket.Component; import org.apache.wicket.MarkupContainer; import org.apache.wicket.Page; import org.apache.wicket.behavior.AbstractAjaxBehavior; +import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter; import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.feedback.IFeedback; +import org.apache.wicket.feedback.IFeedbackMessageFilter; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; +import org.apache.wicket.markup.html.form.ValidationErrorFeedback; import org.apache.wicket.markup.html.link.BookmarkablePageLink; import org.apache.wicket.markup.html.list.ListView; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.IModel; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.lang.Args; import org.apache.wicket.util.lang.Objects; +import org.hamcrest.core.IsCollectionContaining; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -329,15 +335,9 @@ public class WicketTester extends BaseWicketTester * @param expectedErrorMessages * expected error messages */ - public void assertErrorMessages(String... expectedErrorMessages) + public void assertErrorMessages(Serializable... expectedErrorMessages) { - List<Serializable> actualMessages = getMessages(FeedbackMessage.ERROR); - List<Serializable> msgs = new ArrayList<Serializable>(); - for (Serializable actualMessage : actualMessages) - { - msgs.add(actualMessage.toString()); - } - WicketTesterHelper.assertEquals(Arrays.asList(expectedErrorMessages), msgs); + assertFeedbackMessages(new ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR), expectedErrorMessages); } /** @@ -346,12 +346,77 @@ public class WicketTester extends BaseWicketTester * @param expectedInfoMessages * expected info messages */ - public void assertInfoMessages(String... expectedInfoMessages) + public void assertInfoMessages(Serializable... expectedInfoMessages) + { + assertFeedbackMessages(new ExactLevelFeedbackMessageFilter(FeedbackMessage.INFO), expectedInfoMessages); + } + + /** + * Assert there are feedback messages accepted by the provided filter. + * + * @param filter + * the filter that will decide which messages to check + * @param expectedMessages + * expected feedback messages + */ + public void assertFeedbackMessages(IFeedbackMessageFilter filter, Serializable... expectedMessages) { - List<Serializable> actualMessages = getMessages(FeedbackMessage.INFO); - WicketTesterHelper.assertEquals(Arrays.asList(expectedInfoMessages), actualMessages); + List<FeedbackMessage> feedbackMessages = getFeedbackMessages(filter); + List<Serializable> actualMessages = getActualFeedbackMessages(feedbackMessages); + WicketTesterHelper.assertEquals(Arrays.asList(expectedMessages), actualMessages); } + /** + * Asserts that there is a feedback message provided by a given component + * + * @param component + * the component that provided the expected feedback message. Optional. + * @param key + * the resource key for the feedback message. Mandatory. + * @param model + * the model used for interpolating the feedback message. Optional. + * @param filter + * the filter that decides in which messages to look in. E.g. with a specific + * level, rendered or not, etc. + */ + public void assertComponentFeedbackMessage(Component component, String key, IModel<?> model, IFeedbackMessageFilter filter) + { + Args.notNull(key, "key"); + + String expectedMessage = getApplication().getResourceSettings().getLocalizer().getString(key, component, model); + + List<FeedbackMessage> feedbackMessages = getFeedbackMessages(filter); + List<Serializable> actualMessages = getActualFeedbackMessages(feedbackMessages); + + assertThat(String.format("Feedback message with key '%s' cannot be found", key), + actualMessages, IsCollectionContaining.hasItem(expectedMessage)); + } + + /** + * Extracts the actual messages from the passed feedback messages. + * Specially handles ValidationErrorFeedback messages by extracting their String message + * + * @param feedbackMessages + * the feedback messages + * @return the FeedbackMessages' messages + */ + private List<Serializable> getActualFeedbackMessages(List<FeedbackMessage> feedbackMessages) + { + List<Serializable> actualMessages = new ArrayList<>(); + for (FeedbackMessage feedbackMessage : feedbackMessages) + { + Serializable message = feedbackMessage.getMessage(); + if (message instanceof ValidationErrorFeedback) + { + actualMessages.add(message.toString()); + } + else + { + actualMessages.add(message); + } + } + return actualMessages; + } /** * Assert that a particular feedback panel is rendering certain messages. @@ -365,27 +430,27 @@ public class WicketTester extends BaseWicketTester * @param messages * messages expected to be rendered */ - public void assertFeedback(String path, String... messages) + public void assertFeedback(String path, Serializable... messages) { final FeedbackPanel fbp = (FeedbackPanel)getComponentFromLastRenderedPage(path); final IModel<List<FeedbackMessage>> model = fbp.getFeedbackMessagesModel(); final List<FeedbackMessage> renderedMessages = model.getObject(); if (renderedMessages == null) { - fail("feedback panel at path [" + path + "] returned null messages"); + fail(String.format("feedback panel at path [%s] returned null messages", path)); } if (messages.length != renderedMessages.size()) { - fail("you expected " + messages.length + " messages for the feedback panel [" + path + - "], but there were actually " + renderedMessages.size()); + fail(String.format("you expected '%d' messages for the feedback panel [%s], but there were actually '%d'", + messages.length, path, renderedMessages.size())); } for (int i = 0; i < messages.length && i < renderedMessages.size(); i++) { - final String expected = messages[i]; + final Serializable expected = messages[i]; boolean found = false; for (FeedbackMessage actual : renderedMessages) { - if (Objects.equal(expected, actual.getMessage().toString())) + if (Objects.equal(expected, actual.getMessage())) { found = true; break; @@ -457,10 +522,7 @@ public class WicketTester extends BaseWicketTester */ public void assertNoErrorMessage() { - List<Serializable> messages = getMessages(FeedbackMessage.ERROR); - assertTrue( - "expect no error message, but contains\n" + WicketTesterHelper.asLined(messages), - messages.isEmpty()); + assertNoFeedbackMessage(FeedbackMessage.ERROR); } /** @@ -468,9 +530,16 @@ public class WicketTester extends BaseWicketTester */ public void assertNoInfoMessage() { - List<Serializable> messages = getMessages(FeedbackMessage.INFO); - assertTrue("expect no info message, but contains\n" + WicketTesterHelper.asLined(messages), - messages.isEmpty()); + assertNoFeedbackMessage(FeedbackMessage.INFO); + } + + /** + * Asserts there are no feedback messages with a certain level. + */ + public void assertNoFeedbackMessage(int level) + { + Result result = hasNoFeedbackMessage(level); + assertFalse(result.getMessage(), result.wasFailed()); } /** http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java index 668d574..660ac7c 100644 --- a/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java +++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/WicketTesterHelper.java @@ -70,7 +70,7 @@ public class WicketTesterHelper */ public static List<WicketTesterHelper.ComponentData> getComponentData(final Page page) { - final List<ComponentData> data = new ArrayList<ComponentData>(); + final List<ComponentData> data = new ArrayList<>(); if (page != null) { @@ -158,7 +158,7 @@ public class WicketTesterHelper lined.append(objectString); if (iter.hasNext()) { - lined.append("\n"); + lined.append('\n'); } } return lined.toString(); @@ -194,7 +194,7 @@ public class WicketTesterHelper public static List<AjaxEventBehavior> findAjaxEventBehaviors(Component component, String event) { Args.notEmpty(event, "event"); - List<AjaxEventBehavior> behaviors = new ArrayList<AjaxEventBehavior>(); + List<AjaxEventBehavior> behaviors = new ArrayList<>(); String[] eventNames = Strings.split(event, ' '); for (String eventName : eventNames) { @@ -233,12 +233,9 @@ public class WicketTesterHelper */ public static Behavior findBehavior(Component component, Class<? extends Behavior> behaviorClass) { - for (Behavior behavior : component.getBehaviors()) + for (Behavior behavior : component.getBehaviors(behaviorClass)) { - if (behaviorClass.isAssignableFrom(behavior.getClass())) - { - return behavior; - } + return behavior; } return null; } http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java index 3a10018..cc722c3 100644 --- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java @@ -37,6 +37,8 @@ import org.apache.wicket.authorization.IAuthorizationStrategy; import org.apache.wicket.core.request.handler.BookmarkablePageRequestHandler; import org.apache.wicket.core.request.handler.IPageProvider; import org.apache.wicket.core.request.handler.PageProvider; +import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter; +import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; @@ -70,6 +72,7 @@ import org.apache.wicket.util.tester.apps_1.SuccessPage; import org.apache.wicket.util.tester.apps_1.ViewBook; import org.apache.wicket.util.tester.apps_6.LinkPage; import org.apache.wicket.util.tester.apps_6.ResultPage; +import org.apache.wicket.util.tester.apps_8.ComponentFeedbackResourceTestingPage; import org.junit.Before; import org.junit.Test; @@ -1216,4 +1219,26 @@ public class WicketTesterTest extends WicketTestCase tester.submitForm(page.form); assertEquals(null, page.text); } + + /** + * https://issues.apache.org/jira/browse/WICKET-5128 + */ + @Test + public void renderComponentRelativeErrorMessage() + { + tester.startPage(new ComponentFeedbackResourceTestingPage()); + Component label = tester.getComponentFromLastRenderedPage("label"); + tester.assertComponentFeedbackMessage(label, "error.msg", null, new ExactLevelFeedbackMessageFilter(FeedbackMessage.ERROR)); + } + + /** + * https://issues.apache.org/jira/browse/WICKET-5128 + */ + @Test + public void renderComponentRelativeInfoMessage() + { + tester.startPage(new ComponentFeedbackResourceTestingPage()); + Component label = tester.getComponentFromLastRenderedPage("label"); + tester.assertComponentFeedbackMessage(label, "info.msg", null, new ExactLevelFeedbackMessageFilter(FeedbackMessage.INFO)); + } } http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.html ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.html b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.html new file mode 100644 index 0000000..8cfda9f --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.html @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org"> +<body> + <div wicket:id="label"/> +</body> +</html> http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.java new file mode 100644 index 0000000..fec8efc --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/ComponentFeedbackResourceTestingPage.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.util.tester.apps_8; + +import org.apache.wicket.markup.html.WebPage; + +/** + * A simple Page that contains a Label that renders some Feedback Messages + */ +public class ComponentFeedbackResourceTestingPage extends WebPage +{ + public ComponentFeedbackResourceTestingPage() + { + add(new TestResourceProvidingLabel("label")); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.java new file mode 100644 index 0000000..3858cb8 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.util.tester.apps_8; + +import org.apache.wicket.markup.html.basic.Label; + +/** + * A simple Label that renders some Feedback Messages. + * @author Martin Dilger + */ +public class TestResourceProvidingLabel extends Label +{ + public TestResourceProvidingLabel(String id) + { + super(id,"A simple Test Label"); + } + + @Override + protected void onBeforeRender() + { + super.onBeforeRender(); + + //provide some default messages before the component is rendered. + error(this.getString("error.msg")); + info(this.getString("info.msg")); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/wicket/blob/0c412482/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.properties ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.properties b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.properties new file mode 100644 index 0000000..9da0adc --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_8/TestResourceProvidingLabel.properties @@ -0,0 +1,3 @@ +#some feedback messages that can be tested for +error.msg=sorry, that is an error +info.msg=good, that is just for info \ No newline at end of file
