Search in sources :

Example 1 with AccordionEditDialog

use of com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class AccordionIT method createItem.

/**
 * Create three items via the children editor
 *
 * 1. open the edit dialog
 * 2. add item via the children editor
 * 3. save the edit dialog
 * 4. Check if items are added
 *
 * @throws InterruptedException
 */
private ElementsCollection createItem() throws InterruptedException {
    // 1.
    AccordionEditDialog editDialog = accordion.openEditDialog(cmpPath);
    editDialog.openItemsTab();
    // 2.
    ChildrenEditor childrenEditor = editDialog.getChildrenEditor();
    childrenEditor.clickAddButton();
    InsertComponentDialog insertComponentDialog = editDialog.getInsertComponentDialog();
    insertComponentDialog.selectComponent("/libs/wcm/foundation/components/responsivegrid");
    childrenEditor.getInputItems().last().sendKeys("item0");
    childrenEditor.clickAddButton();
    insertComponentDialog.selectComponent("/libs/wcm/foundation/components/responsivegrid");
    childrenEditor.getInputItems().last().sendKeys("item1");
    childrenEditor.clickAddButton();
    insertComponentDialog.selectComponent("/libs/wcm/foundation/components/responsivegrid");
    childrenEditor.getInputItems().last().sendKeys("item2");
    // 3.
    Commons.saveConfigureDialog();
    // 4.
    accordion.openEditDialog(cmpPath);
    editDialog.openItemsTab();
    ElementsCollection items = childrenEditor.getInputItems();
    assertTrue(items.size() == 3, "Number to items added should be 3");
    assertTrue(items.get(0).getValue().equals("item0"), "First input item should be item0");
    assertTrue(items.get(1).getValue().equals("item1"), "Second input item should be item1");
    assertTrue(items.get(2).getValue().equals("item2"), "Third input item should be item2");
    Commons.saveConfigureDialog();
    return items;
}
Also used : ChildrenEditor(com.adobe.cq.wcm.core.components.it.seljup.util.components.commons.ChildrenEditor) ElementsCollection(com.codeborne.selenide.ElementsCollection) AccordionEditDialog(com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog) InsertComponentDialog(com.adobe.cq.testing.selenium.pagewidgets.cq.InsertComponentDialog)

Example 2 with AccordionEditDialog

use of com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class AccordionIT method testRemoveItem.

/**
 * Test: Edit Dialog : Remove items
 *
 * 1. create new items with titles
 * 2. open the edit dialog
 * 3. remove the first item and save the edit dialog
 * 4. open the edit dialog
 * 5. verify that the first item has been removed
 * 6. verify the expanded items select
 * 7. save the edit dialog
 *
 * @throws InterruptedException
 */
@Test
@DisplayName("Test: Edit Dialog : Remove items")
public void testRemoveItem() throws InterruptedException {
    // 1.
    createItem();
    // 2.
    AccordionEditDialog editDialog = accordion.openEditDialog(cmpPath);
    ChildrenEditor childrenEditor = editDialog.getChildrenEditor();
    editDialog.openItemsTab();
    // 3.
    childrenEditor.removeFirstItem();
    Commons.saveConfigureDialog();
    // 4.
    accordion.openEditDialog(cmpPath);
    editDialog.openItemsTab();
    ElementsCollection items = childrenEditor.getInputItems();
    // 5.
    assertTrue(items.size() == 2, "Number to items added should be 2");
    assertTrue(items.get(0).getValue().equals("item1"), "First input item should be item1");
    assertTrue(items.get(1).getValue().equals("item2"), "Second input item should be item2");
    // 6.
    verifyExpandedItemsSelect(items, editDialog.getEditDialogProperties());
    // 7.
    Commons.saveConfigureDialog();
}
Also used : ChildrenEditor(com.adobe.cq.wcm.core.components.it.seljup.util.components.commons.ChildrenEditor) ElementsCollection(com.codeborne.selenide.ElementsCollection) AccordionEditDialog(com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog) AuthorBaseUITest(com.adobe.cq.wcm.core.components.it.seljup.AuthorBaseUITest) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 3 with AccordionEditDialog

use of com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class AccordionIT method selectExpandedItem.

/**
 * Create and title a single accordion item
 *
 * @param idx id of the item to be expanded
 *
 * 1. open the edit dialog
 * 2. open the properties tab
 * 3. open the expandedselect list
 * 4. select the idx item
 * 5. save the edit dialog
 *
 * @throws InterruptedException
 */
