> I'm trying to test onChange even on one dropdown so that the value is
> changed in the other dropdown.When I submit the form I'm not able to
> get the values for any of the fields.
> I have seen people getting the same error but there is no solution so
> far.
> Thanks for helping in advance.
>
>
> @Test
> public void testDummyPage() throws Exception
> {
> TestPage testPage = new TestPage("id");
> wicketTester.startPage(testPage);
>
> // assert rendered field components
> wicketTester.assertComponent("form:txtName", TextField.class);
> wicketTester.assertComponent("form:department",
> DropDownChoice.class);
> wicketTester.assertComponent("form:employee",
> DropDownChoice.class);
>
> FormTester formTester1 = wicketTester.newFormTester("form");
> formTester1.setValue("txtName", "amit");
> formTester1.select("department", 0);
>
>
> wicketTester.executeAjaxEvent("form:department", "onchange");
> wicketTester.assertComponentOnAjaxResponse("form:employee");
>
> formTester1.select("employee", 1);
>
> formTester1.submit("submit");
>
>
>
> Assert.assertEquals(formTester1.getTextComponentValue("txtName"),
> "amit");
>
> Assert.assertNotNull(wicketTester.getTagByWicketId("department").getVa
> lue());
>
> Assert.assertNotNull(wicketTester.getTagByWicketId("employee").getValu
> e());
>
> DropDownChoice dropDownChoice = (DropDownChoice)
> wicketTester.getComponentFromLastRenderedPage(
> "form:department");
>
> System.out.println(" department " +
> formTester1.getForm().get("department"));
> Assert.assertEquals((dropDownChoice.getModelObjectAsString()),
> "HR");
> }
>
>
>
> **************
> public class TestPage extends WebPage
> {
>
> private String txtName;
> private String department;
> private String deptName;
> private String deptId;
> private String employee;
> private DropDownChoice ddc1;
>
> public TestPage(String id)
> {
> final Form addressForm = new Form("form", new
> CompoundPropertyModel(this));
> addressForm.setOutputMarkupId(true);
> add(addressForm);
>
> /*Address TextField*/
> TextField addressTxtField = new TextField("txtName",
> new PropertyModel(this, "txtName"), String.class);
> addressTxtField.add(StringValidator.maximumLength(15));
> addressForm.add(addressTxtField);
>
> List<Dept> depList = new ArrayList();
> Dept dept = new Dept();
> dept.setDeptId("1");
> dept.setDeptName("HR");
> depList.add(dept);
> Dept dept1 = new Dept();
> dept1.setDeptName("AC");
> dept1.setDeptId("2");
> Dept dept2 = new Dept();
> dept2.setDeptName("AD");
> dept2.setDeptId("3");
> depList.add(dept1);
> depList.add(dept2);
> ChoiceRenderer choiceRendererState = new
> ChoiceRenderer("deptName",
> "deptId");
> //addressForm.add(new DropDownChoice("department", new
> PropertyModel(this, "department"), depList,
> //choiceRendererState));
> final DropDownChoice ddc = new DropDownChoice("department",
> new PropertyModel(this, "department"), Arrays.<String>asList(
> "HR", "IS", "FINANCE/ACCOUNTING"));
> addressForm.add(ddc.setOutputMarkupId(true));
>
> ddc1 = new DropDownChoice("employee", new PropertyModel(this,
> "employee"), Arrays.<String>asList(
> "EMP1", "EMP2", "EMP3"));
> addressForm.add(ddc1.setOutputMarkupId(true));
>
> ddc.add(new AjaxFormComponentUpdatingBehavior("onchange")
> {
>
> @Override
> protected void onUpdate(AjaxRequestTarget target)
> {
> if (ddc.getModelObject() != null)
> {
>
>
> target.addComponent(ddc1.setChoices(Arrays.<String>asList("EMP1",
> "EMP2")));
> }
> }
> });
>
>
>
> addressForm.add(new Button("submit")
> {
>
> protected void onSubmit(AjaxRequestTarget target, Form
> form)
> {
> }
> });
>
> }
>
> public String getTxtName()
> {
> return txtName;
> }
>
> public void setTxtName(String txtName)
> {
> this.txtName = txtName;
> }
>
> public String getDepartment()
> {
> return department;
> }
>
> public void setDepartment(String department)
> {
> this.department = department;
> }
>
> public String getDeptName()
> {
> return deptName;
> }
>
> public void setDeptName(String deptName)
> {
> this.deptName = deptName;
> }
>
> public String getDeptId()
> {
> return deptId;
> }
>
> public void setDeptId(String deptId)
> {
> this.deptId = deptId;
> }
>
> public String getEmployee()
> {
> return employee;
> }
>
> public void setEmployee(String employee)
> {
> this.employee = employee;
> }
> }
>
> ***********
> TestPage.html
>
> <html>
> <head>
> <title></title>
> <meta http-equiv="Content-Type" content="text/html;
> charset=UTF-8">
> </head>
> <body>
> <form wicket:id="form">
> <input type="text" value="shalini" wicket:id="txtName">
> <select wicket:id="department" />
> <select wicket:id="employee" />
> <input type="submit" value="submit" wicket:id="submit">
> </form>
> </body>
> </html>
>
>
>