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?