private CoralSelectList selectExpandedItem(int idx) throws InterruptedException {
    // 1.
    AccordionEditDialog editDialog = accordion.openEditDialog(cmpPath);
    // 2.
    AccordionEditDialog.EditDialogProperties properties = editDialog.getEditDialogProperties();
    properties.openProperties();
    // 3.
    properties.openExpandedSelect(" > button");
    // 4.
    CoralSelectList selectedItems = properties.selectList();
    selectedItems.selectByIndex(idx);
    // 5.
    Commons.saveConfigureDialog();
    return selectedItems;
}
Also used : AccordionEditDialog(com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog) CoralSelectList(com.adobe.cq.testing.selenium.pagewidgets.coral.CoralSelectList)

Example 4 with AccordionEditDialog

use of com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class AccordionIT method testReorderItem.

/**
 * Test: Edit Dialog : Reorder items
 *
 * 1. create new items with titles
 * 2. open the edit dialog
 * 3. move the last item before the first one
 * 4. save the edit dialog
 * 5. open the edit dialog
 * 6. verify the new order
 * 7. verify the expanded items select
 * 8. save the edit dialog
 *
 * @throws InterruptedException
 */
@Test
@DisplayName("Test: Edit Dialog : Reorder items")
public void testReorderItem() throws InterruptedException {
    // 1.
    createItem();
    // 2.
    AccordionEditDialog editDialog = accordion.openEditDialog(cmpPath);
    ChildrenEditor childrenEditor = editDialog.getChildrenEditor();
    editDialog.openItemsTab();
    // 3.
    childrenEditor.moveItems(2, 0);
    // 4.
    Commons.saveConfigureDialog();
    // 5.
    accordion.openEditDialog(cmpPath);
    editDialog.openItemsTab();
    // 6.
    ElementsCollection items = childrenEditor.getInputItems();
    assertTrue(items.size() == 3, "Number to items added should be 3");
    // In chrome browser re-order is not working as expected
    assertTrue(items.get(0).getValue().equals("item2") || items.get(0).getValue().equals("item0"), "First input item should be item2 or item0");
    assertTrue(items.get(1).getValue().equals("item0") || items.get(1).getValue().equals("item2"), "Second input item should be item0 or item2");
    assertTrue(items.get(2).getValue().equals("item1"), "Second input item should be item1");
    // 7.
    verifyExpandedItemsSelect(items, editDialog.getEditDialogProperties());
    // 8.
    Commons.saveConfigureDialog();
}
Also used : ChildrenEditor(com.adobe.cq.wcm.core.components.it.seljup.util.components.commons.ChildrenEditor) ElementsCollection(com.codeborne.selenide.ElementsCollection) AccordionEditDialog(com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog) AuthorBaseUITest(com.adobe.cq.wcm.core.components.it.seljup.AuthorBaseUITest) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

Example 5 with AccordionEditDialog

use of com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog in project aem-core-wcm-components by Adobe-Marketing-Cloud.

the class AccordionIT method addAccordionItem.

/**
 * Create and title a single accordion item
 *
 * @param component component path
 * @param parentPath parent component path
 * @param itemName name of the item to be set
 * 1. add a component to the accordion
 * 2. open the edit dialog
 * 3. name the accordion item
 * 4. save the edit dialog
 *
 * @throws ClientException
 * @throws InterruptedException
 */
private String addAccordionItem(String component, String parentPath, String itemName) throws ClientException, InterruptedException {
    // 1.
    String cmpPath = Commons.addComponent(adminClient, component, parentPath + "/", null, null);
    // 2.
    AccordionEditDialog editDialog = accordion.openEditDialog(parentPath);
    ChildrenEditor childrenEditor = editDialog.getChildrenEditor();
    Commons.webDriverWait(RequestConstants.WEBDRIVER_WAIT_TIME_MS);
    editDialog.openItemsTab();
    // 3.
    childrenEditor.getInputItems().last().sendKeys(itemName);
    // 4.
    Commons.saveConfigureDialog();
    return cmpPath;
}
Also used : ChildrenEditor(com.adobe.cq.wcm.core.components.it.seljup.util.components.commons.ChildrenEditor) AccordionEditDialog(com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog)

Aggregations

AccordionEditDialog (com.adobe.cq.wcm.core.components.it.seljup.util.components.accordion.AccordionEditDialog)8 AuthorBaseUITest (com.adobe.cq.wcm.core.components.it.seljup.AuthorBaseUITest)5 DisplayName (org.junit.jupiter.api.DisplayName)5 Test (org.junit.jupiter.api.Test)5 ChildrenEditor (com.adobe.cq.wcm.core.components.it.seljup.util.components.commons.ChildrenEditor)4 ElementsCollection (com.codeborne.selenide.ElementsCollection)4 CoralSelectList (com.adobe.cq.testing.selenium.pagewidgets.coral.CoralSelectList)2 ArrayList (java.util.ArrayList)2 CoralCheckbox (com.adobe.cq.testing.selenium.pagewidgets.coral.CoralCheckbox)1 InsertComponentDialog (com.adobe.cq.testing.selenium.pagewidgets.cq.InsertComponentDialog)1