1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.fit.console;
20
21 import static org.junit.jupiter.api.Assertions.assertNull;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23
24 import org.apache.syncope.client.ui.commons.markup.html.form.AjaxTextFieldPanel;
25 import org.apache.wicket.model.IModel;
26 import org.apache.wicket.model.Model;
27 import org.apache.wicket.util.string.Strings;
28 import org.apache.wicket.util.tester.FormTester;
29 import org.apache.wicket.validation.validator.StringValidator;
30 import org.junit.jupiter.api.Test;
31
32 public class AjaxTextFieldITCase extends AbstractConsoleITCase {
33
34 private static final IModel<String> TEXT_MODEL = Model.of((String) null);
35
36 @Test
37 public void emptyInputConvertedToNull() {
38 TestPage<String, AjaxTextFieldPanel> testPage =
39 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
40 new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
41 TESTER.startPage(testPage);
42 FormTester formTester = TESTER.newFormTester(testPage.getForm().getId());
43 formTester.setValue("field:textField", "");
44 formTester.submit();
45 assertNull(testPage.getFieldPanel().getField().getDefaultModelObject());
46 }
47
48 @Test
49 public void valueAttribute() {
50 TestPage<String, AjaxTextFieldPanel> testPage =
51 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
52 new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
53 String text = "sometext";
54 TEXT_MODEL.setObject(text);
55 TESTER.startPage(testPage);
56 assertTrue(TESTER.getLastResponseAsString().contains(Strings.escapeMarkup(text)));
57 }
58
59 @Test
60 public void nullIsNotValidated() {
61 TestPage<String, AjaxTextFieldPanel> testPage =
62 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
63 new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
64 testPage.getFieldPanel().getField().setRequired(false);
65 testPage.getFieldPanel().getField().add(StringValidator.minimumLength(2));
66 TESTER.startPage(testPage);
67 FormTester formTester = TESTER.newFormTester(testPage.getForm().getId());
68 formTester.setValue("field:textField", "");
69 formTester.submit();
70 assertNull(testPage.getFieldPanel().getDefaultModelObject());
71 assertTrue(testPage.getFieldPanel().getField().isValid());
72 }
73
74 @Test
75 public void requiredAttribute() {
76 TestPage<String, AjaxTextFieldPanel> testPage =
77 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
78 new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
79 testPage.getFieldPanel().setOutputMarkupId(true);
80 testPage.getFieldPanel().getField().setRequired(true);
81 TESTER.startPage(testPage);
82 TESTER.assertLabel("form:field:field-label", "field");
83 TESTER.assertVisible("form:field:required");
84 TESTER.assertVisible("form:field:externalAction");
85 }
86 }