You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by fm...@apache.org on 2017/05/05 22:22:48 UTC

[02/10] syncope git commit: [SYNCOPE-1047] Replaces ActionLinksPanel with TogglePanel

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
index 1f95fcb..a07dc2f 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/GroupsITCase.java
@@ -34,9 +34,9 @@ import org.junit.Before;
 
 public class GroupsITCase extends AbstractConsoleITCase {
 
-    private final String tabPanel = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
+    private final static String TAB_PANEL = "body:content:body:container:content:tabbedPanel:panel:searchResult:";
 
-    private final String searchResultContainer = tabPanel + "container:content:";
+    private final static String CONTAINER = TAB_PANEL + "container:content:";
 
     @Before
     public void login() {
@@ -48,27 +48,28 @@ public class GroupsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", searchResultContainer
+        Component component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "artDirector");
         assertNotNull(component);
 
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:4:cell:panelMembers:membersLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:3:action:action");
 
-        FormTester formTester = TESTER.newFormTester("body:content:body:container:content:tabbedPanel:panel:"
-                + "searchResult:outerObjectsRepeater:6:outer:container:content:togglePanelContainer:membersForm");
+        FormTester formTester = TESTER.newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:7:outer:container:content:togglePanelContainer:membersForm");
 
         formTester.select("type:dropDownChoiceField", 0);
         formTester.submit("changeit");
 
-        TESTER.assertModelValue("body:content:body:container:content:tabbedPanel:panel:searchResult:"
-                + "outerObjectsRepeater:5:outer:dialog:header:header-label", "USER members of artDirector");
-
-        assertNotNull(findComponentByProp("username", "body:content:body:container:content:tabbedPanel:panel:"
-                + "searchResult:outerObjectsRepeater:5:outer:form:content:searchResult:container:content:"
+        TESTER.assertModelValue(TAB_PANEL
+                + "outerObjectsRepeater:6:outer:dialog:header:header-label", "USER members of artDirector");
+        assertNotNull(findComponentByProp("username", TAB_PANEL
+                + "outerObjectsRepeater:6:outer:form:content:searchResult:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini"));
 
-        TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:searchResult:"
-                + "outerObjectsRepeater:5:outer:dialog:footer:buttons:0:button", Constants.ON_CLICK);
+        TESTER.executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:6:outer:dialog:footer:buttons:0:button", Constants.ON_CLICK);
     }
 
     @Test
@@ -91,16 +92,18 @@ public class GroupsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", searchResultContainer
+        Component component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", group);
         assertNotNull(component);
 
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:4:cell:panelClone:cloneLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:1:action:action");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.setValue("view:name:textField", group + "_clone");
         formTester.submit("buttons:finish");
@@ -108,10 +111,9 @@ public class GroupsITCase extends AbstractConsoleITCase {
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:0:"
-                + "outer:form:content:action:panelClose:closeLink");
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("name", searchResultContainer
+        component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", group + "_clone");
         assertNotNull(component);
     }
@@ -120,15 +122,18 @@ public class GroupsITCase extends AbstractConsoleITCase {
     public void clickToCloneGroup() {
         cloneGroup("director");
 
-        Component component = findComponentByProp("name", searchResultContainer
+        Component component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director_clone");
         assertNotNull(component);
+
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"));
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:9:action:action");
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:9:action:action"), Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -138,16 +143,18 @@ public class GroupsITCase extends AbstractConsoleITCase {
     public void editGroup() {
         cloneGroup("director");
 
-        Component component = findComponentByProp("name", searchResultContainer
+        Component component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director_clone");
         assertNotNull(component);
 
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:4:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(tabPanel + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
+        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
@@ -166,53 +173,56 @@ public class GroupsITCase extends AbstractConsoleITCase {
                 + "textField").getDefaultModelObjectAsString(), StringUtils.EMPTY);
         // -------------------------
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(tabPanel + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        TESTER.assertComponent(tabPanel
+        TESTER.assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:0:field", Label.class);
 
-        TESTER.clickLink(tabPanel + "outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink");
+        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("name", searchResultContainer
+        component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director_clone");
         assertNotNull(component);
 
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"));
+        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:9:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:9:action:action"), Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -223,11 +233,13 @@ public class GroupsITCase extends AbstractConsoleITCase {
         TESTER.clickLink("body:realmsLI:realms");
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", searchResultContainer
+        Component component = findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director");
         assertNotNull(component);
 
-        TESTER.assertComponent(component.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink",
-                IndicatingOnConfirmAjaxLink.class);
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+                + "actions:actions:actionRepeater:9:action:action", IndicatingOnConfirmAjaxLink.class);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
index 9e8a931..4e5ff94 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/NotificationsITCase.java
@@ -125,7 +125,10 @@ public class NotificationsITCase extends AbstractConsoleITCase {
         Component result = findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "createToUpdate");
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:7:cell:panelEdit:editLink");
+        // edit notification
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         FormTester formTester = TESTER.newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
@@ -143,18 +146,24 @@ public class NotificationsITCase extends AbstractConsoleITCase {
                 "body:content:tabbedPanel:panel:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "Password Reset request");
 
-        TESTER.clickLink(
-                result.getPageRelativePath() + ":cells:7:cell:panelNotificationTasks:notificationTasksLink");
+        // notification tasks link
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:"
+        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
                 + "content:tasks:firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:"
                 + "groupForm:checkgroup:dataTable", WebMarkupContainer.class);
 
-        result = findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:"
+        result = findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
                 + "content:tasks:firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:"
                 + "groupForm:checkgroup:dataTable", "Notification for SYNCOPE-81");
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:9:cell:panelExecute:executeLink");
+        // execute task
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
+                + "firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
+                + "container:actions:actions:actionRepeater:3:action:action");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -164,22 +173,28 @@ public class NotificationsITCase extends AbstractConsoleITCase {
         result = findComponentByProp("subject", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "Password Reset request");
 
-        TESTER.clickLink(
-                result.getPageRelativePath() + ":cells:7:cell:panelNotificationTasks:notificationTasksLink");
+        // notification tasks link
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
-        result = findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:"
+        result = findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
                 + "content:tasks:firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:"
                 + "groupForm:checkgroup:dataTable", "Notification for SYNCOPE-81");
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:9:cell:panelView:viewLink");
+        // view task
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
+                + "firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
+                + "container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertLabel("body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:tasks:"
+        TESTER.assertLabel("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
                 + "secondLevelContainer:title", "Executions");
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:tasks:"
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
                 + "secondLevelContainer:back");
 
-        assertNotNull(findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:"
+        assertNotNull(findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
                 + "content:tasks:firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:"
                 + "groupForm:checkgroup:dataTable", "Notification for SYNCOPE-81"));
     }
@@ -190,12 +205,18 @@ public class NotificationsITCase extends AbstractConsoleITCase {
         Component result = findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "createToDelete");
 
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
+
+        // delete task
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:7:cell:panelDelete:deleteLink"));
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:7:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action"),
+                Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
index 12e8f7e..cd2bb43 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ParametersITCase.java
@@ -21,6 +21,7 @@ package org.apache.syncope.fit.console;
 import static org.junit.Assert.assertNotNull;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.pages.Parameters;
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.html.WebMarkupContainer;
@@ -72,7 +73,10 @@ public class ParametersITCase extends AbstractConsoleITCase {
 
         Component result = findComponentByProp(SCHEMA, "body:content:parametersPanel", "notification.maxRetries");
         assertNotNull(result);
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:4:cell:panelEdit:editLink");
+        
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         FormTester formTester = TESTER.newFormTester(
                 "body:content:parametersPanel:container:content:modalDetails:form");
@@ -108,7 +112,10 @@ public class ParametersITCase extends AbstractConsoleITCase {
 
         Component result = findComponentByProp(SCHEMA, "body:content:parametersPanel", "deleteParam");
         assertNotNull(result);
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink");
+        
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
index 67ed20b..bdfd776 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/PoliciesITCase.java
@@ -74,7 +74,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:9:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
@@ -121,7 +124,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:8:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
@@ -164,7 +170,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
@@ -184,13 +193,16 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:9:cell:panelDelete:deleteLink"));
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:9:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"),
+                Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -205,14 +217,16 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(
-                TESTER.getComponentFromLastRenderedPage(
-                        component.getPageRelativePath() + ":cells:8:cell:panelDelete:deleteLink"));
+        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:8:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"),
+                Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -227,14 +241,16 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(
-                TESTER.getComponentFromLastRenderedPage(
-                        component.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink"));
+        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"),
+                Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -265,7 +281,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:9:cell:panelClone:cloneLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
@@ -310,7 +329,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:8:cell:panelClone:cloneLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
@@ -355,7 +377,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelClone:cloneLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
@@ -393,7 +418,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:9:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
@@ -415,9 +443,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.assertLabel(component.getPageRelativePath() + ":cells:7:cell", "2");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:9:cell:panelEdit:editLink");
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
@@ -436,25 +465,28 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", policyDescription);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:9:cell:panelCompose:composeLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer");
 
         TESTER.clickLink(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:container:content:add");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:add");
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:3:"
+        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.setValue("view:name:textField", ruleName);
         formTester.setValue("view:configuration:dropDownChoiceField", "0");
         formTester.submit("buttons:next");
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:"
+        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:"
                 + "container:content:wizard:form:view:bean:propView:1:value:spinner", 0);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:3:"
+        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.setValue("view:bean:propView:1:value:spinner", "6");
         formTester.submit("buttons:finish");
@@ -462,14 +494,14 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        component = findComponentByProp("name", "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:"
+        component = findComponentByProp("name", "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
                 + "content:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 ruleName);
 
         Assert.assertNotNull(component);
 
         TESTER.clickLink(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:container:content:exit");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:exit");
 
         closeCallBack(modal);
     }
@@ -491,7 +523,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:8:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
@@ -513,9 +548,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.assertLabel(component.getPageRelativePath() + ":cells:6:cell", "2");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:8:cell:panelEdit:editLink");
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
@@ -537,39 +573,42 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:8:cell:panelCompose:composeLink");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer", Modal.class);
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
+
+        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer");
 
         TESTER.clickLink(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:container:content:add");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:add");
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:3:"
+        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.setValue("view:name:textField", "myrule");
         formTester.setValue("view:configuration:dropDownChoiceField", "0");
         formTester.submit("buttons:next");
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:"
+        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:"
                 + "container:content:wizard:form:view:bean:propView:0:value:spinner", 0);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:3:"
+        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.submit("buttons:finish");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        component = findComponentByProp("name", "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:"
+        component = findComponentByProp("name", "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
                 + "content:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "myrule");
 
         Assert.assertNotNull(component);
 
         TESTER.clickLink(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:3:outer:form:content:container:content:exit");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:exit");
 
         closeCallBack(modal);
 
@@ -588,7 +627,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         FormTester formTester = TESTER.newFormTester(
@@ -607,7 +649,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description + "2");
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
+
         TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
@@ -629,16 +674,19 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelCompose:composeLink");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer", Modal.class);
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
+
+        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer", Modal.class);
 
         Component modal = TESTER.getComponentFromLastRenderedPage(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer");
 
         FormTester formTester = TESTER.newFormTester(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form");
 
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:"
+        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:content:"
                 + "correlationRules:multiValueContainer:innerForm:content:panelPlus:add", Constants.ON_CLICK);
 
         formTester.setValue("content:conflictResolutionAction:dropDownChoiceField", "1");
@@ -646,7 +694,7 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "jsonRule:paletteField:recorder", "fullname");
 
         TESTER.clickLink(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:dialog:footer:inputs:0:submit");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:dialog:footer:inputs:0:submit");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -657,18 +705,21 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         Assert.assertNotNull(component);
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelCompose:composeLink");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer", Modal.class);
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
+
+        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer", Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
+        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:"
                 + "content:conflictResolutionAction:dropDownChoiceField", ConflictResolutionAction.FIRSTMATCH);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
+        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:"
                 + "content:correlationRules:multiValueContainer:innerForm:content:view:0:panel:"
                 + "jsonRule:paletteField:recorder", "fullname");
 
         TESTER.clickLink(
-                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:dialog:footer:buttons:0:button");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:dialog:footer:buttons:0:button");
 
         closeCallBack(modal);
 
@@ -688,7 +739,7 @@ public class PoliciesITCase extends AbstractConsoleITCase {
 
         // edit root realm
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelEdit:editLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:1:action:action");
         TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
 
         // set new account policy
@@ -704,7 +755,7 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         TESTER.cleanupFeedbackMessages();
 
         TESTER.executeAjaxEvent(
-                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink",
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action",
                 Constants.ON_CLICK);
 
         // create user with a valid account name
@@ -715,7 +766,10 @@ public class PoliciesITCase extends AbstractConsoleITCase {
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.clickLink(component.getPageRelativePath() + ":cells:6:cell:panelClone:cloneLink");
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
+                + "1:outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:1:"
+                + "action:action");
 
         TESTER.assertComponent(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:"
@@ -753,7 +807,7 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         TESTER.cleanupFeedbackMessages();
 
         TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:"
-                + "outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink");
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
         component = findComponentByProp("username",
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:container:content:"
@@ -761,12 +815,18 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         assertNotNull(component);
 
         // delete the new user
+        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+
         TESTER.getRequest().addParameter("confirm", "true");
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink"));
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
+                + "1:outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:8:"
+                + "action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                component.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink"), "onclick");
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
+                + "1:outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:8:"
+                + "action:action"), Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RealmsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RealmsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RealmsITCase.java
index c44f52a..1a59db4 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RealmsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RealmsITCase.java
@@ -48,8 +48,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
     @Test
     public void create() {
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelCreate:createLink");
-
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:0:action:action");
         TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
 
         FormTester formTester = TESTER.newFormTester(
@@ -61,9 +60,8 @@ public class RealmsITCase extends AbstractConsoleITCase {
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        TESTER.executeAjaxEvent(
-                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink",
-                Constants.ON_CLICK);
+        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+                + "0:action:action", Constants.ON_CLICK);
 
         // remove the new realm just created
         TESTER.clickLink("body:realmsLI:realms");
@@ -76,7 +74,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
 
         TESTER.getRequest().addParameter("confirm", "true");
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelDelete:deleteLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:3:action:action");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -90,7 +88,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
     @Test
     public void update() {
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelEdit:editLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:1:action:action");
         TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
 
         FormTester formTester = TESTER.newFormTester(
@@ -100,9 +98,8 @@ public class RealmsITCase extends AbstractConsoleITCase {
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        TESTER.executeAjaxEvent(
-                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink",
-                Constants.ON_CLICK);
+        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+                + "0:action:action", Constants.ON_CLICK);
     }
 
     @Test
@@ -114,7 +111,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
         TESTER.assertLabel("body:content:realmChoicePanel:container:realm", "/odd");
 
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelTemplate:templateLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:2:action:action");
         TESTER.assertComponent("body:content:toggleTemplates", TogglePanel.class);
 
         FormTester formTester = TESTER.newFormTester(
@@ -134,7 +131,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
         TESTER.assertLabel("body:content:realmChoicePanel:container:realm", "/odd");
 
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelTemplate:templateLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:2:action:action");
         TESTER.assertComponent("body:content:toggleTemplates", TogglePanel.class);
 
         formTester = TESTER.newFormTester(
@@ -162,7 +159,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
                 Constants.ON_CLICK);
 
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelEdit:editLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:1:action:action");
         TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
         TESTER.assertModelValue("body:content:body:outerObjectsRepeater:0:outer:form:content:form:view:details:"
                 + "container:generics:name:textField", "two");
@@ -182,7 +179,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
         Component component = findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit");
 
-        TESTER.clickLink(component.getPageRelativePath() + ":actions:panelView:viewLink");
+        TESTER.clickLink(component.getPageRelativePath() + ":actions:actionRepeater:0:action:action");
 
         TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:2:value:oldAttribute:field-label", "ou");
@@ -209,12 +206,11 @@ public class RealmsITCase extends AbstractConsoleITCase {
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit"));
         // ----------------------------------
 
-        TESTER.executeAjaxEvent(
-                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink",
-                Constants.ON_CLICK);
+        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+                + "0:action:action", Constants.ON_CLICK);
 
         TESTER.clickLink(
-                "body:content:body:container:content:tabbedPanel:panel:actions:actions:panelEdit:editLink");
+                "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:1:action:action");
         TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
         TESTER.assertModelValue("body:content:body:outerObjectsRepeater:0:outer:form:content:form:view:details:"
                 + "container:generics:name:textField", "two");
@@ -234,7 +230,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
         component = findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit");
 
-        TESTER.clickLink(component.getPageRelativePath() + ":actions:panelView:viewLink");
+        TESTER.clickLink(component.getPageRelativePath() + ":actions:actionRepeater:0:action:action");
 
         TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:2:value:oldAttribute:field-label", "ou");
@@ -261,8 +257,7 @@ public class RealmsITCase extends AbstractConsoleITCase {
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit"));
         // ----------------------------------
 
-        TESTER.executeAjaxEvent(
-                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:panelClose:closeLink",
-                Constants.ON_CLICK);
+        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+                + "0:action:action", Constants.ON_CLICK);
     }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RelationshipTypesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RelationshipTypesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RelationshipTypesITCase.java
index c5bde0c..a9fe924 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RelationshipTypesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RelationshipTypesITCase.java
@@ -21,11 +21,10 @@ package org.apache.syncope.fit.console;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
+import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.panels.AjaxDataTablePanel;
 import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
-import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnConfirmAjaxLink;
 import org.apache.wicket.Component;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Test;
@@ -41,11 +40,9 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
         TESTER.assertComponent(
                 result.getPageRelativePath() + ":cells:1:cell", Label.class);
 
-        TESTER.assertComponent(
-                result.getPageRelativePath() + ":cells:3:cell:panelEdit:editLink", IndicatingAjaxLink.class);
-
-        TESTER.clickLink(
-                result.getPageRelativePath() + ":cells:3:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         TESTER.assertComponent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", BaseModal.class);
@@ -71,17 +68,15 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
         createRelationshipType(name);
         browsingToRelationshipType();
 
-        TESTER.assertComponent(
-                DATATABLE_PATH
-                + ":tablePanel:groupForm:checkgroup:dataTable:"
-                + "body:rows:1:cells:3:cell:panelEdit:editLink", IndicatingAjaxLink.class);
+        Component result = findComponentByProp(KEY, DATATABLE_PATH, name);
+        assertNotNull(result);
 
-        TESTER.clickLink(
-                DATATABLE_PATH
-                + ":tablePanel:groupForm:checkgroup:dataTable:body:rows:1:cells:3:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        final FormTester formTester =
-                TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        final FormTester formTester = TESTER.newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue(
                 "content:relationshipTypeDetails:container:form:description:textField", "new description");
 
@@ -99,18 +94,19 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
         TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
 
         Component result = findComponentByProp(KEY, DATATABLE_PATH, name);
-
         assertNotNull(result);
-        TESTER.assertComponent(
-                result.getPageRelativePath() + ":cells:3:cell:panelDelete:deleteLink",
-                IndicatingOnConfirmAjaxLink.class);
 
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
+
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:3:cell:panelDelete:deleteLink"));
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:3:cell:panelDelete:deleteLink"), "onclick");
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+                + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"), Constants.ON_CLICK);
+
         TESTER.assertInfoMessages("Operation executed successfully");
 
         TESTER.cleanupFeedbackMessages();

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ReportsITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ReportsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ReportsITCase.java
index 7adf92d..c94b48b 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ReportsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/ReportsITCase.java
@@ -73,12 +73,15 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:10:cell:panelDelete:deleteLink"));
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:5:action:action");
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:10:cell:panelDelete:deleteLink"), Constants.ON_CLICK);
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:5:action:action"),
+                Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -97,7 +100,9 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:10:cell:panelCompose:composeLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
 
         result = findComponentByProp("name", "body:content:tabbedPanel:panel:firstLevelContainer:first:"
                 + "outerObjectsRepeater:0:outer:form:content:container:content:searchContainer:resultTable:tablePanel:"
@@ -105,9 +110,13 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.getRequest().addParameter("confirm", "true");
+
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:3:cell:panelDelete:deleteLink"));
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer:"
+                + "form:content:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:actions:"
+                + "actions:actionRepeater:2:action:action"));
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
@@ -125,7 +134,9 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:10:cell:panelView:viewLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:3:action:action");
 
         TESTER.assertModelValue(
                 "body:content:tabbedPanel:panel:secondLevelContainer:title", "Executions of report 'test'");
@@ -135,7 +146,11 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:6:cell:panelView:viewLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:secondLevelContainer:second:executions:firstLevelContainer:"
+                + "first:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:actions:"
+                + "actions:actionRepeater:0:action:action");
+
         TESTER.clickLink(
                 "body:content:tabbedPanel:panel:secondLevelContainer:second:executions:secondLevelContainer:back");
 
@@ -157,14 +172,21 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:10:cell:panelCompose:composeLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
 
         result = findComponentByProp("name", "body:content:tabbedPanel:panel:firstLevelContainer:first:"
                 + "outerObjectsRepeater:0:outer:form:content:container:content:searchContainer:resultTable:tablePanel:"
                 + "groupForm:checkgroup:dataTable", "testUserReportlet");
 
         assertNotNull(result);
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:3:cell:panelClone:cloneLink");
+
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer:form:"
+                + "content:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:actions:"
+                + "actions:actionRepeater:0:action:action");
 
         FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:firstLevelContainer:first:"
                 + "outerObjectsRepeater:0:outer:form:content:container:content:wizard:form");
@@ -194,7 +216,9 @@ public class ReportsITCase extends AbstractConsoleITCase {
 
         assertNotNull(result);
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:10:cell:panelCompose:composeLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
 
         TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:"
                 + "outer:form:content:container:content:add");
@@ -228,7 +252,11 @@ public class ReportsITCase extends AbstractConsoleITCase {
                 "name", "body:content:tabbedPanel:panel:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "updateReport");
 
-        TESTER.clickLink(result.getPageRelativePath() + ":cells:10:cell:panelEdit:editLink");
+        assertNotNull(result);
+
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         TESTER.assertModelValue("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:"
                 + "0:outer:dialog:header:header-label", "Edit Report updateReport");

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RolesITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RolesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RolesITCase.java
index 05d98e3..54d8348 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RolesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/RolesITCase.java
@@ -63,22 +63,24 @@ public class RolesITCase extends AbstractConsoleITCase {
 
     @Test
     public void read() {
-        assertNull(findComponentByProp(KEY, "body:content:rolesPanel:container:content:searchContainer:"
-                + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "OTHER"));
+        Component result = findComponentByProp(KEY, "body:content:rolesPanel:container:content:searchContainer:"
+                + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "Other");
+        assertNotNull(result);
 
-        TESTER.clickLink("body:content:rolesPanel:container:content:searchContainer:resultTable:tablePanel:"
-                + "groupForm:checkgroup:dataTable:body:rows:1:cells:4:cell:panelMembers:membersLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:rolesPanel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
+                + "container:actions:actions:actionRepeater:2:action:action");
 
         TESTER.assertModelValue(
-                "body:content:rolesPanel:outerObjectsRepeater:4:outer:dialog:header:header-label",
+                "body:content:rolesPanel:outerObjectsRepeater:5:outer:dialog:header:header-label",
                 "Role 'Other' members");
 
-        assertNotNull(findComponentByProp("username", "body:content:rolesPanel:outerObjectsRepeater:4:outer:form:"
+        assertNotNull(findComponentByProp("username", "body:content:rolesPanel:outerObjectsRepeater:5:outer:form:"
                 + "content:searchResult:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "rossini"));
 
         TESTER.executeAjaxEvent(
-                "body:content:rolesPanel:outerObjectsRepeater:4:outer:dialog:footer:buttons:0:button",
+                "body:content:rolesPanel:outerObjectsRepeater:5:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
     }
 
@@ -93,11 +95,11 @@ public class RolesITCase extends AbstractConsoleITCase {
         Component result = findComponentByProp(KEY, "body:content:rolesPanel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "updateRole");
 
-        TESTER.assertLabel(
-                result.getPageRelativePath() + ":cells:1:cell", "updateRole");
+        assertNotNull(result);
 
-        TESTER.clickLink(
-                result.getPageRelativePath() + ":cells:4:cell:panelEdit:editLink");
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        TESTER.clickLink("body:content:rolesPanel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
+                + "container:actions:actions:actionRepeater:0:action:action");
 
         FormTester formTester = TESTER.newFormTester("body:content:rolesPanel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:key:textField", "updateRole");
@@ -121,15 +123,18 @@ public class RolesITCase extends AbstractConsoleITCase {
         Component result = findComponentByProp(KEY, "body:content:rolesPanel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "deleteRole");
 
-        TESTER.assertLabel(
-                result.getPageRelativePath() + ":cells:1:cell", "deleteRole");
+        assertNotNull(result);
+
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
 
         TESTER.getRequest().addParameter("confirm", "true");
         TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:4:cell:panelDelete:deleteLink"));
+                "body:content:rolesPanel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
+                + "container:actions:actions:actionRepeater:4:action:action"));
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:3:cell:panelDelete:deleteLink"), "onclick");
+                "body:content:rolesPanel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
+                + "container:actions:actions:actionRepeater:4:action:action"), "onclick");
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();

http://git-wip-us.apache.org/repos/asf/syncope/blob/2e7e2cee/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SchemasITCase.java
----------------------------------------------------------------------
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SchemasITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SchemasITCase.java
index 75f3057..45303fb 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SchemasITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SchemasITCase.java
@@ -25,9 +25,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import org.apache.syncope.client.console.commons.Constants;
 import org.apache.syncope.client.console.pages.Types;
 import org.apache.syncope.client.console.panels.AjaxDataTablePanel;
-import org.apache.syncope.client.console.wicket.markup.html.form.IndicatingOnConfirmAjaxLink;
 import org.apache.wicket.Component;
-import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxLink;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.util.tester.FormTester;
 import org.junit.Test;
@@ -42,15 +40,13 @@ public class SchemasITCase extends AbstractTypesITCase {
                 + ":tablePanel:groupForm:"
                 + "checkgroup:dataTable:body:rows:1:cells:1:cell", "aLong");
 
-        TESTER.assertComponent(
-                PLAIN_DATATABLE_PATH
-                + ":tablePanel:groupForm:checkgroup:dataTable:"
-                + "body:rows:1:cells:7:cell:panelEdit:editLink", IndicatingAjaxLink.class);
+        TESTER.executeAjaxEvent(
+                PLAIN_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable:body:rows:1",
+                Constants.ON_CLICK);
 
         TESTER.clickLink(
-                PLAIN_DATATABLE_PATH
-                + ":tablePanel:groupForm:checkgroup:dataTable:"
-                + "body:rows:1:cells:7:cell:panelEdit:editLink");
+                "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         TESTER.assertComponent(
                 "body:content:tabbedPanel:"
@@ -73,8 +69,8 @@ public class SchemasITCase extends AbstractTypesITCase {
         formTester.setValue("content:details:form:key:textField", "zBoolean");
         formTester.setValue("content:details:form:type:dropDownChoiceField", "3");
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:"
-                + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
+        TESTER.clickLink("body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:"
+                + "outer:dialog:footer:inputs:0:submit");
 
         TESTER.assertInfoMessages("Operation executed successfully");
 
@@ -88,11 +84,13 @@ public class SchemasITCase extends AbstractTypesITCase {
 
         Component result = findComponentByProp(KEY, PLAIN_DATATABLE_PATH, "ctype");
 
-        TESTER.assertLabel(
-                result.getPageRelativePath() + ":cells:1:cell", "ctype");
+        TESTER.assertLabel(result.getPageRelativePath() + ":cells:1:cell", "ctype");
+        assertNotNull(result);
 
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
         TESTER.clickLink(
-                result.getPageRelativePath() + ":cells:7:cell:panelEdit:editLink");
+                "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         TESTER.assertComponent(
                 "body:content:tabbedPanel:"
@@ -142,17 +140,20 @@ public class SchemasITCase extends AbstractTypesITCase {
         TESTER.assertComponent(PLAIN_DATATABLE_PATH, AjaxDataTablePanel.class);
 
         Component result = findComponentByProp(KEY, PLAIN_DATATABLE_PATH, schemaName);
+        assertNotNull(result);
 
-        TESTER.assertComponent(
-                result.getPageRelativePath() + ":cells:7:cell:panelDelete:deleteLink",
-                IndicatingOnConfirmAjaxLink.class);
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
 
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:7:cell:panelDelete:deleteLink"));
+        TESTER.clickLink(
+                "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:7:cell:panelDelete:deleteLink"), "onclick");
+                "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"),
+                Constants.ON_CLICK);
+
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
@@ -182,27 +183,29 @@ public class SchemasITCase extends AbstractTypesITCase {
         formTester.setValue("content:details:form:anyType:dropDownChoiceField", "0");
         formTester.setValue("content:details:form:extAttrName:textField", "virattr");
 
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:"
-                + "accordionPanel:tabs:2:body:content:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit",
-                Constants.ON_CLICK);
+        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:2:body:content:"
+                + "outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
 
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
         TESTER.assertRenderedPage(Types.class);
 
         Component result = findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir");
-        assertNotNull(result);
+        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
 
         TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink"));
+        TESTER.clickLink(
+                "body:content:tabbedPanel:panel:accordionPanel:tabs:2:body:content:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
         TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
-                result.getPageRelativePath() + ":cells:6:cell:panelDelete:deleteLink"), "onclick");
+                "body:content:tabbedPanel:panel:accordionPanel:tabs:2:body:content:outerObjectsRepeater:1:outer:"
+                + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"),
+                Constants.ON_CLICK);
+
         TESTER.assertInfoMessages("Operation executed successfully");
         TESTER.cleanupFeedbackMessages();
 
-        result = findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir");
-        assertNull(result);
+        assertNull(findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir"));
     }
 }