示例#1
0
 @Test
 public void checkCheckbox_shouldReturnTrueInModel() {
   startEditorPanel(attribBoolean);
   FormTester formTester = tester.newFormTester(editor.getId() + ":form");
   formTester.setValue(buildFormComponentId(attribBoolean.getId()), true);
   formTester.submit();
   assertThat(editor.getValues().get(attribBoolean.getId()), is("true"));
 }
示例#2
0
 @Test
 public void submittingFormWithChanges_shouldReflectChangesInValues() throws Exception {
   startEditorPanel(attrib);
   FormTester formTester = tester.newFormTester(editor.getId() + ":form");
   tester.debugComponentTrees();
   formTester.setValue(buildFormComponentId(attrib.getId()), "new_value_a");
   formTester.submit();
   assertThat(editor.getValues().get(attrib.getId()), is("new_value_a"));
 }
示例#3
0
 private void testWithValidator(AttributeDefinition.Builder attributeDefinition) {
   AttributeDefinition a = attributeDefinition.validator(new FailValidator()).build();
   startEditorPanel(a);
   FormTester formTester = tester.newFormTester(editor.getId() + ":form");
   String buildFormComponentId = buildFormComponentId(a.getId());
   formTester.setValue(buildFormComponentId, "1");
   tester.executeAjaxEvent(editor.getId() + ":form:submitButton", "onclick");
   tester.assertErrorMessages(new String[] {"Validation Error"});
 }
示例#4
0
 @Test
 public void selectLabelInDropDownChoice_shouldSetRightValueInModel() {
   startEditorPanel(attribOption);
   FormTester formTester = tester.newFormTester(editor.getId() + ":form");
   formTester.select(buildFormComponentId(attribOption.getId()), 1);
   formTester.submit();
   assertThat(
       editor.getValues().get(attribOption.getId()),
       is(attribOption.getOptions().get(1).getValue()));
 }
示例#5
0
 @SuppressWarnings({"unchecked"})
 @Test
 public void addFailFieldValidator_ShouldNotCallFormValidator() {
   AttributeDefinition attrib1 =
       newAttribute("attrib1", "name1", "desc1").validator(new FailValidator()).build();
   FormValidator mock = Mockito.mock(FormValidator.class);
   Mockito.when(mock.fieldsToValidate()).thenReturn(Arrays.asList(new String[] {"attrib1"}));
   startEditorPanel(mock, attrib1);
   FormTester formTester = tester.newFormTester(editor.getId() + ":form");
   String component1Id = buildFormComponentId(attrib1.getId());
   formTester.setValue(component1Id, "a");
   tester.executeAjaxEvent(editor.getId() + ":form:submitButton", "onclick");
   Mockito.verify(mock, Mockito.never()).validate(Mockito.anyMap());
 }
示例#6
0
  @Test
  public void testValidateOnlyAfterSubmit() throws Exception {
    startEditorPanel(numberAttrib);
    FormTester formTester = tester.newFormTester(editor.getId() + ":form");
    String buildFormComponentId = buildFormComponentId(numberAttrib.getId());
    formTester.setValue(buildFormComponentId, "A");
    tester.executeAjaxEvent(editor.getId() + ":form:submitButton", "onclick");
    // tester.

  }
示例#7
0
  @Test
  public void putLetterIntoNumberField_shouldResultInError() throws Exception {

    startEditorPanel(numberAttrib);
    FormTester formTester = tester.newFormTester(editor.getId() + ":form");
    String buildFormComponentId = buildFormComponentId(numberAttrib.getId());
    formTester.setValue(buildFormComponentId, "A");
    tester.executeAjaxEvent(editor.getId() + ":form:submitButton", "onclick");
    tester.assertErrorMessages(new String[] {"Number formating Error"});
  }
示例#8
0
 private void startEditorPanel(
     final FormValidator validator, final AttributeDefinition... attributes) {
   final HashMap<String, String> values = new HashMap<String, String>();
   for (AttributeDefinition a : attributes) {
     values.put(a.getId(), a.getDefaultValue().getString(null));
   }
   defaultValues = new HashMap<String, String>(values);
   tester = new WicketTester();
   editor =
       (ServiceEditor)
           tester.startPanel(
               new TestPanelSource() {
                 @Override
                 public Panel getTestPanel(String panelId) {
                   return new ServiceEditor(
                       panelId, Arrays.asList(attributes), values, validator) {
                     @Override
                     public void onSubmit() {}
                   };
                 }
               });
 }
示例#9
0
  @Test
  public void addFormValidator_ShouldExtractCorrectFormValues() {
    AttributeDefinition attrib1 = newAttribute("attrib1", "name1", "desc1").build();
    AttributeDefinition attrib2 = newAttribute("attrib2", "name2", "desc2").build();
    FormValidator validator =
        new FormValidator() {
          @Override
          public MultipleAttributeValidationResult validate(Map<String, String> attributes) {
            ArrayList<String> arrayList = new ArrayList<String>(attributes.keySet());
            Collections.sort(arrayList);
            Assert.assertEquals("attrib1", arrayList.get(0));
            Assert.assertEquals("attrib2", arrayList.get(1));
            Assert.assertEquals("a", attributes.get(arrayList.get(0)));
            Assert.assertEquals("b", attributes.get(arrayList.get(1)));

            Map<String, String> errorMessages = new HashMap<String, String>();
            for (String key : arrayList) {
              errorMessages.put(key, "Validation Error");
            }
            return new MultipleAttributeValidationResultImpl(false, errorMessages);
          }

          @Override
          public List<String> fieldsToValidate() {
            return Arrays.asList(new String[] {"attrib1", "attrib2"});
          }
        };
    startEditorPanel(validator, attrib1, attrib2);
    FormTester formTester = tester.newFormTester(editor.getId() + ":form");
    String component1Id = buildFormComponentId(attrib1.getId());
    String component2Id = buildFormComponentId(attrib2.getId());
    formTester.setValue(component1Id, "a");
    formTester.setValue(component2Id, "b");
    tester.executeAjaxEvent(editor.getId() + ":form:submitButton", "onclick");
    tester.assertErrorMessages(new String[] {"Validation Error", "Validation Error"});
  }
示例#10
0
 private AttributeDefinition.Builder newAttribute(String id, String name, String desc) {
   return AttributeDefinition.builder(new PassThroughStringLocalizer())
       .id(id)
       .name(name)
       .description(desc);
 }