Search in sources :

Example 1 with StaticListClassFieldEditPane

use of org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane in project xwiki-platform by xwiki.

the class StaticListClassFieldTest method testItemsEditor.

/**
 * Tests the ability to add, edit and remove list items.
 */
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testItemsEditor() {
    // Add a new static list field.
    StaticListClassFieldEditPane staticListField = new StaticListClassFieldEditPane(editor.addField("Static List").getName());
    // Open the configuration panel and edit the list items.
    staticListField.openConfigPanel();
    StaticListItemsEditor itemsEditor = staticListField.getItemsEditor();
    // Remove the second option.
    itemsEditor.remove("value2");
    // Add two new items.
    itemsEditor.add("foo", "bar");
    // Leave the value empty for the second item: it should fall back on the label.
    itemsEditor.add("", "XWiki");
    // Change the label of the last added item.
    itemsEditor.setLabel("XWiki", "XWiki Enterprise");
    // Move the last item before the first.
    itemsEditor.moveBefore("XWiki", "value1");
    Assert.assertEquals(4, itemsEditor.size());
    // Enable multiple selection and change display type to 'select' to check the value of the size property.
    staticListField.getDisplayTypeSelect().selectByVisibleText("select");
    staticListField.getMultipleSelectionCheckBox().click();
    Assert.assertEquals("4", staticListField.getSizeInput().getAttribute("value"));
    // Apply configuration changes and assert the result.
    staticListField.closeConfigPanel();
    // The initial second item was removed.
    Assert.assertNull(staticListField.getItemByValue("value2"));
    // We should have a new item with value "XWiki".
    staticListField.getItemByValue("XWiki").click();
    // Assert the order of the items.
    staticListField.getItemByValue("value1").click();
    Assert.assertEquals(Arrays.asList("XWiki", "value1"), staticListField.getDefaultSelectedValues());
}
Also used : StaticListClassFieldEditPane(org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane) StaticListItemsEditor(org.xwiki.appwithinminutes.test.po.StaticListItemsEditor) IgnoreBrowsers(org.xwiki.test.ui.browser.IgnoreBrowsers) Test(org.junit.Test)

Example 2 with StaticListClassFieldEditPane

use of org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane in project xwiki-platform by xwiki.

the class StaticListClassFieldTest method testMultipleSelect.

/**
 * Tests that multiple select state is synchronized with the rest of the meta properties.
 */
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testMultipleSelect() {
    // Add a new static list field.
    StaticListClassFieldEditPane staticListField = new StaticListClassFieldEditPane(editor.addField("Static List").getName());
    // Open the configuration panel and play with the multiple selection option.
    staticListField.openConfigPanel();
    // Radio display type should disable multiple selection.
    staticListField.getMultipleSelectionCheckBox().click();
    Assert.assertTrue(staticListField.getMultipleSelectionCheckBox().isSelected());
    staticListField.getDisplayTypeSelect().selectByVisibleText("radio");
    Assert.assertFalse(staticListField.getMultipleSelectionCheckBox().isSelected());
    // Enabling multiple selection when display type is radio should change display type to check box.
    staticListField.getMultipleSelectionCheckBox().click();
    Assert.assertEquals("checkbox", staticListField.getDisplayTypeSelect().getFirstSelectedOption().getAttribute("value"));
    // 'select' display type supports properly multiple selection only if size is greater than 1.
    Assert.assertEquals("1", staticListField.getSizeInput().getAttribute("value"));
    staticListField.getDisplayTypeSelect().selectByVisibleText("select");
    Assert.assertEquals("3", staticListField.getSizeInput().getAttribute("value"));
}
Also used : StaticListClassFieldEditPane(org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane) IgnoreBrowsers(org.xwiki.test.ui.browser.IgnoreBrowsers) Test(org.junit.Test)

Example 3 with StaticListClassFieldEditPane

use of org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane in project xwiki-platform by xwiki.

the class StaticListClassFieldTest method testDisplayType.

/**
 * Tests that the field preview is properly updated when the display type is changed. Currently selected items must
 * be preserved.
 */
@Test
@IgnoreBrowsers({ @IgnoreBrowser(value = "internet.*", version = "8\\.*", reason = "See https://jira.xwiki.org/browse/XE-1146"), @IgnoreBrowser(value = "internet.*", version = "9\\.*", reason = "See https://jira.xwiki.org/browse/XE-1177") })
public void testDisplayType() {
    // Add a new static list field.
    StaticListClassFieldEditPane staticListField = new StaticListClassFieldEditPane(editor.addField("Static List").getName());
    // By default the list is displayed using check boxes.
    Assert.assertEquals("checkbox", staticListField.getPreviewInputType());
    // Enable multiple selection.
    staticListField.openConfigPanel();
    staticListField.getMultipleSelectionCheckBox().click();
    // Select the first and third options.
    staticListField.getItemByValue("value1").click();
    staticListField.getItemByValue("value3").click();
    // Change the display type to 'select'.
    staticListField.getDisplayTypeSelect().selectByVisibleText("select");
    staticListField.closeConfigPanel();
    // Assert that the field preview has been updated.
    Assert.assertEquals("select", staticListField.getPreviewInputType());
    // Assert that the selected values were preserved.
    Assert.assertEquals(Arrays.asList("value1", "value3"), staticListField.getDefaultSelectedValues());
    // Select only the second option.
    staticListField.setDefaultValue("value2");
    // Change the display type to 'radio'.
    staticListField.openConfigPanel();
    staticListField.getDisplayTypeSelect().selectByVisibleText("radio");
    staticListField.closeConfigPanel();
    // Assert that the field preview has been updated.
    Assert.assertEquals("radio", staticListField.getPreviewInputType());
    // Assert that the selected value was preserved.
    Assert.assertEquals("value2", staticListField.getDefaultValue());
}
Also used : StaticListClassFieldEditPane(org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane) IgnoreBrowsers(org.xwiki.test.ui.browser.IgnoreBrowsers) Test(org.junit.Test)

Aggregations

Test (org.junit.Test)3 StaticListClassFieldEditPane (org.xwiki.appwithinminutes.test.po.StaticListClassFieldEditPane)3 IgnoreBrowsers (org.xwiki.test.ui.browser.IgnoreBrowsers)3 StaticListItemsEditor (org.xwiki.appwithinminutes.test.po.StaticListItemsEditor)1