Hi, This is a bug in WicketTester. See http://issues.apache.org/jira/browse/WICKET-861.
There was a similar thread on the user-group recently: http://www.nabble.com/Re%3A-Best-method-of-testing-behaviors.-p16392222.html As I understand it the workaround is to remove the UrlCompressingWebRequestProcessor from your WebApplication, but maybe there is a better solution. Hopes this helps, Lars On Wed, Apr 9, 2008 at 12:37 PM, Tomasz Prus <[EMAIL PROTECTED]> wrote: > I have test and formTester.submit(); throws an error: > > java.lang.NumberFormatException: For input string: "p:form" > at java.lang.NumberFormatException.forInputString(Unknown Source) > at java.lang.Integer.parseInt(Unknown Source) > at java.lang.Integer.parseInt(Unknown Source) > at > > org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressor.getComponentAndInterfaceForUID(UrlCompressor.java:122) > at > > org.apache.wicket.protocol.http.request.urlcompressing.UrlCompressingWebRequestProcessor.resolveListenerInterfaceTarget(UrlCompressingWebRequestProcessor.java:79) > at > > org.apache.wicket.request.AbstractRequestCycleProcessor.resolveRenderedPage(AbstractRequestCycleProcessor.java:461) > at > > org.apache.wicket.protocol.http.WebRequestCycleProcessor.resolve(WebRequestCycleProcessor.java:139) > at org.apache.wicket.RequestCycle.step(RequestCycle.java:1224) > at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1331) > at org.apache.wicket.RequestCycle.request(RequestCycle.java:493) > at > > org.apache.wicket.protocol.http.MockWebApplication.processRequestCycle(MockWebApplication.java:401) > at org.apache.wicket.util.tester.FormTester.submit(FormTester.java:617) > at > > pl.mainseek.forum.wicket.components.AddQuestionPanelTest.testSubmit(AddQuestionPanelTest.java:48) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) > at java.lang.reflect.Method.invoke(Unknown Source) > at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:59) > at > > org.junit.internal.runners.MethodRoadie.runTestMethod(MethodRoadie.java:98) > at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:79) > at > > org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:87) > at > org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:77) > at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:42) > at > > org.junit.internal.runners.JUnit4ClassRunner.invokeTestMethod(JUnit4ClassRunner.java:88) > at > > org.junit.internal.runners.JUnit4ClassRunner.runMethods(JUnit4ClassRunner.java:51) > at > > org.junit.internal.runners.JUnit4ClassRunner$1.run(JUnit4ClassRunner.java:44) > at > org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:27) > at > org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:37) > at > > org.junit.internal.runners.JUnit4ClassRunner.run(JUnit4ClassRunner.java:42) > at > > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) > at > > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) > at > > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196) > > Sources: > > public class AddQuestionPanelTest extends AbstractWebPageContext { > > private static final String FORM_PATH = > DummyPageWithAddQuestionPanel.PANEL_NAME + ":" + > AddQuestionPanel.FORM_NAME; > private FakeForumService forumService; > > @Before public void setUp() throws Exception { > super.setUp(); > forumService = MockFactory.makeMock(FakeForumService.class); > getMockContext().putBean("forumService", forumService); > } > > @Test public void testCreate() { > getTester().startPage(DummyPageWithAddQuestionPanel.class); > > getTester().assertRenderedPage(DummyPageWithAddQuestionPanel.class); > getTester().assertNoErrorMessage(); > > > getTester().assertComponent(DummyPageWithAddQuestionPanel.PANEL_NAME, > Panel.class); > getTester().assertComponent(FORM_PATH, Form.class); > getTester().assertComponent(FORM_PATH + ":" + > AddQuestionPanel.SUBJECT, RequiredTextField.class); > getTester().assertComponent(FORM_PATH + ":" + > AddQuestionPanel.BODY, > TextArea.class); > } > > @Test public void testSubmit() { > getTester().startPage(DummyPageWithAddQuestionPanel.class); > > FormTester formTester = getTester().newFormTester(FORM_PATH); > formTester.setValue(AddQuestionPanel.SUBJECT, "s"); > formTester.setValue(AddQuestionPanel.BODY, "b"); > getTester().debugComponentTrees(); > formTester.submit(); > } > > } > > public class AddQuestionPanel extends Panel { > > public static final String ADD_QUESTION_BUTTON = "addQuestionButton"; > public static final String SUBJECT = "subject"; > public static final String BODY = "body"; > public static final String FORM_NAME = "form"; > > private Message message; > > public AddQuestionPanel(String id, final User user, final > MessageService > forumService) { > super(id); > message = new Message("", "", user); > Form form = new Form(FORM_NAME, new CompoundPropertyModel(message)) > { > @Override protected void onSubmit() { > super.onSubmit(); > System.out.println("Tu byl !!!!!!!!!!!!!!!!!!!"); > message.setCreateDate(new Date()); > forumService.save(message); > } > }; > form.add(new > RequiredTextField(SUBJECT).add(StringValidator.maximumLength(256))); > form.add(new > > TextArea(BODY).setRequired(true).add(StringValidator.maximumLength(5000))); > add(form); > } > } > > AddQuestionPanel.html > > <html> > <body> > <wicket:panel> > <form wicket:id="form"> > <input type="text" wicket:id="subject" > size="2">[Subject]</input><br/> > <textarea style="height: 100px;" > wicket:id="body">[Body]</textarea> > <input type="submit" value="Submit"/> > </form> > </wicket:panel> > </body> > </html> > > > public class DummyPageWithAddQuestionPanel extends WebPage { > > public static final String PANEL_NAME = "p"; > > @SpringBean > private MessageService forumService; > > public DummyPageWithAddQuestionPanel(PageParameters pageParameters) { > super(); > add(new AddQuestionPanel(PANEL_NAME, new User(), forumService)); > } > } > > DummyPageWithAddQuestionPanel.html > > <html> > <body> > <span wicket:id="p">[panel]</span> > </body> > </html> > > Can anyone help me? >
