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?
>

Reply via email to