syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From skylar...@apache.org
Subject [syncope] branch master updated: [SYNCOPE-1421] Fix to Enduser and Console tests
Date Mon, 10 Jun 2019 09:25:30 GMT
This is an automated email from the ASF dual-hosted git repository.

skylark17 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/master by this push:
     new 88b07a2  [SYNCOPE-1421] Fix to Enduser and Console tests
88b07a2 is described below

commit 88b07a2280876a8b94c922f313f34ab652555416
Author: skylark17 <matteo.alessandroni@tirasa.net>
AuthorDate: Mon Jun 10 11:18:48 2019 +0200

    [SYNCOPE-1421] Fix to Enduser and Console tests
---
 .../init/ClassPathScanImplementationLookup.java    |  13 +
 .../syncope/fit/console/AbstractConsoleITCase.java |  17 +-
 .../syncope/fit/console/AbstractTypesITCase.java   |  97 ++--
 .../syncope/fit/console/AjaxBrowseITCase.java      |  42 +-
 .../fit/console/AjaxPalettePanelITCase.java        |   6 +-
 .../syncope/fit/console/AjaxTextFieldITCase.java   |  20 +-
 .../syncope/fit/console/AnyObjectsITCase.java      |  69 +--
 .../syncope/fit/console/AnyTypeClassesITCase.java  |  86 ++--
 .../apache/syncope/fit/console/AnyTypesITCase.java |  79 ++--
 .../apache/syncope/fit/console/BatchesITCase.java  | 184 ++++----
 .../fit/console/DisplayAttributesITCase.java       |  20 +-
 .../apache/syncope/fit/console/GroupsITCase.java   | 142 +++---
 .../org/apache/syncope/fit/console/LogsITCase.java |  39 +-
 .../syncope/fit/console/NotificationsITCase.java   | 131 ++---
 .../syncope/fit/console/ParametersITCase.java      |  72 +--
 .../apache/syncope/fit/console/PoliciesITCase.java | 525 ++++++++++++---------
 .../apache/syncope/fit/console/RealmsITCase.java   | 175 ++++---
 .../fit/console/RelationshipTypesITCase.java       |  50 +-
 .../apache/syncope/fit/console/ReportsITCase.java  |  82 ++--
 .../apache/syncope/fit/console/RolesITCase.java    |  80 ++--
 .../apache/syncope/fit/console/SchemasITCase.java  | 110 ++---
 .../fit/console/SecurityQuestionsITCase.java       |  61 +--
 .../apache/syncope/fit/console/TopologyITCase.java | 386 ++++++++-------
 .../apache/syncope/fit/console/UsersITCase.java    | 417 ++++++++--------
 .../syncope/fit/enduser/AbstractEnduserITCase.java |  21 +-
 .../fit/enduser/SelfRegistrationITCase.java        | 131 ++---
 .../org/apache/syncope/fit/ui/AbstractUITCase.java |  62 ---
 .../ui/{AbstractUITCase.java => UtilityUIT.java}   |  42 +-
 28 files changed, 1696 insertions(+), 1463 deletions(-)

diff --git a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/init/ClassPathScanImplementationLookup.java b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/init/ClassPathScanImplementationLookup.java
index af96486..d6423c7 100644
--- a/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/init/ClassPathScanImplementationLookup.java
+++ b/client/idrepo/enduser/src/main/java/org/apache/syncope/client/enduser/init/ClassPathScanImplementationLookup.java
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.syncope.client.enduser.annotations.ExtPage;
 import org.apache.syncope.client.enduser.annotations.Resource;
+import org.apache.syncope.client.enduser.pages.BaseEnduserWebPage;
 import org.apache.syncope.client.enduser.pages.BaseExtPage;
 import org.apache.syncope.client.ui.commons.annotations.BinaryPreview;
 import org.apache.syncope.client.ui.commons.markup.html.form.preview.AbstractBinaryPreviewer;
@@ -51,6 +52,8 @@ public class ClassPathScanImplementationLookup {
 
     private List<Class<? extends BaseExtPage>> extPages;
 
+    private List<Class<? extends BaseEnduserWebPage>> pages;
+
     /**
      * This method can be overridden by subclasses to customize classpath scan.
      *
@@ -62,6 +65,7 @@ public class ClassPathScanImplementationLookup {
 
     @SuppressWarnings("unchecked")
     public void load() {
+        pages = new ArrayList<>();
         previewers = new ArrayList<>();
         extPages = new ArrayList<>();
         ssoLoginFormPanels = new ArrayList<>();
@@ -72,6 +76,7 @@ public class ClassPathScanImplementationLookup {
         scanner.addIncludeFilter(new AssignableTypeFilter(BaseExtPage.class));
         scanner.addIncludeFilter(new AssignableTypeFilter(BaseSSOLoginFormPanel.class));
         scanner.addIncludeFilter(new AssignableTypeFilter(AbstractBinaryPreviewer.class));
+        scanner.addIncludeFilter(new AssignableTypeFilter(BaseEnduserWebPage.class));
 
         for (BeanDefinition bd : scanner.findCandidateComponents(getBasePackage())) {
             try {
@@ -96,6 +101,8 @@ public class ClassPathScanImplementationLookup {
                         previewers.add((Class<? extends AbstractBinaryPreviewer>) clazz);
                     } else if (BaseSSOLoginFormPanel.class.isAssignableFrom(clazz)) {
                         ssoLoginFormPanels.add((Class<? extends BaseSSOLoginFormPanel>) clazz);
+                    } else if (BaseEnduserWebPage.class.isAssignableFrom(clazz)) {
+                        pages.add((Class<? extends BaseEnduserWebPage>) clazz);
                     }
                 }
             } catch (Throwable t) {
@@ -106,6 +113,8 @@ public class ClassPathScanImplementationLookup {
 
         ssoLoginFormPanels = Collections.unmodifiableList(ssoLoginFormPanels);
 
+        pages = Collections.unmodifiableList(pages);
+
         LOG.debug("Binary previewers found: {}", previewers);
         LOG.debug("Extension pages found: {}", extPages);
         LOG.debug("SSO Login pages found: {}", ssoLoginFormPanels);
@@ -137,5 +146,9 @@ public class ClassPathScanImplementationLookup {
     public List<Class<? extends BaseExtPage>> getExtPageClasses() {
         return extPages;
     }
+    
+    public List<Class<? extends BaseEnduserWebPage>> getPageClasses() {
+        return pages;
+    }
 
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
index a4c2355..28dd0a3 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractConsoleITCase.java
@@ -34,6 +34,7 @@ import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
 import org.apache.syncope.common.keymaster.client.self.SelfKeymasterClientContext;
 import org.apache.syncope.common.rest.api.service.SyncopeService;
 import org.apache.syncope.fit.ui.AbstractUITCase;
+import org.apache.syncope.fit.ui.UtilityUIT;
 import org.apache.wicket.util.tester.FormTester;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.jupiter.api.BeforeAll;
@@ -44,9 +45,11 @@ import org.springframework.context.annotation.Configuration;
 
 public abstract class AbstractConsoleITCase extends AbstractUITCase {
 
+    protected static UtilityUIT UTILITY_UI;
+
     @ImportAutoConfiguration(classes = { SelfKeymasterClientContext.class })
     @Configuration
-    public static class SyncopeWebApplicationTestConfig {
+    public static class SyncopeConsoleWebApplicationTestConfig {
 
         @Bean
         public GeneralSettingsProperties generalSettingsProperties() {
@@ -91,13 +94,13 @@ public abstract class AbstractConsoleITCase extends AbstractUITCase {
     @BeforeAll
     public static void setUp() {
         synchronized (LOG) {
-            if (TESTER == null) {
+            if (UTILITY_UI == null) {
                 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
-                ctx.register(SyncopeWebApplicationTestConfig.class);
+                ctx.register(SyncopeConsoleWebApplicationTestConfig.class);
                 ctx.register(SyncopeWebApplication.class);
                 ctx.refresh();
 
-                TESTER = new WicketTester(ctx.getBean(SyncopeWebApplication.class));
+                UTILITY_UI = new UtilityUIT(new WicketTester(ctx.getBean(SyncopeWebApplication.class)));
             }
 
             if (SYNCOPE_SERVICE == null) {
@@ -109,10 +112,10 @@ public abstract class AbstractConsoleITCase extends AbstractUITCase {
     }
 
     protected void doLogin(final String user, final String passwd) {
-        TESTER.startPage(Login.class);
-        TESTER.assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().startPage(Login.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
 
-        FormTester formTester = TESTER.newFormTester("login");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("login");
         formTester.setValue("username", user);
         formTester.setValue("password", passwd);
         formTester.submit("submit");
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
index 6e4ad82..08b50d1 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AbstractTypesITCase.java
@@ -42,128 +42,131 @@ public abstract class AbstractTypesITCase extends AbstractConsoleITCase {
     }
 
     protected void browsingToRelationshipType() {
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:typesLI:types");
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
-        TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
                 AjaxFallbackDataTable.class);
     }
 
     protected void browsingToAnyTypes() {
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:typesLI:types");
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
-        TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
                 AjaxFallbackDataTable.class);
     }
 
     protected void browsingToAnyTypeClasses() {
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:typesLI:types");
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
-        TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
                 AjaxFallbackDataTable.class);
     }
 
     protected void browsingToPlainSchemas() {
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:typesLI:types");
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
-        TESTER.assertComponent(PLAIN_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().assertComponent(PLAIN_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
                 AjaxFallbackDataTable.class);
     }
 
     protected void browsingToVirtualSchemas() {
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:typesLI:types");
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
-        TESTER.assertComponent(VIRTUAL_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().assertComponent(VIRTUAL_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
                 AjaxFallbackDataTable.class);
     }
 
     protected void createPlainSchema(final String key) {
         browsingToPlainSchemas();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:container:content:add");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer",
                 Modal.class);
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:details:key:textField", key);
         formTester.setValue("content:form:view:details:type:dropDownChoiceField", "3");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
                 + "body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     protected void createAnyTypeClassWithoutSchema(final String name) {
         browsingToAnyTypeClasses();
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        final FormTester formTester = TESTER.newFormTester(
+        final FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:anyTypeClassDetailsPanel:form:key:textField", name);
 
-        TESTER.clearFeedbackMessages();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.clearFeedbackMessages();
+        UTILITY_UI.getTester().clearFeedbackMessages();
     }
 
     protected void createAnyType(final String name) {
         browsingToAnyTypes();
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        final FormTester formTester = TESTER.newFormTester(
+        final FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:anyTypeDetailsPanel:container:form:key:textField", name);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.clearFeedbackMessages();
+        UTILITY_UI.getTester().clearFeedbackMessages();
     }
 
     protected void createRelationshipType(final String name) {
         browsingToRelationshipType();
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        final FormTester formTester = TESTER.newFormTester(
+        final FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:relationshipTypeDetails:container:form:key:textField", name);
         formTester.setValue(
                 "content:relationshipTypeDetails:container:form:description:textField", "test relationshipType");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.clearFeedbackMessages();
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxBrowseITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxBrowseITCase.java
index 8659c6e..52f1ab5 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxBrowseITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxBrowseITCase.java
@@ -36,50 +36,50 @@ public class AjaxBrowseITCase extends AbstractConsoleITCase {
 
     @Test
     public void loginPage() {
-        TESTER.startPage(Login.class);
-        TESTER.assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().startPage(Login.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
     }
 
     @Test
     public void successfulLogin() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.assertRenderedPage(Dashboard.class);
+        UTILITY_UI.getTester().assertRenderedPage(Dashboard.class);
     }
 
     @Test
     public void unsuccessfulLogin() {
         doLogin(ADMIN_UNAME, ADMIN_PWD + 1);
-        TESTER.assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
     }
 
     @Test
     public void browsingBookmarkablePageLink() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
 
-        TESTER.assertRenderedPage(Dashboard.class);
+        UTILITY_UI.getTester().assertRenderedPage(Dashboard.class);
 
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.assertRenderedPage(Realms.class);
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().assertRenderedPage(Realms.class);
 
-        TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage");
-        TESTER.assertRenderedPage(Topology.class);
+        UTILITY_UI.getTester().clickLink("body:idmPages:0:idmPageLI:idmPage");
+        UTILITY_UI.getTester().assertRenderedPage(Topology.class);
 
-        TESTER.clickLink("body:reportsLI:reports");
-        TESTER.assertRenderedPage(Reports.class);
+        UTILITY_UI.getTester().clickLink("body:reportsLI:reports");
+        UTILITY_UI.getTester().assertRenderedPage(Reports.class);
 
-        TESTER.clickLink("body:configurationLI:configurationUL:logsLI:logs");
-        TESTER.assertRenderedPage(Logs.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:logsLI:logs");
+        UTILITY_UI.getTester().assertRenderedPage(Logs.class);
 
-        TESTER.clickLink("body:configurationLI:configurationUL:typesLI:types");
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:typesLI:types");
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:configurationLI:configurationUL:securityLI:security");
-        TESTER.assertRenderedPage(Security.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:securityLI:security");
+        UTILITY_UI.getTester().assertRenderedPage(Security.class);
 
-        TESTER.clickLink("body:configurationLI:configurationUL:policiesLI:policies");
-        TESTER.assertRenderedPage(Policies.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:policiesLI:policies");
+        UTILITY_UI.getTester().assertRenderedPage(Policies.class);
 
-        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
-        TESTER.assertRenderedPage(Notifications.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
+        UTILITY_UI.getTester().assertRenderedPage(Notifications.class);
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
index d0fdb05..233acda 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxPalettePanelITCase.java
@@ -41,10 +41,10 @@ public class AjaxPalettePanelITCase extends AbstractConsoleITCase {
         TestPage<String, AjaxPalettePanel<String>> testPage =
                 new TestPage.Builder<String, AjaxPalettePanel<String>>().build(
                         new AjaxPalettePanel.Builder<String>().setAllowOrder(true).build(
-                        TestPage.FIELD, SELECTED, ALL));
-        TESTER.startPage(testPage);
+                                TestPage.FIELD, SELECTED, ALL));
+        UTILITY_UI.getTester().startPage(testPage);
 
-        FormTester formTester = TESTER.newFormTester(testPage.getForm().getId());
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(testPage.getForm().getId());
         formTester.submit();
 
         Collection<String> list = testPage.getFieldPanel().getModelCollection();
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
index 4153b59..50dd1a6 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AjaxTextFieldITCase.java
@@ -38,8 +38,8 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
         TestPage<String, AjaxTextFieldPanel> testPage =
                 new TestPage.Builder<String, AjaxTextFieldPanel>().build(
                         new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
-        TESTER.startPage(testPage);
-        FormTester formTester = TESTER.newFormTester(testPage.getForm().getId());
+        UTILITY_UI.getTester().startPage(testPage);
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(testPage.getForm().getId());
         formTester.setValue("field:textField", "");
         formTester.submit();
         assertNull(testPage.getFieldPanel().getField().getDefaultModelObject());
@@ -52,8 +52,8 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
                         new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         String text = "sometext";
         TEXT_MODEL.setObject(text);
-        TESTER.startPage(testPage);
-        assertTrue(TESTER.getLastResponseAsString().contains(Strings.escapeMarkup(text)));
+        UTILITY_UI.getTester().startPage(testPage);
+        assertTrue(UTILITY_UI.getTester().getLastResponseAsString().contains(Strings.escapeMarkup(text)));
     }
 
     @Test
@@ -63,8 +63,8 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
                         new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         testPage.getFieldPanel().getField().setRequired(false);
         testPage.getFieldPanel().getField().add(StringValidator.minimumLength(2));
-        TESTER.startPage(testPage);
-        FormTester formTester = TESTER.newFormTester(testPage.getForm().getId());
+        UTILITY_UI.getTester().startPage(testPage);
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(testPage.getForm().getId());
         formTester.setValue("field:textField", "");
         formTester.submit();
         assertNull(testPage.getFieldPanel().getDefaultModelObject());
@@ -78,9 +78,9 @@ public class AjaxTextFieldITCase extends AbstractConsoleITCase {
                         new AjaxTextFieldPanel(TestPage.FIELD, TestPage.FIELD, TEXT_MODEL));
         testPage.getFieldPanel().setOutputMarkupId(true);
         testPage.getFieldPanel().getField().setRequired(true);
-        TESTER.startPage(testPage);
-        TESTER.assertLabel("form:field:field-label", "field");
-        TESTER.assertVisible("form:field:required");
-        TESTER.assertVisible("form:field:externalAction");
+        UTILITY_UI.getTester().startPage(testPage);
+        UTILITY_UI.getTester().assertLabel("form:field:field-label", "field");
+        UTILITY_UI.getTester().assertVisible("form:field:required");
+        UTILITY_UI.getTester().assertVisible("form:field:externalAction");
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
index 9138a9c..534d523 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyObjectsITCase.java
@@ -42,17 +42,19 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
 
     @Test
     public void filteredSearch() {
-        TESTER.clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
 
-        TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
                 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:"
                 + "searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:value:"
                 + "textField", TextField.class);
@@ -60,19 +62,21 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
 
     @Test
     public void clickToClonePrinter() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:1:action:action");
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.submit("buttons:cancel");
@@ -80,49 +84,52 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
 
     @Test
     public void editPrinter() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:"
                 + "firstLevelContainer:first:container:content:group:beans:0:fields:0:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("key", CONTAINER
+        component = UTILITY_UI.findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
@@ -130,16 +137,16 @@ public class AnyObjectsITCase extends AbstractConsoleITCase {
 
     @Test
     public void checkDeletePrinterLink() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:5:action:action",
                 IndicatingOnConfirmAjaxLink.class);
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
index 84d5268..4e265d5 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypeClassesITCase.java
@@ -37,14 +37,16 @@ public class AnyTypeClassesITCase extends AbstractTypesITCase {
     public void read() {
         browsingToAnyTypeClasses();
 
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, "csv");
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, "csv");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
 
         // click edit
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                BaseModal.class);
     }
 
     @Test
@@ -52,33 +54,34 @@ public class AnyTypeClassesITCase extends AbstractTypesITCase {
         browsingToAnyTypeClasses();
         final String anyTypeClassTest = "anyTypeClassTest";
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:anyTypeClassDetailsPanel:form:key:textField", anyTypeClassTest);
         formTester.setValue(
                 "content:anyTypeClassDetailsPanel:form:container:derSchemas:paletteField:recorder", "mderiveddata");
 
-        TESTER.clearFeedbackMessages();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.clearFeedbackMessages();
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
-        TESTER.assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable",
                 AjaxFallbackDataTable.class);
 
-        TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
 
-        Component result = findComponentByProp(KEY, DATATABLE_PATH, anyTypeClassTest);
+        Component result = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, anyTypeClassTest);
 
-        TESTER.assertLabel(result.getPageRelativePath() + ":cells:3:cell", "[mderiveddata]");
+        UTILITY_UI.getTester().assertLabel(result.getPageRelativePath() + ":cells:3:cell", "[mderiveddata]");
     }
 
     @Test
@@ -89,42 +92,43 @@ public class AnyTypeClassesITCase extends AbstractTypesITCase {
         createPlainSchema(plainSchema);
         browsingToAnyTypeClasses();
 
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, name);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
 
         // click edit
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue(
                 "content:anyTypeClassDetailsPanel:form:container:plainSchemas:paletteField:recorder", plainSchema);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        component = findComponentByProp(KEY, DATATABLE_PATH, name);
+        component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
 
         // click delete
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
-        component = findComponentByProp(KEY, DATATABLE_PATH, name);
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
 
         assertNull(component);
     }
@@ -134,28 +138,28 @@ public class AnyTypeClassesITCase extends AbstractTypesITCase {
         final String anyTypeClassName = "zStringDelete";
         createAnyTypeClassWithoutSchema(anyTypeClassName);
         browsingToAnyTypeClasses();
-        TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
 
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, anyTypeClassName);
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, anyTypeClassName);
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
 
         // click delete
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        component = findComponentByProp(KEY, DATATABLE_PATH, anyTypeClassName);
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, anyTypeClassName);
 
         assertNull(component);
     }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
index 8ab835b..5b6034f 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/AnyTypesITCase.java
@@ -37,20 +37,22 @@ public class AnyTypesITCase extends AbstractTypesITCase {
     @Test
     public void read() {
         browsingToAnyTypes();
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 DATATABLE_PATH
                 + ":tablePanel:groupForm:"
                 + "checkgroup:dataTable:body:rows:1:cells:1:cell", Label.class);
 
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, "GROUP");
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, "GROUP");
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
 
         // click edit
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                BaseModal.class);
     }
 
     @Test
@@ -58,35 +60,37 @@ public class AnyTypesITCase extends AbstractTypesITCase {
         browsingToAnyTypes();
         final String anyTypeTest = "anyTypeTest2";
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        final FormTester formTester = TESTER.newFormTester(
+        final FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:anyTypeDetailsPanel:container:form:key:textField", anyTypeTest);
         formTester.setValue("content:anyTypeDetailsPanel:container:form:classes:paletteField:recorder", "csv");
 
-        TESTER.clearFeedbackMessages();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.clearFeedbackMessages();
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
-        TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
 
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, anyTypeTest);
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, anyTypeTest);
 
-        TESTER.assertLabel(component.getPageRelativePath() + ":cells:1:cell", anyTypeTest);
-        TESTER.assertLabel(component.getPageRelativePath() + ":cells:3:cell", "[csv]");
+        UTILITY_UI.getTester().assertLabel(component.getPageRelativePath() + ":cells:1:cell", anyTypeTest);
+        UTILITY_UI.getTester().assertLabel(component.getPageRelativePath() + ":cells:3:cell", "[csv]");
 
         // issue SYNCOPE-1111
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.assertRenderedPage(Realms.class);
-        TESTER.assertLabel("body:content:body:container:content:tabbedPanel:tabs-container:tabs:4:link:title",
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().assertRenderedPage(Realms.class);
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:container:content:tabbedPanel:tabs-container:tabs:4:link:title",
                 anyTypeTest);
     }
 
@@ -96,24 +100,25 @@ public class AnyTypesITCase extends AbstractTypesITCase {
         createAnyTypeClassWithoutSchema(name);
         browsingToAnyTypes();
 
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, "GROUP");
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, "GROUP");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
 
         // click edit
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        final FormTester formTester = TESTER.newFormTester(
+        final FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue(
                 "content:anyTypeDetailsPanel:container:form:classes:paletteField:recorder", name + ",minimal group");
 
-        TESTER.clearFeedbackMessages();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clearFeedbackMessages();
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
     }
 
     @Test
@@ -122,28 +127,28 @@ public class AnyTypesITCase extends AbstractTypesITCase {
         createAnyType(name);
         browsingToAnyTypes();
 
-        TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
-        Component component = findComponentByProp(KEY, DATATABLE_PATH, name);
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
+        Component component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
 
-        TESTER.getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
 
         // click delete
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        component = findComponentByProp(KEY, DATATABLE_PATH, name);
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        component = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
 
         assertNull(component);
     }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BatchesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BatchesITCase.java
index d6f72a1..cab8a3d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BatchesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/BatchesITCase.java
@@ -44,68 +44,70 @@ public class BatchesITCase extends AbstractConsoleITCase {
 
     @Test
     public void users() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        FormTester formTester = TESTER.newFormTester(CONTAINER + "searchContainer:resultTable:tablePanel:groupForm");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(CONTAINER
+                + "searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 2);
 
-        TESTER.executeAjaxEvent(CONTAINER + "searchContainer:resultTable:tablePanel:batchLink",
+        UTILITY_UI.getTester().executeAjaxEvent(CONTAINER + "searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(CONTAINER
+        UTILITY_UI.getTester().assertComponent(CONTAINER
                 + "searchContainer:resultTable:batchModal:form:content:content:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("username", CONTAINER
+        assertNotNull(UTILITY_UI.findComponentByProp("username", CONTAINER
                 + "searchContainer:resultTable:batchModal:form:content:content:container", "rossini"));
     }
 
     @Test
     public void userResource() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         // manage resource
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
                 + ":outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:5:"
                 + "action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        component = findComponentByProp("resource",
+        component = UTILITY_UI.findComponentByProp("resource",
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "resource-csv");
         assertNotNull(component);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 0);
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("resource", TAB_PANEL + "outerObjectsRepeater:2:outer:"
+        assertNotNull(UTILITY_UI.findComponentByProp("resource", TAB_PANEL + "outerObjectsRepeater:2:outer:"
                 + "form:content:status:secondLevelContainer:second:container", "resource-csv"));
     }
 
@@ -121,243 +123,257 @@ public class BatchesITCase extends AbstractConsoleITCase {
 
     private void userStatusBatch(final int index, final String resource) {
         // suspend 
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         // enable
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
                 + ":outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:4:"
                 + "action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        component = findComponentByProp("resource",
+        component = UTILITY_UI.findComponentByProp("resource",
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", resource);
 
-        component = TESTER.getComponentFromLastRenderedPage(component.getPageRelativePath() + ":cells:1:cell:check");
+        component = UTILITY_UI.getTester().getComponentFromLastRenderedPage(component.getPageRelativePath()
+                + ":cells:1:cell:check");
         assertEquals(Status.ACTIVE, StatusBean.class.cast(component.getDefaultModelObject()).getStatus());
         assertEquals(resource, StatusBean.class.cast(component.getDefaultModelObject()).getResource());
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", index);
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
         // suspend link
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:secondLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:2:outer:form:content:status:secondLevelContainer:"
                 + "second:container:actions:actionRepeater:0:action:action",
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertLabel(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container:selectedObjects:body:rows:1:cells:4:cell", "SUCCESS");
 
-        TESTER.executeAjaxEvent(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
                 + "outerObjectsRepeater:2:outer:form:content:status:secondLevelContainer:back",
                 Constants.ON_CLICK);
 
-        component = findComponentByProp("resource",
+        component = UTILITY_UI.findComponentByProp("resource",
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", resource);
 
-        component = TESTER.getComponentFromLastRenderedPage(component.getPageRelativePath() + ":cells:1:cell:check");
+        component = UTILITY_UI.getTester().getComponentFromLastRenderedPage(component.getPageRelativePath()
+                + ":cells:1:cell:check");
         assertEquals(Status.SUSPENDED, StatusBean.class.cast(component.getDefaultModelObject()).getStatus());
         assertEquals(resource, StatusBean.class.cast(component.getDefaultModelObject()).getResource());
 
         // re-activate
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         // enable
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
                 + ":outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:4:"
                 + "action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", index);
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
         // suspend link
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:secondLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:2:outer:form:content:status:secondLevelContainer:"
                 + "second:container:actions:actionRepeater:1:action:action",
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertLabel(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container:selectedObjects:body:rows:1:cells:4:cell", "SUCCESS");
 
-        TESTER.executeAjaxEvent(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
                 + "outerObjectsRepeater:2:outer:form:content:status:secondLevelContainer:back",
                 Constants.ON_CLICK);
 
-        component = findComponentByProp("resource",
+        component = UTILITY_UI.findComponentByProp("resource",
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", resource);
 
-        component = TESTER.getComponentFromLastRenderedPage(component.getPageRelativePath() + ":cells:1:cell:check");
+        component = UTILITY_UI.getTester().getComponentFromLastRenderedPage(component.getPageRelativePath()
+                + ":cells:1:cell:check");
         assertEquals(Status.ACTIVE, StatusBean.class.cast(component.getDefaultModelObject()).getStatus());
         assertEquals(resource, StatusBean.class.cast(component.getDefaultModelObject()).getResource());
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:dialog:footer:buttons:0:button",
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:2:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
     }
 
     @Test
     public void groupResource() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         // manage resource
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
                 + ":outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:6:"
                 + "action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:"
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:"
                 + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:topToolbars:"
                 + "toolbars:1:headers:2:header:orderByLink", true);
 
-        component = findComponentByProp("resource",
+        component = UTILITY_UI.findComponentByProp("resource",
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "resource-ldap");
         assertNotNull(component);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 0);
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("resource", TAB_PANEL + "outerObjectsRepeater:2:outer:"
+        assertNotNull(UTILITY_UI.findComponentByProp("resource", TAB_PANEL + "outerObjectsRepeater:2:outer:"
                 + "form:content:status:secondLevelContainer:second:container:selectedObjects", "resource-ldap"));
     }
 
     @Test
     public void printerResource() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
 
-        Component component = findComponentByProp("key", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("key", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "8559d14d-58c2-46eb-a2d4-a7d35161e8f8");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
         // manage resource
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:1"
                 + ":outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:2:"
                 + "action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", WebMarkupContainer.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:"
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:first:"
                 + "container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:topToolbars:"
                 + "toolbars:1:headers:2:header:orderByLink", true);
 
-        component = findComponentByProp("resource",
+        component = UTILITY_UI.findComponentByProp("resource",
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "resource-db-scripted");
         assertNotNull(component);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 0);
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:2:outer:form:content:status:"
                 + "secondLevelContainer:second:container", WebMarkupContainer.class);
 
-        assertNotNull(findComponentByProp("resource", TAB_PANEL + "outerObjectsRepeater:2:outer:"
+        assertNotNull(UTILITY_UI.findComponentByProp("resource", TAB_PANEL + "outerObjectsRepeater:2:outer:"
                 + "form:content:status:secondLevelContainer:second:container:selectedObjects", "resource-db-scripted"));
     }
 
     @Test
     public void executePropagationTask() {
-        TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage");
+        UTILITY_UI.getTester().clickLink("body:idmPages:0:idmPageLI:idmPage");
 
-        Component component = findComponentByProp("key", "body:resources", "resource-testdb");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "resource-testdb");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:propagation");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:container:content:togglePanelContainer:container:actions:propagation");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm");
         assertNotNull(formTester);
 
         formTester.select("checkgroup", 0);
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:batchLink",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:"
                 + "second:container:selectedObjects:body:rows:1:cells:1:cell", Label.class);
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
index 66902e4..fe42c23 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/DisplayAttributesITCase.java
@@ -29,29 +29,31 @@ public class DisplayAttributesITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.assertRenderedPage(Realms.class);
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().assertRenderedPage(Realms.class);
     }
 
     @Test
     public void readAndSet() {
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:container:content:"
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:container:content:"
                 + "searchContainer:tablehandling:actionRepeater:1:action:action");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:3:outer",
                 Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:3:outer:form");
 
         formTester.setValue("content:container:details:paletteField:recorder", "status");
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
                 + "3:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.clearFeedbackMessages();
+        UTILITY_UI.getTester().clearFeedbackMessages();
     }
 }
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 d89eaff..da5ed9c 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
@@ -44,75 +44,83 @@ public class GroupsITCase extends AbstractConsoleITCase {
 
     @Test
     public void read() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "artDirector");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:3:action:action");
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
                 + "outerObjectsRepeater:7:outer:container:content:togglePanelContainer:membersForm");
 
         formTester.select("type:dropDownChoiceField", 0);
         formTester.submit("changeit");
 
-        TESTER.assertModelValue(TAB_PANEL
+        UTILITY_UI.getTester().assertModelValue(TAB_PANEL
                 + "outerObjectsRepeater:6:outer:dialog:header:header-label", "USER members of artDirector");
-        assertNotNull(findComponentByProp("username", TAB_PANEL
+        assertNotNull(UTILITY_UI.findComponentByProp("username", TAB_PANEL
                 + "outerObjectsRepeater:6:outer:form:content:searchResult:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini"));
 
-        TESTER.executeAjaxEvent(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
                 + "outerObjectsRepeater:6:outer:dialog:footer:buttons:0:button", Constants.ON_CLICK);
     }
 
     @Test
     public void filteredSearch() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
 
-        TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
                 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
                 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:"
                 + "value:textField", TextField.class);
     }
 
     private void cloneGroup(final String group) {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", group);
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:1:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.setValue("view:name:textField", group + "_clone");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("name", CONTAINER
+        component = UTILITY_UI.findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", group + "_clone");
         assertNotNull(component);
     }
@@ -121,123 +129,131 @@ public class GroupsITCase extends AbstractConsoleITCase {
     public void clickToCloneGroup() {
         cloneGroup("director");
 
-        Component component = findComponentByProp("name", CONTAINER
+        Component component = UTILITY_UI.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(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:9:action:action");
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(TAB_PANEL
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:9:action:action"), Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void editGroup() {
         cloneGroup("director");
 
-        Component component = findComponentByProp("name", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director_clone");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:name:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
         // -------------------------
         // SYNCOPE-1026
         // -------------------------
-        assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:container:content:tabbedPanel:panel:"
+        assertEquals(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
+                "body:content:body:container:content:tabbedPanel:panel:"
                 + "searchResult:outerObjectsRepeater:0:outer:form:content:form:view:ownerContainer:search:userOwner:"
                 + "textField").getDefaultModelObjectAsString(), "[823074dc-d280-436d-a7dd-07399fae48ec] puccini");
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:ownerContainer:search:userOwnerReset");
 
-        assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:container:content:tabbedPanel:panel:"
+        assertEquals(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
+                "body:content:body:container:content:tabbedPanel:panel:"
                 + "searchResult:outerObjectsRepeater:0:outer:form:content:form:view:ownerContainer:search:userOwner:"
                 + "textField").getDefaultModelObjectAsString(), StringUtils.EMPTY);
         // -------------------------
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:0:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("name", CONTAINER
+        component = UTILITY_UI.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(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(TAB_PANEL
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:9:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(TAB_PANEL
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:9:action:action"), Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void checkDeleteGroupLink() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:2:link");
 
-        Component component = findComponentByProp("name", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("name", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "director");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:9:action:action", IndicatingOnConfirmAjaxLink.class);
     }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
index 5cf9eaa..c84ca1d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java
@@ -41,63 +41,64 @@ public class LogsITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:configurationLI:configurationUL:logsLI:logs");
-        TESTER.assertRenderedPage(Logs.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:logsLI:logs");
+        UTILITY_UI.getTester().assertRenderedPage(Logs.class);
     }
 
     @Test
     public void readCoreLogs() {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
-        TESTER.assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
+        UTILITY_UI.getTester().assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
 
         assertNotNull(searchLog(KEY, CONTAINER_PATH, "io.swagger"));
     }
 
     @Test
     public void updateCoreLogs() {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
-        TESTER.assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
+        UTILITY_UI.getTester().assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
 
         Component result = searchLog(KEY, CONTAINER_PATH, "io.swagger");
         assertNotNull(result);
 
-        TESTER.getRequest().addParameter(
+        UTILITY_UI.getTester().getRequest().addParameter(
                 result.getPageRelativePath() + ":fields:1:field:dropDownChoiceField", "6");
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 result.getPageRelativePath() + ":fields:1:field:dropDownChoiceField", DropDownChoice.class);
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 result.getPageRelativePath() + ":fields:1:field:dropDownChoiceField", Constants.ON_CHANGE);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
     }
 
     @Test
     public void readConsoleLogs() {
-        TESTER.assertComponent("body:content:tabbedPanel:tabs-container:tabs:1:link", AjaxFallbackLink.class);
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
-        TESTER.assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:tabs-container:tabs:1:link",
+                AjaxFallbackLink.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
 
         assertNotNull(searchLog(KEY, CONTAINER_PATH, "org.apache.wicket"));
     }
 
     @Test
     public void updateConsoleLogs() {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
-        TESTER.assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().assertComponent(CONTAINER_PATH, WebMarkupContainer.class);
 
         Component result = searchLog(KEY, CONTAINER_PATH, "org.apache.wicket");
         assertNotNull(result);
 
-        TESTER.getRequest().addParameter(
+        UTILITY_UI.getTester().getRequest().addParameter(
                 result.getPageRelativePath() + ":fields:1:field:dropDownChoiceField", "6");
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 result.getPageRelativePath() + ":fields:1:field:dropDownChoiceField", Constants.ON_CHANGE);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
     }
 
     private Component searchLog(final String property, final String searchPath, final String key) {
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
+        Component component = UTILITY_UI.getTester().getComponentFromLastRenderedPage(searchPath);
 
         Component result = component.getPage().
                 visitChildren(ListItem.class, (final ListItem<LoggerTO> object, final IVisit<Component> visit) -> {
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 58e4c7d..be9bec3 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
@@ -35,16 +35,17 @@ public class NotificationsITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
-        TESTER.assertRenderedPage(Notifications.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
+        UTILITY_UI.getTester().assertRenderedPage(Notifications.class);
     }
 
     private void createNotification(final String sender, final String subject) {
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
 
         formTester.select("content:form:view:template:dropDownChoiceField", 2);
@@ -52,31 +53,34 @@ public class NotificationsITCase extends AbstractConsoleITCase {
         formTester.setValue("content:form:view:sender:textField", sender);
         formTester.setValue("content:form:view:subject:textField", subject);
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
         formTester.submit("content:form:buttons:next");
-        TESTER.assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
 
         // -------------------------------
         // recipients
         // -------------------------------
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form:content:form:"
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form:content:form:"
                 + "view:staticRecipients:multiValueContainer:innerForm:content:panelPlus:add", Constants.ON_CLICK);
         formTester.setValue("content:form:view:staticRecipients:multiValueContainer:innerForm:content:view:0:panel:"
                 + "textField", "recipient@syncope.org");
         formTester.setValue("content:form:view:selfAsRecipient:checkboxField", true);
         formTester.setValue("content:form:view:recipientAttrName:textField", "email");
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
         formTester.submit("content:form:buttons:next");
-        TESTER.assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
 
         // -------------------------------
         // generate event to populate eventsPanel
         // -------------------------------
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:eventSelection:categoryContainer:category:dropDownChoiceField", "0");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form:"
                 + "content:form:view:eventSelection:categoryContainer:category:dropDownChoiceField",
                 Constants.ON_CHANGE);
         // -------------------------------
@@ -85,7 +89,8 @@ public class NotificationsITCase extends AbstractConsoleITCase {
         // select event template
         // -------------------------------
         formTester.setValue("content:form:view:eventSelection:eventsContainer:eventsPanel:successGroup", "check0");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form:content:"
                 + "form:view:eventSelection:eventsContainer:eventsPanel:successGroup",
                 Constants.ON_CLICK);
         // -------------------------------
@@ -93,24 +98,26 @@ public class NotificationsITCase extends AbstractConsoleITCase {
         formTester.setValue("content:form:view:eventSelection:categoryContainer:category:dropDownChoiceField", "0");
         formTester.setValue("content:form:view:eventSelection:eventsContainer:eventsPanel:successGroup", "check0");
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
         formTester.submit("content:form:buttons:next");
-        TESTER.assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
-        TESTER.cleanupFeedbackMessages();
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
         formTester.submit("content:form:buttons:finish");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
     }
 
     @Test
     public void read() {
-        assertNull(findComponentByProp(KEY, "body:content:tabbedPanel:panel:container:content:searchContainer:"
+        assertNull(UTILITY_UI.findComponentByProp(KEY,
+                "body:content:tabbedPanel:panel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", 1));
     }
 
@@ -122,79 +129,89 @@ public class NotificationsITCase extends AbstractConsoleITCase {
     @Test
     public void update() {
         createNotification("update@syncope.org", "createToUpdate");
-        Component result = findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
+        Component result = UTILITY_UI.findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "createToUpdate");
 
         // edit notification
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void execute() {
-        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
 
-        Component result = findComponentByProp("subject",
+        Component result = UTILITY_UI.findComponentByProp("subject",
                 "body:content:tabbedPanel:panel:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "Password Reset request");
 
         // notification tasks link
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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:4:outer:form:"
+        UTILITY_UI.getTester().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:4:outer:form:"
+        result = UTILITY_UI.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");
 
         // execute task
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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 successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:notificationsLI:notifications");
 
-        result = findComponentByProp("subject", "body:content:tabbedPanel:panel:container:content:"
+        result = UTILITY_UI.findComponentByProp("subject", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "Password Reset request");
 
         // notification tasks link
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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:4:outer:form:"
+        result = UTILITY_UI.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");
 
         // view task
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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:4:outer:form:content:tasks:"
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
                 + "secondLevelContainer:title", "Executions");
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:tasks:"
                 + "secondLevelContainer:back");
 
-        assertNotNull(findComponentByProp("subject", "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:"
+        assertNotNull(UTILITY_UI.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"));
     }
@@ -202,26 +219,26 @@ public class NotificationsITCase extends AbstractConsoleITCase {
     @Test
     public void delete() {
         createNotification("delete@syncope.org", "createToDelete");
-        Component result = findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
+        Component result = UTILITY_UI.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");
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
 
         // delete task
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
+        assertNull(UTILITY_UI.findComponentByProp("Subject", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "createToDelete"));
     }
 }
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 589993a..16140e6 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
@@ -34,93 +34,97 @@ public class ParametersITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:keymasterLI:keymasterUL:parametersLI:parameters");
-        TESTER.assertRenderedPage(Parameters.class);
+        UTILITY_UI.getTester().clickLink("body:keymasterLI:keymasterUL:parametersLI:parameters");
+        UTILITY_UI.getTester().assertRenderedPage(Parameters.class);
     }
 
     @Test
     public void readParameter() {
-        TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
-        assertNotNull(findComponentByProp(SCHEMA, "body:content:parametersPanel", "authentication.statuses"));
+        UTILITY_UI.getTester().assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
+        assertNotNull(UTILITY_UI.findComponentByProp(SCHEMA, "body:content:parametersPanel", "authentication.statuses"));
     }
 
     @Test
     public void createParameter() {
-        TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
 
-        TESTER.clickLink("body:content:parametersPanel:container:content:add");
-        TESTER.assertComponent("body:content:parametersPanel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:parametersPanel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:parametersPanel:outerObjectsRepeater:0:outer", Modal.class);
 
         FormTester formTester =
-                TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
+                UTILITY_UI.getTester().newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:parametersCreateWizardPanel:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:schema:textField", "testParam");
         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:attrs:0:panel:textField", "test");
 
         formTester.submit("content:parametersCreateWizardPanel:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.assertRenderedPage(Parameters.class);
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Parameters.class);
     }
 
     @Test
     public void updateParameter() {
-        TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
 
-        Component result = findComponentByProp(SCHEMA, "body:content:parametersPanel", "notification.maxRetries");
+        Component result = UTILITY_UI.findComponentByProp(SCHEMA, "body:content:parametersPanel",
+                "notification.maxRetries");
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
         FormTester formTester =
-                TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
+                UTILITY_UI.getTester().newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:parametersCreateWizardPanel:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:attrs:0:panel:spinner", "70");
-                             
+
         formTester.submit("content:parametersCreateWizardPanel:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.assertRenderedPage(Parameters.class);
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Parameters.class);
     }
 
     @Test
     public void deleteParameter() {
-        TESTER.assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:content:parametersPanel", WebMarkupContainer.class);
 
-        TESTER.clickLink("body:content:parametersPanel:container:content:add");
-        TESTER.assertComponent("body:content:parametersPanel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:parametersPanel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:parametersPanel:outerObjectsRepeater:0:outer", Modal.class);
 
         FormTester formTester =
-                TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
+                UTILITY_UI.getTester().newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:parametersCreateWizardPanel:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:parametersPanel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:schema:textField", "deleteParam");
         formTester.setValue("content:parametersCreateWizardPanel:form:view:content:attrs:0:panel:textField", "test");
 
         formTester.submit("content:parametersCreateWizardPanel:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        Component result = findComponentByProp(SCHEMA, "body:content:parametersPanel", "deleteParam");
+        Component result = UTILITY_UI.findComponentByProp(SCHEMA, "body:content:parametersPanel", "deleteParam");
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink("body:content:parametersPanel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 }
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 8198ea6..af2c20f 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
@@ -37,228 +37,243 @@ public class PoliciesITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:configurationLI:configurationUL:policiesLI:policies");
-        TESTER.assertRenderedPage(Policies.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:policiesLI:policies");
+        UTILITY_UI.getTester().assertRenderedPage(Policies.class);
     }
 
     private void createAccountPolicy(final String description) {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description);
         formTester.setValue("content:fields:1:field:spinner", "1");
         formTester.setValue("content:fields:2:field:checkboxField", true);
         formTester.setValue("content:fields:3:field:paletteField:recorder", "ws-target-resource-nopropagation4");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:container:content:"
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", WebMarkupContainer.class);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:0:field:textField", description);
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:1:field:spinner", 1);
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:2:field:checkboxField", true);
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:3:field:paletteField:recorder", "ws-target-resource-nopropagation4");
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
 
-        component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        component = UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
         assertNotNull(component);
     }
 
     private void createPasswordPolicy(final String description) {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description);
         formTester.setValue("content:fields:1:field:spinner", "1");
         formTester.setValue("content:fields:2:field:checkboxField", true);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:0:field:textField", description);
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:1:field:spinner", 1);
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:2:field:checkboxField", true);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
     }
 
     private void createPullPolicy(final String description) {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit",
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:0:field:textField", description);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
     }
 
     private void deleteAccountPolicy(final String description) {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:0:link");
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
     }
 
     private void deletePasswordPolicy(final String description) {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:1:link");
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
     }
 
     private void deletePullPolicy(final String description) {
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:2:link");
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:3:action:action"),
                 Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
     }
 
     @Test
     public void read() {
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "an account policy"));
     }
 
@@ -274,37 +289,40 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "My Test Account Policy to be cloned";
         createAccountPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description + "2");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
 
         deleteAccountPolicy(description);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description + "2"));
 
         deleteAccountPolicy(description + "2");
@@ -322,37 +340,40 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "My Test Password Policy to be cloned";
         createPasswordPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description + "2");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
 
         deletePasswordPolicy(description);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description + "2"));
 
         deletePasswordPolicy(description + "2");
@@ -370,37 +391,40 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "My Test Pull Policy to be cloned";
         createPullPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description + "2");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description));
 
         deletePullPolicy(description);
 
-        assertNotNull(findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        assertNotNull(UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description + "2"));
 
         deletePullPolicy(description + "2");
@@ -411,45 +435,50 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "Account Policy To Be Updated";
         createAccountPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:1:field:spinner", "2");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        component = UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:1:field:spinner", 2);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
 
@@ -457,38 +486,42 @@ public class PoliciesITCase extends AbstractConsoleITCase {
     }
 
     private void composeDefaultAccountPolicy(final String policyDescription) {
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", policyDescription);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:add");
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.setValue("view:rule:dropDownChoiceField", "0");
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:utility");
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
     }
 
     @Test
@@ -504,45 +537,50 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "Password Policy To Be Updated";
         createPasswordPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:1:field:spinner", "2");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        component = UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:1:field:spinner", 2);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
 
@@ -554,38 +592,42 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "Password Policy To Be Composed";
         createPasswordPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:add");
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.setValue("view:rule:dropDownChoiceField", "0");
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:4:"
                 + "outer:form:content:container:content:wizard:form");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:4:outer:form:content:container:content:utility");
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
         deletePasswordPolicy(description);
     }
@@ -595,45 +637,50 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "Pull Policy To Be Updated";
         createPullPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer");
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:fields:0:field:textField", description + "2");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
-        component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        component = UTILITY_UI.findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description + "2");
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        TESTER.assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
+        UTILITY_UI.getTester().assertModelValue("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form"
                 + ":content:fields:0:field:textField", description + "2");
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
 
@@ -645,42 +692,46 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         final String description = "Pull Policy To Be Composed";
         createPullPolicy(description);
 
-        Component component = findComponentByProp("description", "body:content:tabbedPanel:panel:container:content:"
+        Component component = UTILITY_UI.findComponentByProp("description",
+                "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", description);
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer",
+                Modal.class);
 
-        Component modal = TESTER.getComponentFromLastRenderedPage(
+        Component modal = UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form");
 
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:content:"
                 + "correlationRules:multiValueContainer:innerForm:content:panelPlus:add", Constants.ON_CLICK);
 
-        component = findComponentById(
+        component = UTILITY_UI.findComponentById(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:content:"
                 + "correlationRules:multiValueContainer:innerForm:content:view:0:panel:rule",
                 "dropDownChoiceField");
         assertNotNull(component);
 
         formTester.setValue(component, "0");
-        TESTER.executeAjaxEvent(component, Constants.ON_CHANGE);
+        UTILITY_UI.getTester().executeAjaxEvent(component, Constants.ON_CHANGE);
         formTester.setValue(component, "0");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        closeCallBack(modal);
+        UTILITY_UI.closeCallBack(modal);
 
         deletePullPolicy(description);
     }
@@ -693,67 +744,69 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         composeDefaultAccountPolicy(description);
 
         // goto realms
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.assertRenderedPage(Realms.class);
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().assertRenderedPage(Realms.class);
 
         // edit root realm
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:1:action:action");
-        TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
 
         // set new account policy
-        TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:form:view:details:container:"
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:form:view:details:container:"
                 + "accountPolicy:field-label", "Account Policy");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:outerObjectsRepeater:0:outer:form:content:form");
         formTester.select("view:details:container:accountPolicy:dropDownChoiceField", 0);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action",
                 Constants.ON_CLICK);
 
         // create user with a valid account name
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username",
+        Component component = UTILITY_UI.findComponentByProp("username",
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:container:content:"
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:"
                 + "1:outer:container:content:togglePanelContainer:container:actions:actions:actionRepeater:1:"
                 + "action:action");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
                 TextField.class);
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
@@ -762,42 +815,42 @@ public class PoliciesITCase extends AbstractConsoleITCase {
         formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:14:panel:textField", "ross1030@apace.org");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:"
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("username",
+        component = UTILITY_UI.findComponentByProp("username",
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:container:content:"
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini_clone");
         assertNotNull(component);
 
         // delete the new user
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
 
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "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(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "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 successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        component = findComponentByProp("username",
+        component = UTILITY_UI.findComponentByProp("username",
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:container:content:"
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini_clone");
         assertNull(component);
 
         // delete default policy
-        TESTER.clickLink("body:configurationLI:configurationUL:policiesLI:policies");
-        TESTER.assertRenderedPage(Policies.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:policiesLI:policies");
+        UTILITY_UI.getTester().assertRenderedPage(Policies.class);
         deleteAccountPolicy(description);
     }
 }
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 58e09c7..16b7068 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
@@ -34,218 +34,241 @@ public class RealmsITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.assertRenderedPage(Realms.class);
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().assertRenderedPage(Realms.class);
     }
 
     @Test
     public void read() {
-        TESTER.assertLabel("body:content:body:container:content:tabbedPanel:panel:container:accountPolicy:field-label",
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:container:content:tabbedPanel:panel:container:accountPolicy:field-label",
                 "Account Policy");
     }
 
     @Test
     public void create() {
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:0:action:action");
-        TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:outerObjectsRepeater:0:outer:form:content:form");
         formTester.setValue("view:details:container:generics:name:textField", "testRealm");
 
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+        UTILITY_UI.getTester().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");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
 
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:5:button",
+        UTILITY_UI.getTester().
+                executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:5:button",
                 Constants.ON_CLICK);
 
-        TESTER.assertLabel("body:content:realmChoicePanel:container:realm", "/testRealm");
+        UTILITY_UI.getTester().assertLabel("body:content:realmChoicePanel:container:realm", "/testRealm");
 
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(
                 "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:3:action:action");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertLabel("body:content:body:container:content:tabbedPanel:panel:container:accountPolicy:field-label",
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:container:content:tabbedPanel:panel:container:accountPolicy:field-label",
                 "Account Policy");
 
-        TESTER.assertLabel("body:content:realmChoicePanel:container:realm", "/");
+        UTILITY_UI.getTester().assertLabel("body:content:realmChoicePanel:container:realm", "/");
     }
 
     @Test
     public void update() {
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:1:action:action");
-        TESTER.assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:outerObjectsRepeater:0:outer:form:content:form");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
                 + "0:action:action", Constants.ON_CLICK);
     }
 
     @Test
     public void addUserTemplate() {
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:4:button",
+        UTILITY_UI.getTester().
+                executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:4:button",
                 Constants.ON_CLICK);
 
-        TESTER.assertLabel("body:content:realmChoicePanel:container:realm", "/odd");
+        UTILITY_UI.getTester().assertLabel("body:content:realmChoicePanel:container:realm", "/odd");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:2:action:action");
-        TESTER.assertComponent("body:content:toggleTemplates", TogglePanel.class);
+        UTILITY_UI.getTester().assertComponent("body:content:toggleTemplates", TogglePanel.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
         formTester.setValue("type:dropDownChoiceField", "0");
         formTester.submit("changeit");
 
-        TESTER.assertComponent("body:content:templateModal", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:templateModal", Modal.class);
 
-        formTester = TESTER.newFormTester("body:content:templateModal:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:templateModal:form:content:form");
         formTester.setValue("view:username:textField", "'k' + firstname");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertLabel("body:content:realmChoicePanel:container:realm", "/odd");
+        UTILITY_UI.getTester().assertLabel("body:content:realmChoicePanel:container:realm", "/odd");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:body:container:content:tabbedPanel:panel:actions:actions:actionRepeater:2:action:action");
-        TESTER.assertComponent("body:content:toggleTemplates", TogglePanel.class);
+        UTILITY_UI.getTester().assertComponent("body:content:toggleTemplates", TogglePanel.class);
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
         formTester.setValue("type:dropDownChoiceField", "0");
         formTester.submit("changeit");
 
-        TESTER.assertComponent("body:content:templateModal", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:templateModal", Modal.class);
 
-        TESTER.assertModelValue("body:content:templateModal:form:content:form:view:username:textField",
+        UTILITY_UI.getTester().assertModelValue("body:content:templateModal:form:content:form:view:username:textField",
                 "'k' + firstname");
 
-        formTester = TESTER.newFormTester("body:content:templateModal:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:templateModal:form:content:form");
         formTester.setValue("view:username:textField", "");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void verifyPropagation() {
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:2:button",
+        UTILITY_UI.getTester().
+                executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:2:button",
                 Constants.ON_CLICK);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "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:"
+        UTILITY_UI.getTester().assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:form:view:details:"
                 + "container:generics:name:textField", "even");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:outerObjectsRepeater:0:outer:form:content:form");
         formTester.setValue("view:details:container:resources:paletteField:recorder", "resource-ldap-orgunit");
 
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
         // ----------------------------------
         // Check for propagation results
         // ----------------------------------
-        Component component = findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
+        Component component = UTILITY_UI.findComponentByProp("resource",
+                "body:content:body:outerObjectsRepeater:0:outer:form:"
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit");
 
-        TESTER.clickLink(component.getPageRelativePath() + ":actions:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(component.getPageRelativePath() + ":actions:actionRepeater:0:action:action");
 
-        TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:0:value:leftAttribute:field-label", "__NAME__");
 
-        TESTER.assertModelValue("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:0:value:leftAttribute:textField", null);
 
-        TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:0:value:rightAttribute:field-label", "__NAME__");
 
-        TESTER.assertModelValue("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:0:value:rightAttribute:textField",
                 "ou=even,o=isp");
 
-        TESTER.clickLink("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().clickLink("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:back");
 
-        assertNotNull(findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
+        assertNotNull(UTILITY_UI.findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit"));
         // ----------------------------------
 
-        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
                 + "0:action:action", Constants.ON_CLICK);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "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:"
+        UTILITY_UI.getTester().assertComponent("body:content:body:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:form:view:details:"
                 + "container:generics:name:textField", "even");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:body:outerObjectsRepeater:0:outer:form:content:form");
         formTester.setValue("view:details:container:resources:paletteField:recorder", "");
 
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
         // ----------------------------------
         // Check for propagation results
         // ----------------------------------
-        component = findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
+        component = UTILITY_UI.findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit");
 
-        TESTER.clickLink(component.getPageRelativePath() + ":actions:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(component.getPageRelativePath() + ":actions:actionRepeater:0:action:action");
 
-        TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:4:value:leftAttribute:field-label", "ou");
 
-        TESTER.assertModelValue("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:4:value:leftAttribute:textField", "even");
 
-        TESTER.assertLabel("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertLabel(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:4:value:rightAttribute:field-label", "ou");
 
-        TESTER.assertModelValue("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:second:remoteObject:propView:4:value:rightAttribute:textField", null);
 
-        TESTER.clickLink("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
+        UTILITY_UI.getTester().clickLink("body:content:body:outerObjectsRepeater:0:outer:form:content:customResultBody:"
                 + "secondLevelContainer:back");
 
-        assertNotNull(findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
+        assertNotNull(UTILITY_UI.findComponentByProp("resource", "body:content:body:outerObjectsRepeater:0:outer:form:"
                 + "content:customResultBody:firstLevelContainer:first:container", "resource-ldap-orgunit"));
         // ----------------------------------
 
-        TESTER.executeAjaxEvent("body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:body:outerObjectsRepeater:0:outer:form:content:action:actionRepeater:"
                 + "0:action:action", Constants.ON_CLICK);
     }
 }
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 c82eaed..0e21462 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
@@ -35,16 +35,17 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
     public void read() {
         browsingToRelationshipType();
 
-        Component result = findComponentByProp(KEY, DATATABLE_PATH, "inclusion");
+        Component result = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, "inclusion");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 result.getPageRelativePath() + ":cells:1:cell", Label.class);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", BaseModal.class);
     }
 
@@ -54,12 +55,12 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
         createRelationshipType(name);
         browsingToRelationshipType();
 
-        TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
 
-        Component result = findComponentByProp(KEY, DATATABLE_PATH, name);
+        Component result = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
 
-        TESTER.assertLabel(result.getPageRelativePath() + ":cells:1:cell", name);
-        TESTER.assertLabel(result.getPageRelativePath() + ":cells:2:cell", "test relationshipType");
+        UTILITY_UI.getTester().assertLabel(result.getPageRelativePath() + ":cells:1:cell", name);
+        UTILITY_UI.getTester().assertLabel(result.getPageRelativePath() + ":cells:2:cell", "test relationshipType");
     }
 
     @Test
@@ -68,21 +69,22 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
         createRelationshipType(name);
         browsingToRelationshipType();
 
-        Component result = findComponentByProp(KEY, DATATABLE_PATH, name);
+        Component result = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        final FormTester formTester = TESTER.newFormTester(
+        final FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue(
                 "content:relationshipTypeDetails:container:form:description:textField", "new description");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
     }
 
     @Test
@@ -91,26 +93,26 @@ public class RelationshipTypesITCase extends AbstractTypesITCase {
         createRelationshipType(name);
         browsingToRelationshipType();
 
-        TESTER.assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
+        UTILITY_UI.getTester().assertComponent(DATATABLE_PATH, AjaxDataTablePanel.class);
 
-        Component result = findComponentByProp(KEY, DATATABLE_PATH, name);
+        Component result = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
 
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"), Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        result = findComponentByProp(KEY, DATATABLE_PATH, name);
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        result = UTILITY_UI.findComponentByProp(KEY, DATATABLE_PATH, name);
 
         assertNull(result);
     }
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 511a0df..e24230f 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
@@ -35,93 +35,99 @@ public class ReportsITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:reportsLI:reports");
-        TESTER.assertRenderedPage(Reports.class);
+        UTILITY_UI.getTester().clickLink("body:reportsLI:reports");
+        UTILITY_UI.getTester().assertRenderedPage(Reports.class);
     }
 
     private void createReport(final String name) {
-        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:container:content:add");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:container:content:add");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer", Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:name:textField", name);
         formTester.setValue("content:form:view:template:dropDownChoiceField", "0");
         formTester.submit("content:form:buttons:next");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater"
+        UTILITY_UI.getTester().assertComponent(
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater"
                 + ":0:outer:form:content:form:view:schedule:seconds:textField", TextField.class);
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:reportsLI:reports");
+        UTILITY_UI.getTester().clickLink("body:reportsLI:reports");
     }
 
     private void delete(final String name) {
-        TESTER.clickLink("body:reportsLI:reports");
+        UTILITY_UI.getTester().clickLink("body:reportsLI:reports");
 
-        Component result = findComponentByProp(
+        Component result = UTILITY_UI.findComponentByProp(
                 "name", "body:content:tabbedPanel:panel:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", name);
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
                 + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:5:action:action");
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "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 successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp(
+        assertNull(UTILITY_UI.findComponentByProp(
                 "name", "body:content:tabbedPanel:panel:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "deleteReport"));
     }
 
     @Test
     public void read() {
-        Component result = findComponentByProp(
+        Component result = UTILITY_UI.findComponentByProp(
                 "name", "body:content:tabbedPanel:panel:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "test");
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
                 + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:3:action:action");
 
-        TESTER.assertModelValue(
+        UTILITY_UI.getTester().assertModelValue(
                 "body:content:tabbedPanel:panel:secondLevelContainer:title", "Executions of report 'test'");
-        result = findComponentByProp("status", "body:content:tabbedPanel:panel:secondLevelContainer:second:executions:"
+        result = UTILITY_UI.findComponentByProp("status",
+                "body:content:tabbedPanel:panel:secondLevelContainer:second:executions:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "SUCCESS");
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:secondLevelContainer:second:executions:firstLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:secondLevelContainer:second:executions:secondLevelContainer:back");
 
-        TESTER.clickLink("body:content:tabbedPanel:panel:secondLevelContainer:back");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:secondLevelContainer:back");
 
-        assertNotNull(findComponentByProp(
+        assertNotNull(UTILITY_UI.findComponentByProp(
                 "name", "body:content:tabbedPanel:panel:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "reconciliation"));
     }
@@ -129,29 +135,31 @@ public class ReportsITCase extends AbstractConsoleITCase {
     @Test
     public void update() {
         createReport("updateReport");
-        Component result = findComponentByProp(
+        Component result = UTILITY_UI.findComponentByProp(
                 "name", "body:content:tabbedPanel:panel:firstLevelContainer:first:container:"
                 + "content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "updateReport");
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:1:outer:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().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:"
+        UTILITY_UI.getTester().assertModelValue(
+                "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:"
                 + "0:outer:dialog:header:header-label", "Edit Report updateReport");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:template:dropDownChoiceField", "1");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:firstLevelContainer:first:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
         delete("updateReport");
     }
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 e7b3f1d..3c8a562 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
@@ -34,60 +34,67 @@ public class RolesITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:configurationLI:configurationUL:securityLI:security");
-        TESTER.assertRenderedPage(Security.class);
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:securityLI:security");
+        UTILITY_UI.getTester().assertRenderedPage(Security.class);
     }
 
     private void createRole(final String name) {
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
 
-        TESTER.assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer",
+                Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:key:textField", name);
         formTester.submit("content:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:entitlements:paletteField:recorder",
                 "WORKFLOW_DEF_READ,NOTIFICATION_UPDATE,RELATIONSHIPTYPE_READ,RELATIONSHIPTYPE_LIST");
         formTester.submit("content:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:configurationLI:configurationUL:securityLI:security");
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:securityLI:security");
     }
 
     @Test
     public void read() {
-        Component result = findComponentByProp(KEY, "body:content:tabbedPanel:panel:container:content:searchContainer:"
+        Component result = UTILITY_UI.findComponentByProp(KEY,
+                "body:content:tabbedPanel:panel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "Other");
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:2:action:action");
 
-        TESTER.assertModelValue(
+        UTILITY_UI.getTester().assertModelValue(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:dialog:header:header-label",
                 "Role 'Other' members");
 
-        assertNotNull(findComponentByProp("username",
+        assertNotNull(UTILITY_UI.findComponentByProp("username",
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:form:"
                 + "content:searchResult:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "rossini"));
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:5:outer:dialog:footer:buttons:0:button",
                 Constants.ON_CLICK);
     }
@@ -100,56 +107,61 @@ public class RolesITCase extends AbstractConsoleITCase {
     @Test
     public void update() {
         createRole("updateRole");
-        Component result = findComponentByProp(KEY, "body:content:tabbedPanel:panel:container:content:searchContainer:"
+        Component result = UTILITY_UI.findComponentByProp(KEY,
+                "body:content:tabbedPanel:panel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "updateRole");
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
                 + "container:actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:key:textField", "updateRole");
         formTester.submit("content:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:entitlements:paletteField:recorder",
                 "WORKFLOW_DEF_READ,NOTIFICATION_UPDATE");
         formTester.submit("content:form:buttons:next");
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void delete() {
         createRole("deleteRole");
-        Component result = findComponentByProp(KEY, "body:content:tabbedPanel:panel:container:content:searchContainer:"
+        Component result = UTILITY_UI.findComponentByProp(KEY,
+                "body:content:tabbedPanel:panel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "deleteRole");
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
 
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
                 + "container:actions:actions:actionRepeater:4:action:action"));
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:togglePanelContainer:"
                 + "container:actions:actions:actionRepeater:4:action:action"), "onclick");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp(KEY, "body:content:tabbedPanel:panel:container:content:searchContainer:"
+        assertNull(UTILITY_UI.findComponentByProp(KEY,
+                "body:content:tabbedPanel:panel:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "deleteRole"));
     }
 }
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 f10207e..ef82eeb 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
@@ -35,20 +35,20 @@ public class SchemasITCase extends AbstractTypesITCase {
     @Test
     public void readPlainSchema() {
         browsingToPlainSchemas();
-        TESTER.assertLabel(
+        UTILITY_UI.getTester().assertLabel(
                 PLAIN_DATATABLE_PATH
                 + ":tablePanel:groupForm:"
                 + "checkgroup:dataTable:body:rows:1:cells:1:cell", "aLong");
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 PLAIN_DATATABLE_PATH + ":tablePanel:groupForm:checkgroup:dataTable:body:rows:1",
                 Constants.ON_CLICK);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:1:outer:"
                 + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:"
                 + "panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:"
                 + "form:content:form:view:kind:dropDownChoiceField", DropDownChoice.class);
@@ -57,61 +57,61 @@ public class SchemasITCase extends AbstractTypesITCase {
     @Test
     public void createPlainSchema() {
         browsingToPlainSchemas();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:container:content:add");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer",
                 Modal.class);
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:details:key:textField", "zBoolean");
         formTester.setValue("content:form:view:details:type:dropDownChoiceField", "3");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
                 + "body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
     }
 
     @Test
     public void updatePlainSchema() {
         browsingToPlainSchemas();
 
-        Component result = findComponentByProp(KEY, PLAIN_DATATABLE_PATH, "ctype");
+        Component result = UTILITY_UI.findComponentByProp(KEY, PLAIN_DATATABLE_PATH, "ctype");
 
-        TESTER.assertLabel(result.getPageRelativePath() + ":cells:1:cell", "ctype");
+        UTILITY_UI.getTester().assertLabel(result.getPageRelativePath() + ":cells:1:cell", "ctype");
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:1:outer:"
                 + "container:content:togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:"
                 + "panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:"
                 + "form:content:form:view:kind:dropDownChoiceField", DropDownChoice.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:details:multivalue:checkboxField", "true");
 
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
                 + "body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
     }
 
     @Test
@@ -119,71 +119,71 @@ public class SchemasITCase extends AbstractTypesITCase {
         browsingToPlainSchemas();
         //create new Plain Schema
         final String schemaName = "zStringDelete";
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:container:content:add");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer",
                 Modal.class);
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:form:view:details:key:textField", schemaName);
         formTester.setValue("content:form:view:details:type:dropDownChoiceField", "0");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:0:"
                 + "body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:0:body:content:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");;
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");;
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
         //delete plain schema
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 PLAIN_DATATABLE_PATH
                 + ":tablePanel:groupForm:checkgroup:dataTable:bottomToolbars:toolbars:3:span:navigator:last");
 
-        TESTER.assertComponent(PLAIN_DATATABLE_PATH, AjaxDataTablePanel.class);
+        UTILITY_UI.getTester().assertComponent(PLAIN_DATATABLE_PATH, AjaxDataTablePanel.class);
 
-        Component result = findComponentByProp(KEY, PLAIN_DATATABLE_PATH, schemaName);
+        Component result = UTILITY_UI.findComponentByProp(KEY, PLAIN_DATATABLE_PATH, schemaName);
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
 
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().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(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "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 successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp(KEY, PLAIN_DATATABLE_PATH, schemaName));
+        assertNull(UTILITY_UI.findComponentByProp(KEY, PLAIN_DATATABLE_PATH, schemaName));
     }
 
     @Test
     public void createVirtualSchema() {
         browsingToVirtualSchemas();
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:2:body:content:container:content:add");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:accordionPanel:tabs:2:body:content:outerObjectsRepeater:0:outer",
                 Modal.class);
 
-        FormTester formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:2:body:content:outerObjectsRepeater:0:outer:form");
 
         formTester.setValue("content:form:view:details:resource:dropDownChoiceField", "0");
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:2:body:content:outerObjectsRepeater:0:outer:form:"
                 + "content:form:view:details:resource:dropDownChoiceField", Constants.ON_CHANGE);
 
@@ -192,33 +192,33 @@ public class SchemasITCase extends AbstractTypesITCase {
         formTester.setValue("content:form:view:details:anyType:dropDownChoiceField", "0");
         formTester.setValue("content:form:view:details:extAttrName:textField", "virattr");
 
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:2:"
+        UTILITY_UI.getTester().executeAjaxEvent("body:content:tabbedPanel:panel:accordionPanel:tabs:2:"
                 + "body:content:outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester("body:content:tabbedPanel:panel:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:content:tabbedPanel:panel:"
                 + "accordionPanel:tabs:2:body:content:outerObjectsRepeater:0:outer:form");
         formTester.submit("content:form:buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
-        TESTER.assertRenderedPage(Types.class);
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertRenderedPage(Types.class);
 
-        Component result = findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir");
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        Component result = UTILITY_UI.findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir");
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
 
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink(
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().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(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "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 successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir"));
+        assertNull(UTILITY_UI.findComponentByProp(KEY, VIRTUAL_DATATABLE_PATH, "mynewvir"));
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SecurityQuestionsITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SecurityQuestionsITCase.java
index 09e3cbd..285ba85 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SecurityQuestionsITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/SecurityQuestionsITCase.java
@@ -37,43 +37,44 @@ public class SecurityQuestionsITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:configurationLI:configurationUL:securityLI:security");
-        TESTER.assertRenderedPage(Security.class);
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:securityLI:security");
+        UTILITY_UI.getTester().assertRenderedPage(Security.class);
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
     }
 
     private void createSecurityQuestion(final String name) {
-        TESTER.clickLink("body:content:tabbedPanel:panel:container:content:add");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:panel:container:content:add");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer", Modal.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:securityQuestionDetailsPanel:container:form:content:textField",
                 name);
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:configurationLI:configurationUL:securityLI:security");
-        TESTER.clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
+        UTILITY_UI.getTester().clickLink("body:configurationLI:configurationUL:securityLI:security");
+        UTILITY_UI.getTester().clickLink("body:content:tabbedPanel:tabs-container:tabs:3:link");
     }
 
     @Test
     public void read() {
-        Label label = (Label) TESTER.getComponentFromLastRenderedPage(
+        Label label = (Label) UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:container:content:searchContainer:resultTable:"
                 + "tablePanel:groupForm:checkgroup:dataTable:body:rows:1:cells:2:cell");
         assertTrue(label.getDefaultModelObjectAsString().startsWith("What&#039;s your "));
 
-        TESTER.executeAjaxEvent("body:content:tabbedPanel:panel:container:content:searchContainer:resultTable:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:tabbedPanel:panel:container:content:searchContainer:resultTable:"
                 + "tablePanel:groupForm:checkgroup:dataTable:body:rows:1", Constants.ON_CLICK);
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action",
                 IndicatingAjaxLink.class);
@@ -87,26 +88,27 @@ public class SecurityQuestionsITCase extends AbstractConsoleITCase {
     @Test
     public void update() {
         createSecurityQuestion("What's your preferred color?");
-        Component result = findComponentByProp("content", "body:content:tabbedPanel:panel:container:content:"
+        Component result = UTILITY_UI.findComponentByProp("content", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 "What's your preferred color?");
 
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:form");
         formTester.setValue("content:securityQuestionDetailsPanel:container:form:content:textField",
                 "What's your preferred car?");
 
-        TESTER.clickLink(
+        UTILITY_UI.getTester().clickLink(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:0:outer:dialog:footer:inputs:0:submit");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
@@ -114,24 +116,25 @@ public class SecurityQuestionsITCase extends AbstractConsoleITCase {
         String name = "What's your preferred color?";
         createSecurityQuestion(name);
 
-        Component result = findComponentByProp("content", "body:content:tabbedPanel:panel:container:content:"
+        Component result = UTILITY_UI.findComponentByProp("content", "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 name);
         assertNotNull(result);
 
-        TESTER.executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink("body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
+        UTILITY_UI.getTester().executeAjaxEvent(result.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action");
 
-        TESTER.executeAjaxEvent(TESTER.getComponentFromLastRenderedPage(
+        UTILITY_UI.getTester().executeAjaxEvent(UTILITY_UI.getTester().getComponentFromLastRenderedPage(
                 "body:content:tabbedPanel:panel:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:1:action:action"), "onclick");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        assertNull(findComponentByProp("content",
+        assertNull(UTILITY_UI.findComponentByProp("content",
                 "body:content:tabbedPanel:panel:container:content:"
                 + "searchContainer:resultTable:"
                 + "tablePanel:groupForm:checkgroup:dataTable", name));
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
index 4eedba1..0029c16 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/TopologyITCase.java
@@ -43,100 +43,117 @@ public class TopologyITCase extends AbstractConsoleITCase {
     @BeforeEach
     public void login() {
         doLogin(ADMIN_UNAME, ADMIN_PWD);
-        TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage");
-        TESTER.assertRenderedPage(Topology.class);
+        UTILITY_UI.getTester().clickLink("body:idmPages:0:idmPageLI:idmPage");
+        UTILITY_UI.getTester().assertRenderedPage(Topology.class);
     }
 
     @Test
     public void showTopology() {
-        TESTER.assertComponent("body:syncope", WebMarkupContainer.class);
-        TESTER.assertComponent("body:resources:1", WebMarkupContainer.class);
-        TESTER.assertComponent("body:resources:2:resources:0", WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:syncope", WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:resources:1", WebMarkupContainer.class);
+        UTILITY_UI.getTester().assertComponent("body:resources:2:resources:0", WebMarkupContainer.class);
     }
 
     @Test
     public void showTopologyToggleMenu() {
-        TESTER.executeAjaxEvent("body:resources:2:resources:0:res", Constants.ON_CLICK);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:delete",
+        UTILITY_UI.getTester().executeAjaxEvent("body:resources:2:resources:0:res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:delete",
                 AjaxLink.class);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:edit",
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:edit",
                 AjaxLink.class);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:propagation",
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:propagation",
                 AjaxLink.class);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:pull",
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:pull",
                 AjaxLink.class);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:push",
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:push",
                 AjaxLink.class);
-        TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:tasks",
+        UTILITY_UI.getTester().executeAjaxEvent("body:syncope", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:tasks",
                 AjaxLink.class);
-        TESTER.executeAjaxEvent("body:conns:0:conns:3:conn", Constants.ON_CLICK);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:create",
+        UTILITY_UI.getTester().executeAjaxEvent("body:conns:0:conns:3:conn", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:create",
                 AjaxLink.class);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:delete",
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:delete",
                 AjaxLink.class);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:edit",
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:edit",
                 AjaxLink.class);
     }
 
     @Test
     public void resourceBatchAction() {
-        Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "ws-target-resource-1");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:reconciliation");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:container:content:togglePanelContainer:container:actions:reconciliation");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:1:outer", Modal.class);
 
-        FormTester formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:1:outer:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("body:toggle:outerObjectsRepeater:1:outer:form");
         formTester.setValue("content:anyTypes:dropDownChoiceField", "0");
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:toggle:outerObjectsRepeater:1:outer:form:content:anyTypes:dropDownChoiceField",
                 Constants.ON_CHANGE);
         formTester.setValue("content:anyTypes:dropDownChoiceField", "0");
 
-        component = findComponentByProp("key", "body:toggle:outerObjectsRepeater:1:outer:form:content:status:"
+        component = UTILITY_UI.findComponentByProp("key",
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:status:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "b3cbc78d-32e6-4bd4-92e0-bbe07566a2ee");
 
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:toggle:outerObjectsRepeater:1:outer:dialog:footer:buttons:0:button", Constants.ON_CLICK);
     }
 
     @Test
     public void editProvisioning() {
-        Component component = findComponentByProp("key", "body:resources", "ws-target-resource-1");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "ws-target-resource-1");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:provision");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:container:content:togglePanelContainer:container:actions:provision");
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:group:beans:0:fields:0", Constants.ON_CLICK);
 
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
         formTester.submit("buttons:next");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
                 + "container:content:wizard:form:view:mapping:mappingContainer:mappings:1", WebMarkupContainer.class);
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:wizard:form:view:mapping:mappingContainer:mappings:1:itemTransformers:icon",
                 Constants.ON_CLICK);
 
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:"
                 + "wizard:form:view:mapping:mappingContainer:mappings:0:itemTransformers:alertsLink");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:wizard:outerObjectsRepeater:0:outer:container:content:togglePanelContainer:"
                 + "form:classes:paletteField", NonI18nPalette.class);
     }
@@ -145,68 +162,72 @@ public class TopologyITCase extends AbstractConsoleITCase {
     public void createNewResurceAndProvisionRules() {
         final String res = UUID.randomUUID().toString();
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:conns:0:conns:0:conn", Constants.ON_CLICK);
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:toggle:container:content:togglePanelContainer:container:actions:create", Constants.ON_CLICK);
 
-        FormTester formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
+                "body:toggle:outerObjectsRepeater:0:outer:form:content:form");
 
         formTester.setValue("view:container:key:textField", res);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester("body:toggle:outerObjectsRepeater:0:outer:form:content:form");
         formTester.submit("buttons:next");
 
         // click on finish to create the external resource 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
         // ajax event required to retrieve AjaxRequestTarget (used into finish custom event)
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:toggle:outerObjectsRepeater:0:outer:form:content:form:buttons:finish", Constants.ON_CLICK);
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().clickLink("body:idmPages:0:idmPageLI:idmPage");
 
-        Component component = findComponentByProp("key", "body:resources", res);
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", res);
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:provision");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:container:content:togglePanelContainer:container:actions:provision");
 
         // -- create new provision rules for the current resource
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:add");
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:add");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:objectTypeToggle:container:"
                 + "content:togglePanelContainer:objectTypeForm");
         formTester.select("type:dropDownChoiceField", 1);
         formTester.submit("changeit");
-        TESTER.assertNoErrorMessage();
-        TESTER.assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
 
         // choose object class
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
         formTester.submit("buttons:next");
-        TESTER.assertNoErrorMessage();
-        TESTER.assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
 
         // aux classes
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
         formTester.submit("buttons:next");
-        TESTER.assertNoErrorMessage();
-        TESTER.assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
 
         // set a new mapping rule
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:wizard:form:view:mapping:mappingContainer:addMappingBtn", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
 
         formTester.setValue("view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", "true");
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form"
                 + ":view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", Constants.ON_CHANGE);
 
@@ -215,97 +236,106 @@ public class TopologyITCase extends AbstractConsoleITCase {
         formTester.setValue("view:mapping:mappingContainer:mappings:0:connObjectKey:checkboxField", "true");
 
         formTester.submit("buttons:next");
-        TESTER.assertNoErrorMessage();
-        TESTER.assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
 
         // finish
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
         // ajax event required to retrieve AjaxRequestTarget (used into finish custom event)
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:wizard:form:buttons:finish", Constants.ON_CLICK);
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:toggle:outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", AjaxSubmitLink.class);
 
         // save
-        TESTER.cleanupFeedbackMessages();
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:toggle:outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
-        TESTER.assertNoErrorMessage();
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertNoErrorMessage();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:group:beans:0:fields:0", Constants.ON_CLICK);
 
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:toggle:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:content:wizard:form");
         formTester.submit("buttons:next");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:"
                 + "container:content:wizard:form:view:mapping:mappingContainer:mappings:0", WebMarkupContainer.class);
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:3:outer:form:content:provision:container:"
                 + "content:wizard:form:buttons:cancel", Constants.ON_CLICK);
 
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:3:outer:dialog:footer:buttons:0:button");
+        UTILITY_UI.getTester().clickLink("body:toggle:outerObjectsRepeater:3:outer:dialog:footer:buttons:0:button");
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:delete");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink("body:toggle:container:content:togglePanelContainer:container:actions:delete");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage");
-        component = findComponentByProp("key", "body:resources", res);
+        UTILITY_UI.getTester().clickLink("body:idmPages:0:idmPageLI:idmPage");
+        component = UTILITY_UI.findComponentByProp("key", "body:resources", res);
         assertNull(component);
     }
 
     @Test
     public void executePullTask() {
-        Component component = findComponentByProp("key", "body:resources", "resource-testdb");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "resource-testdb");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
 
-        component = findComponentByProp("name", "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        component = UTILITY_UI.findComponentByProp("name",
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "TestDB Task");
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:3:action:action");
 
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "container:content:startAt:container:content:togglePanelContainer:startAtForm:startAt");
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        component = findComponentByProp("name", "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        component = UTILITY_UI.findComponentByProp("name",
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", "TestDB Task");
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertLabel(
+        UTILITY_UI.getTester().assertLabel(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:title",
                 "Executions of task &#039;TestDB Task&#039;");
 
         int iteration = 0;
         do {
             try {
-                component = findComponentByProp("status",
+                component = UTILITY_UI.findComponentByProp("status",
                         "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:"
                         + "second:executions:firstLevelContainer:first:container:content:searchContainer:resultTable:"
                         + "tablePanel:groupForm:checkgroup:dataTable", "SUCCESS");
@@ -318,7 +348,7 @@ public class TopologyITCase extends AbstractConsoleITCase {
                 } catch (Exception ignore) {
                 }
 
-                TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+                UTILITY_UI.getTester().executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                         + "secondLevelContainer:second:executions:firstLevelContainer:first:container:content:"
                         + "searchContainer:tablehandling:actionRepeater:0:action:action", Constants.ON_CLICK);
 
@@ -326,220 +356,240 @@ public class TopologyITCase extends AbstractConsoleITCase {
             }
         } while (iteration < 10);
 
-        component = findComponentByProp("status",
+        component = UTILITY_UI.findComponentByProp("status",
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:"
                 + "second:executions:firstLevelContainer:first:container:content:searchContainer:resultTable:"
                 + "tablePanel:groupForm:checkgroup:dataTable", "SUCCESS");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:second:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:secondLevelContainer:second:"
                 + "executions:firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "secondLevelContainer:second:executions:secondLevelContainer:title", Label.class);
     }
 
     @Test
     public void readPropagationTaskExecutions() {
-        Component component = findComponentByProp("key", "body:resources", "resource-testdb");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "resource-testdb");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:propagation");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:container:content:togglePanelContainer:container:actions:propagation");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable",
                 WebMarkupContainer.class);
 
-        component = findComponentByProp("operation", "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+        component = UTILITY_UI.findComponentByProp("operation",
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable", ResourceOperation.CREATE);
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:2:action:action");
 
-        TESTER.clickLink("body:idmPages:0:idmPageLI:idmPage");
+        UTILITY_UI.getTester().clickLink("body:idmPages:0:idmPageLI:idmPage");
 
-        component = findComponentByProp("key", "body:resources", "resource-testdb");
+        component = UTILITY_UI.findComponentByProp("key", "body:resources", "resource-testdb");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:propagation");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:container:content:togglePanelContainer:container:actions:propagation");
 
-        component = findComponentByPropNotNull("start", "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+        component = UTILITY_UI.findComponentByPropNotNull("start",
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:searchContainer:resultTable:tablePanel:groupForm:"
                 + "checkgroup:dataTable");
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertLabel(
+        UTILITY_UI.getTester().assertLabel(
                 "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:title",
                 "CREATE __ACCOUNT__");
 
-        component = findComponentByProp("status", "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+        component = UTILITY_UI.findComponentByProp("status",
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
                 + "secondLevelContainer:second:executions:firstLevelContainer:first:container:content:searchContainer:"
                 + "resultTable:tablePanel:groupForm:checkgroup:dataTable", "FAILURE");
 
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:secondLevelContainer:"
                 + "second:executions:firstLevelContainer:first:outerObjectsRepeater:1:outer:container:content:"
                 + "togglePanelContainer:container:actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:1:outer:form:content:tasks:"
                 + "secondLevelContainer:second:executions:secondLevelContainer:title", Label.class);
     }
 
     @Test
     public void editPushTask() {
-        Component component = findComponentByProp("key", "body:resources", "resource-ldap");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "resource-ldap");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:push");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink("body:toggle:container:content:togglePanelContainer:container:actions:push");
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
                 + "body:rows:1", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:1:action:action");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:"
                 + "tasks:firstLevelContainer:first:container:content:wizard:form");
         formTester.setValue("view:description:textField", "test");
         formTester.submit("buttons:next");
 
-        TESTER.assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        UTILITY_UI.getTester().assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:wizard:form:view:filters:0:filters:tabs:0:body:"
                 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:"
                 + "value:textField", "_NO_ONE_");
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:"
                 + "tasks:firstLevelContainer:first:container:content:wizard:form");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void createSchedTask() {
-        TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:tasks");
-        TESTER.clickLink(
+        UTILITY_UI.getTester().executeAjaxEvent("body:syncope", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink("body:toggle:container:content:togglePanelContainer:container:actions:tasks");
+        UTILITY_UI.getTester().clickLink(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "container:content:add");
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "container:content:wizard:form");
         formTester.setValue("view:name:textField", "test");
         formTester.select("view:jobDelegate:dropDownChoiceField", 0);
 
         formTester.submit("buttons:next");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "container:content:wizard:form");
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:wizard:form:view:schedule:seconds:textField", TextField.class);
 
         formTester.submit("buttons:finish");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void addGroupTemplate() {
-        Component component = findComponentByProp("key", "body:resources", "resource-testdb");
+        Component component = UTILITY_UI.findComponentByProp("key", "body:resources", "resource-testdb");
         assertNotNull(component);
-        TESTER.executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath() + ":res", Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink("body:toggle:container:content:togglePanelContainer:container:actions:pull");
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
                 + "body:rows:1", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:4:action:action");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:toggleTemplates", TogglePanel.class);
 
-        FormTester formTester = TESTER.newFormTester(
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:container:"
                 + "content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
 
         formTester.setValue("type:dropDownChoiceField", "1");
         formTester.submit("changeit");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
 
-        formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:wizard:form");
         formTester.setValue("view:name:textField", "'k' + name");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.executeAjaxEvent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable:"
                 + "body:rows:1", Constants.ON_CLICK);
-        TESTER.clickLink("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
+        UTILITY_UI.getTester().clickLink(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:"
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:4:action:action");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:toggleTemplates", TogglePanel.class);
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:"
                 + "first:container:content:toggleTemplates", TogglePanel.class);
 
-        formTester = TESTER.newFormTester(
+        formTester = UTILITY_UI.getTester().newFormTester(
                 "body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:firstLevelContainer:first:container:"
                 + "content:toggleTemplates:container:content:togglePanelContainer:templatesForm");
 
         formTester.setValue("type:dropDownChoiceField", "1");
         formTester.submit("changeit");
 
-        TESTER.assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
+        UTILITY_UI.getTester().assertComponent("body:toggle:outerObjectsRepeater:2:outer", Modal.class);
 
-        TESTER.assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        UTILITY_UI.getTester().assertModelValue("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:wizard:form:view:name:textField",
                 "'k' + name");
 
-        formTester = TESTER.newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
+        formTester = UTILITY_UI.getTester().newFormTester("body:toggle:outerObjectsRepeater:2:outer:form:content:tasks:"
                 + "firstLevelContainer:first:container:content:wizard:form");
         formTester.setValue("view:name:textField", "");
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void reloadConnectors() {
-        TESTER.executeAjaxEvent("body:syncope", Constants.ON_CLICK);
-        TESTER.assertComponent("body:toggle:container:content:togglePanelContainer:container:actions:reload",
+        UTILITY_UI.getTester().executeAjaxEvent("body:syncope", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(
+                "body:toggle:container:content:togglePanelContainer:container:actions:reload",
                 AjaxLink.class);
 
-        TESTER.cleanupFeedbackMessages();
-        TESTER.getRequest().addParameter("confirm", "true");
-        TESTER.clickLink("body:toggle:container:content:togglePanelContainer:container:actions:reload");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
+        UTILITY_UI.getTester().getRequest().addParameter("confirm", "true");
+        UTILITY_UI.getTester().clickLink("body:toggle:container:content:togglePanelContainer:container:actions:reload");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
index 8c7eecb..59ec6ea 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/console/UsersITCase.java
@@ -45,20 +45,22 @@ public class UsersITCase extends AbstractConsoleITCase {
 
     @Test
     public void filteredSearch() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
+        UTILITY_UI.getTester().clickLink(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:title");
 
-        TESTER.executeAjaxEvent("body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:"
                 + "content:searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panelPlus:add",
                 Constants.ON_CLICK);
 
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:"
                 + "searchFormContainer:search:multiValueContainer:innerForm:content:view:0:panel:container:value:"
                 + "textField", TextField.class);
-        TESTER.assertComponent(
+        UTILITY_UI.getTester().assertComponent(
                 "body:content:body:container:content:tabbedPanel:panel:accordionPanel:tabs:0:body:content:"
                 + "searchFormContainer:search:multiValueContainer:innerForm:content:view:1:panel:container:value:"
                 + "textField", TextField.class);
@@ -66,37 +68,41 @@ public class UsersITCase extends AbstractConsoleITCase {
 
     @Test
     public void forceChangePassword() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "verdi");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:2:action:action");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
     }
 
     @Test
     public void clickToCloneUser() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:1:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.submit("buttons:cancel");
@@ -104,70 +110,76 @@ public class UsersITCase extends AbstractConsoleITCase {
 
     @Test
     public void editRelationships() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:actions:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:actions:"
                 + "actionRepeater:0:action:action", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.setValue("view:relationships:specification:type:dropDownChoiceField", "1");
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:"
                 + "specification:type:dropDownChoiceField", Constants.ON_CHANGE);
         // The ON_CHANGE above should enable this component, but it doesn't; doing it by hand
-        Component otherType = findComponentById(
+        Component otherType = UTILITY_UI.findComponentById(
                 TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:specification",
                 "otherType");
         assertNotNull(otherType);
         otherType.setEnabled(true);
 
         formTester.setValue("view:relationships:specification:otherType:dropDownChoiceField", "PRINTER");
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:relationships:"
                 + "specification:otherType:dropDownChoiceField", Constants.ON_CHANGE);
 
-        component = findComponentByProp("name", TAB_PANEL + "outerObjectsRepeater:"
+        component = UTILITY_UI.findComponentByProp("name", TAB_PANEL + "outerObjectsRepeater:"
                 + "0:outer:form:content:form:view:relationships:specification:searchPanelContainer:searchPanel:"
                 + "searchResultPanel:container:content:searchContainer:resultTable:tablePanel:groupForm:checkgroup:"
                 + "dataTable:body:rows:1:cells:2:cell", "Canon MF 8030cn");
@@ -178,106 +190,114 @@ public class UsersITCase extends AbstractConsoleITCase {
 
     @Test
     public void editUser() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:1:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
         assertNotNull(component);
     }
 
     @Test
     public void editUserMembership() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:2:button",
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().
+                executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:2:button",
                 Constants.ON_CLICK);
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
         assertNull(component);
 
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:next", Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 "body:content:body:container:content:tabbedPanel:panel:searchResult:outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
                 Constants.ON_CLICK);
@@ -286,166 +306,178 @@ public class UsersITCase extends AbstractConsoleITCase {
                 + "schemas:0:panel:spinner", "1");
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:1:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
         // reset ....
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "root,otherchild");
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:finish", Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void editUserMemberships() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
-        TESTER.executeAjaxEvent("body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:2:button",
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().
+                executeAjaxEvent("body:content:realmChoicePanel:container:realms:btn", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(
+                "body:content:realmChoicePanel:container:realms:dropdown-menu:buttons:2:button",
                 Constants.ON_CLICK);
 
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
         // click on "edit"
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         // add "additional" group in order to show membership attributes
         formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
                 Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         // open membership attributes accordion
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
                 Constants.ON_CLICK);
 
         // edit multivalue text field, set 2 elements in total
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
                 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field",
                 TextField.class);
         formTester.setValue("view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
                 + "schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field", "2019-03-05");
 
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(TAB_PANEL
+                + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
                 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:panelPlus:add"));
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
                 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field",
                 TextField.class);
         formTester.setValue("view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
                 + "schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field", "2019-03-06");
 
-        TESTER.clickLink(TESTER.getComponentFromLastRenderedPage(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().clickLink(UTILITY_UI.getTester().getComponentFromLastRenderedPage(TAB_PANEL
+                + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
                 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panelPlus:add"));
 
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:1:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
         // reopen form and go to Plain Attributes page...
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         // add "additional" group in order to show membership attributes
         formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
                 Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         // open membership attributes accordion
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
                 Constants.ON_CLICK);
 
         // ... check multivalue field values has been saved
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
                 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field",
                 TextField.class);
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:"
                 + "body:content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field",
                 TextField.class);
@@ -456,74 +488,77 @@ public class UsersITCase extends AbstractConsoleITCase {
         Calendar cal2 = Calendar.getInstance();
         cal2.set(2019, Calendar.MARCH, 6, 0, 0, 0);
         cal2.set(Calendar.MILLISECOND, 0);
-        TESTER.assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
                 + "schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field", cal.getTime());
-        TESTER.assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
                 + "schemas:5:panel:multiValueContainer:innerForm:content:view:1:panel:field", cal2.getTime());
 
         // ... remove all values from multivalue field
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
                 + "content:schemas:5:panel:multiValueContainer:innerForm:content:view:1:drop",
                 Constants.ON_CLICK);
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
                 + "content:schemas:5:panel:multiValueContainer:innerForm:content:view:0:drop",
                 Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:1:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
         // reopen form and go to Plain Attributes page...
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         // add "additional" group in order to show membership attributes
         formTester.setValue("view:groupsContainer:groups:paletteField:recorder", "additional,root,otherchild");
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:buttons:next",
                 Constants.ON_CLICK);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
 
         // open membership attributes accordion
-        TESTER.executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().executeAjaxEvent(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:title",
                 Constants.ON_CLICK);
 
         // ... check multivalue field is now empty
-        TESTER.assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
+        UTILITY_UI.getTester().assertModelValue(TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:content:"
                 + "schemas:5:panel:multiValueContainer:innerForm:content:view:0:panel:field", null);
-        component = findComponentByProp("syncope-path", TAB_PANEL + "outerObjectsRepeater:0:"
+        component = UTILITY_UI.findComponentByProp("syncope-path", TAB_PANEL + "outerObjectsRepeater:0:"
                 + "outer:form:content:form:view:membershipsPlainSchemas:0:membershipPlainSchemas:tabs:0:body:"
                 + "content:schemas:5:panel:multiValueContainer:innerForm",
                 TAB_PANEL + "outerObjectsRepeater:0:"
@@ -537,48 +572,51 @@ public class UsersITCase extends AbstractConsoleITCase {
 
     @Test
     public void checkDeleteUsrLink() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "rossini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:8:action:action", IndicatingOnConfirmAjaxLink.class);
     }
 
     @Test
     public void editDateTimeField() {
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:1:panel:field:datepicker", "1/19/17");
         formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:1:panel:field:timepicker", "12:00 AM");
@@ -588,35 +626,38 @@ public class UsersITCase extends AbstractConsoleITCase {
 
         formTester.submit("buttons:finish");
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.assertComponent(TAB_PANEL
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
                 + "outerObjectsRepeater:0:outer:form:content:customResultBody:resources:firstLevelContainer:first:"
                 + "container:content:group:beans:0:fields:1:field", Label.class);
 
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:action:actionRepeater:0:action:action");
 
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "puccini");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:0:action:action");
 
-        TESTER.assertComponent(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
+        UTILITY_UI.getTester().assertComponent(TAB_PANEL
+                + "outerObjectsRepeater:0:outer:form:content:form:view:username:textField",
                 TextField.class);
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:0:outer:form:content:form");
         assertNotNull(formTester);
         formTester.submit("buttons:next");
 
@@ -624,17 +665,17 @@ public class UsersITCase extends AbstractConsoleITCase {
         cal.set(2017, Calendar.JANUARY, 19, 0, 0, 0);
         cal.set(Calendar.MILLISECOND, 0);
 
-        TESTER.assertModelValue("body:content:body:container:content:"
+        UTILITY_UI.getTester().assertModelValue("body:content:body:container:content:"
                 + "tabbedPanel:panel:searchResult:outerObjectsRepeater:"
                 + "0:outer:form:content:form:view:plainSchemas:tabs:0:"
                 + "body:content:schemas:1:panel:field:datepicker", cal.getTime());
 
-        assertEquals(TESTER.getComponentFromLastRenderedPage("body:content:body:"
+        assertEquals(UTILITY_UI.getTester().getComponentFromLastRenderedPage("body:content:body:"
                 + "container:content:tabbedPanel:panel:searchResult:"
                 + "outerObjectsRepeater:0:outer:form:content:form:view:plainSchemas:"
                 + "tabs:0:body:content:schemas:1:panel:field:timepicker").getDefaultModelObjectAsString(), "12:00 AM");
 
-        TESTER.assertModelValue("body:content:body:container:content:"
+        UTILITY_UI.getTester().assertModelValue("body:content:body:container:content:"
                 + "tabbedPanel:panel:searchResult:outerObjectsRepeater:0:outer:form:content:"
                 + "form:view:plainSchemas:tabs:0:body:content:schemas:8:panel:"
                 + "multiValueContainer:innerForm:content:view:0:panel:field", cal.getTime());
@@ -642,56 +683,58 @@ public class UsersITCase extends AbstractConsoleITCase {
 
     @Test
     public void changePassword() {
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        Component component = findComponentByProp("username", CONTAINER
+        Component component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "vivaldi");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:3:action:action");
 
-        TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:3:outer:form:content:status:resources:"
+        UTILITY_UI.getTester().assertLabel(TAB_PANEL + "outerObjectsRepeater:3:outer:form:content:status:resources:"
                 + "firstLevelContainer:first:container:content:group:beans:0:fields:0:field", "syncope");
 
-        FormTester formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:3:outer:form");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:3:outer:form");
         formTester.setValue("content:passwordPanel:passwordInnerForm:password:passwordField", "Password345");
         formTester.setValue("content:passwordPanel:passwordInnerForm:confirmPassword:passwordField", "Password345");
         formTester.select("content:status:resources:firstLevelContainer:first:container:content:group", 0);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 TAB_PANEL + "outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
 
-        TESTER.clickLink("body:realmsLI:realms");
-        TESTER.clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
+        UTILITY_UI.getTester().clickLink("body:realmsLI:realms");
+        UTILITY_UI.getTester().clickLink("body:content:body:container:content:tabbedPanel:tabs-container:tabs:1:link");
 
-        component = findComponentByProp("username", CONTAINER
+        component = UTILITY_UI.findComponentByProp("username", CONTAINER
                 + ":searchContainer:resultTable:tablePanel:groupForm:checkgroup:dataTable", "vivaldi");
         assertNotNull(component);
 
-        TESTER.executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
-        TESTER.clickLink(TAB_PANEL + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
+        UTILITY_UI.getTester().executeAjaxEvent(component.getPageRelativePath(), Constants.ON_CLICK);
+        UTILITY_UI.getTester().clickLink(TAB_PANEL
+                + "outerObjectsRepeater:1:outer:container:content:togglePanelContainer:container:"
                 + "actions:actions:actionRepeater:3:action:action");
 
-        TESTER.assertLabel(TAB_PANEL + "outerObjectsRepeater:3:outer:form:content:status:resources:"
+        UTILITY_UI.getTester().assertLabel(TAB_PANEL + "outerObjectsRepeater:3:outer:form:content:status:resources:"
                 + "firstLevelContainer:first:container:content:group:beans:0:fields:0:field", "syncope");
 
-        formTester = TESTER.newFormTester(TAB_PANEL + "outerObjectsRepeater:3:outer:form");
+        formTester = UTILITY_UI.getTester().newFormTester(TAB_PANEL + "outerObjectsRepeater:3:outer:form");
         formTester.setValue("content:passwordPanel:passwordInnerForm:password:passwordField", "Password123");
         formTester.setValue("content:passwordPanel:passwordInnerForm:confirmPassword:passwordField", "Password123");
         formTester.select("content:status:resources:firstLevelContainer:first:container:content:group", 0);
 
-        TESTER.executeAjaxEvent(
+        UTILITY_UI.getTester().executeAjaxEvent(
                 TAB_PANEL + "outerObjectsRepeater:3:outer:dialog:footer:inputs:0:submit", Constants.ON_CLICK);
 
-        TESTER.assertInfoMessages("Operation successfully executed");
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().assertInfoMessages("Operation successfully executed");
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
index 5065622..cc0d2dd 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
@@ -34,8 +34,6 @@ import org.apache.syncope.client.enduser.pages.Login;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
 import org.apache.syncope.common.rest.api.service.SyncopeService;
-import org.apache.syncope.fit.ui.AbstractUITCase;
-import org.apache.wicket.util.tester.FormTester;
 import org.apache.wicket.util.tester.WicketTester;
 import org.junit.jupiter.api.BeforeAll;
 import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
@@ -44,6 +42,9 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.apache.syncope.common.keymaster.client.self.SelfKeymasterClientContext;
 import org.apache.syncope.common.rest.api.service.UserService;
+import org.apache.syncope.fit.ui.AbstractUITCase;
+import org.apache.syncope.fit.ui.UtilityUIT;
+import org.apache.wicket.util.tester.FormTester;
 
 public abstract class AbstractEnduserITCase extends AbstractUITCase {
 
@@ -55,9 +56,11 @@ public abstract class AbstractEnduserITCase extends AbstractUITCase {
 
     protected static UserService userService;
 
+    protected static UtilityUIT UTILITY_UI;
+
     @ImportAutoConfiguration(classes = { SelfKeymasterClientContext.class })
     @Configuration
-    public static class SyncopeWebApplicationTestConfig {
+    public static class SyncopeEnduserWebApplicationTestConfig {
 
         @Bean
         public GeneralSettingsProperties generalSettingsProperties() {
@@ -102,13 +105,13 @@ public abstract class AbstractEnduserITCase extends AbstractUITCase {
     @BeforeAll
     public static void setUp() {
         synchronized (LOG) {
-            if (TESTER == null) {
+            if (UTILITY_UI == null) {
                 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
-                ctx.register(SyncopeWebApplicationTestConfig.class);
+                ctx.register(SyncopeEnduserWebApplicationTestConfig.class);
                 ctx.register(SyncopeWebApplication.class);
                 ctx.refresh();
 
-                TESTER = new WicketTester(ctx.getBean(SyncopeWebApplication.class));
+                UTILITY_UI = new UtilityUIT(new WicketTester(ctx.getBean(SyncopeWebApplication.class)));
             }
 
             if (SYNCOPE_SERVICE == null) {
@@ -135,10 +138,10 @@ public abstract class AbstractEnduserITCase extends AbstractUITCase {
     }
 
     protected void doLogin(final String user, final String passwd) {
-        TESTER.startPage(Login.class);
-        TESTER.assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().startPage(Login.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
 
-        FormTester formTester = TESTER.newFormTester("login");
+        FormTester formTester = UTILITY_UI.getTester().newFormTester("login");
         formTester.setValue("username", user);
         formTester.setValue("password", passwd);
         formTester.submit("submit");
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/SelfRegistrationITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/SelfRegistrationITCase.java
index 07157a3..7c8b009 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/SelfRegistrationITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/SelfRegistrationITCase.java
@@ -31,8 +31,10 @@ import org.apache.wicket.extensions.markup.html.form.palette.component.Choices;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.util.tester.FormTester;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
+@Disabled("WIP")
 public class SelfRegistrationITCase extends AbstractEnduserITCase {
 
     private static final String WIZARD_FORM = "body:wizard:form";
@@ -41,35 +43,39 @@ public class SelfRegistrationITCase extends AbstractEnduserITCase {
     public void selfCreate() {
         String username = "testUser";
 
-        TESTER.startPage(Login.class);
-        TESTER.assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().startPage(Login.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
 
-        TESTER.clickLink("self-registration");
+        UTILITY_UI.getTester().clickLink("self-registration");
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:username:textField", TextField.class);
-        FormTester formTester = TESTER.newFormTester(WIZARD_FORM);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:username:textField", TextField.class);
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(WIZARD_FORM);
         assertNotNull(formTester);
         formTester.setValue("view:username:textField", username);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
         // check required field is correctly set
-        TESTER.assertNoInfoMessage();
-        TESTER.assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:auxClasses:paletteField:choices", Choices.class);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:auxClasses:paletteField:choices", Choices.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:groupsContainer:groups:form:filter:textField", TextField.class);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:groupsContainer:groups:form:filter:textField",
+                TextField.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:6:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:6:panel:textField",
                 TextField.class);
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:12:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:12:panel:textField",
                 TextField.class);
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:14:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:14:panel:textField",
                 TextField.class);
 
-        formTester = TESTER.newFormTester(WIZARD_FORM);
+        formTester = UTILITY_UI.getTester().newFormTester(WIZARD_FORM);
         assertNotNull(formTester);
         formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:6:panel:textField",
                 "User fullname");
@@ -78,41 +84,44 @@ public class SelfRegistrationITCase extends AbstractEnduserITCase {
         formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:14:panel:textField",
                 "test@email.com");
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
         // check required fields were correctly set
-        TESTER.assertNoInfoMessage();
-        TESTER.assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:derSchemas:tabs:0:body:content:schemas:0:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:derSchemas:tabs:0:body:content:schemas:0:panel:textField",
                 TextField.class);
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
-        TESTER.assertComponent(WIZARD_FORM + ":view:virSchemas:tabs:0:body:content:schemas:0:panel:"
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:virSchemas:tabs:0:body:content:schemas:0:panel:"
                 + "multiValueContainer:innerForm:content:field-label",
                 Label.class);
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
-        TESTER.assertComponent(WIZARD_FORM + ":view:resources:paletteField:choices", Choices.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:resources:paletteField:choices", Choices.class);
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:finish", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:finish", Constants.ON_CLICK);
 
-        TESTER.assertRenderedPage(Login.class);
-        TESTER.assertComponent("login:username", TextField.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().assertComponent("login:username", TextField.class);
 
         assertFalse(userService.search(new AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
                 fiql(SyncopeClient.getUserSearchConditionBuilder().is("username").equalTo(username).query()).
                 build()).getResult().isEmpty());
+        
+        assertNotNull(userService.read(username));
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
     public void selfPasswordReset() {
-        TESTER.startPage(Login.class);
-        TESTER.assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().startPage(Login.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
 
-        TESTER.clickLink("self-pwd-reset");
+        UTILITY_UI.getTester().clickLink("self-pwd-reset");
     }
 
     @Test
@@ -120,59 +129,61 @@ public class SelfRegistrationITCase extends AbstractEnduserITCase {
         String username = "puccini";
         String newEmail = "giacomo.puccini@email.com";
 
-        TESTER.startPage(Login.class);
+        UTILITY_UI.getTester().startPage(Login.class);
         doLogin(username, "password");
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:username:textField", TextField.class);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:username:textField", TextField.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:auxClasses:paletteField:choices", Choices.class);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:auxClasses:paletteField:choices", Choices.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:groupsContainer:groups:form:filter:textField", TextField.class);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:groupsContainer:groups:form:filter:textField",
+                TextField.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:6:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:6:panel:textField",
                 TextField.class);
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:12:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:12:panel:textField",
                 TextField.class);
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:14:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:14:panel:textField",
                 TextField.class);
 
-        FormTester formTester = TESTER.newFormTester(WIZARD_FORM);
+        FormTester formTester = UTILITY_UI.getTester().newFormTester(WIZARD_FORM);
         assertNotNull(formTester);
-        TESTER.assertComponent(WIZARD_FORM + ":view:plainSchemas:tabs:0:body:content:schemas:4:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:plainSchemas:tabs:0:body:content:schemas:4:panel:textField",
                 TextField.class);
         formTester.setValue("view:plainSchemas:tabs:0:body:content:schemas:4:panel:textField", newEmail);
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
 
         // check required fields were correctly set
-        TESTER.assertNoInfoMessage();
-        TESTER.assertNoErrorMessage();
+        UTILITY_UI.getTester().assertNoInfoMessage();
+        UTILITY_UI.getTester().assertNoErrorMessage();
 
-        TESTER.assertComponent(WIZARD_FORM + ":view:derSchemas:tabs:0:body:content:schemas:0:panel:textField",
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM
+                + ":view:derSchemas:tabs:0:body:content:schemas:0:panel:textField",
                 TextField.class);
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
-        TESTER.assertComponent(WIZARD_FORM + ":view:virSchemas:tabs:0:body:content:schemas:0:panel:"
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:virSchemas:tabs:0:body:content:schemas:0:panel:"
                 + "multiValueContainer:innerForm:content:field-label",
                 Label.class);
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
-        TESTER.assertComponent(WIZARD_FORM + ":view:resources:paletteField:choices", Choices.class);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:next", Constants.ON_CLICK);
+        UTILITY_UI.getTester().assertComponent(WIZARD_FORM + ":view:resources:paletteField:choices", Choices.class);
 
-        TESTER.executeAjaxEvent(WIZARD_FORM + ":buttons:finish", Constants.ON_CLICK);
+        UTILITY_UI.getTester().executeAjaxEvent(WIZARD_FORM + ":buttons:finish", Constants.ON_CLICK);
 
-        TESTER.assertRenderedPage(Login.class);
-        TESTER.assertComponent("login:username", TextField.class);
+        UTILITY_UI.getTester().assertRenderedPage(Login.class);
+        UTILITY_UI.getTester().assertComponent("login:username", TextField.class);
 
-        assertTrue(userService.search(new AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).
-                fiql(SyncopeClient.getUserSearchConditionBuilder().is("username").equalTo(username).query()).
-                build()).getResult().stream().anyMatch(userTO -> {
-                    return userTO.getPlainAttr("email").get().getValues().get(0).equals(newEmail);
-                }));
+        assertTrue(userService.read(username).getPlainAttr("email").get().getValues().get(0).equals(newEmail));
 
-        TESTER.cleanupFeedbackMessages();
+        UTILITY_UI.getTester().cleanupFeedbackMessages();
     }
 
     @Test
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java
index f56f4b4..4da9dbc 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java
@@ -18,16 +18,7 @@
  */
 package org.apache.syncope.fit.ui;
 
-import java.io.Serializable;
-import java.lang.reflect.Method;
 import org.apache.syncope.common.rest.api.service.SyncopeService;
-import org.apache.wicket.Component;
-import org.apache.wicket.MarkupContainer;
-import org.apache.wicket.behavior.AbstractAjaxBehavior;
-import org.apache.wicket.core.util.lang.PropertyResolver;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.util.tester.WicketTester;
-import org.apache.wicket.util.visit.IVisit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -45,59 +36,6 @@ public abstract class AbstractUITCase {
 
     protected static final String SCHEMA = "schema";
 
-    protected static WicketTester TESTER;
-
     protected static SyncopeService SYNCOPE_SERVICE;
 
-    protected <V extends Serializable> Component findComponentByProp(
-            final String property, final String searchPath, final V key) {
-
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
-        return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
-                visitChildren(ListItem.class, (ListItem<?> object, IVisit<Component> visit) -> {
-                    try {
-                        Method getter = PropertyResolver.getPropertyGetter(property, object.getModelObject());
-                        if (getter != null && getter.invoke(object.getModelObject()).equals(key)) {
-                            visit.stop(object);
-                        }
-                    } catch (Exception e) {
-                        LOG.error("Error invoke method", e);
-                    }
-                });
-    }
-
-    protected <V extends Serializable> Component findComponentByPropNotNull(
-            final String property, final String searchPath) {
-
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
-        return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
-                visitChildren(ListItem.class, (ListItem<?> object, IVisit<Component> visit) -> {
-                    try {
-                        Method getter = PropertyResolver.getPropertyGetter(property, object.getModelObject());
-                        if (getter != null && getter.invoke(object.getModelObject()) != null) {
-                            visit.stop(object);
-                        }
-                    } catch (Exception e) {
-                        LOG.error("Error invoke method", e);
-                    }
-                });
-    }
-
-    protected Component findComponentById(final String searchPath, final String id) {
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
-        return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
-                visitChildren(Component.class, (final Component object, final IVisit<Component> visit) -> {
-                    if (object.getId().equals(id)) {
-                        visit.stop(object);
-                    }
-                });
-    }
-
-    protected void closeCallBack(final Component modal) {
-        modal.getBehaviors().stream().
-                filter(behavior -> (behavior instanceof AbstractAjaxBehavior)).
-                forEachOrdered(behavior -> {
-                    TESTER.executeBehavior((AbstractAjaxBehavior) behavior);
-                });
-    }
 }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/UtilityUIT.java
similarity index 76%
copy from fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java
copy to fit/core-reference/src/test/java/org/apache/syncope/fit/ui/UtilityUIT.java
index f56f4b4..93dea13 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/AbstractUITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/ui/UtilityUIT.java
@@ -20,7 +20,6 @@ package org.apache.syncope.fit.ui;
 
 import java.io.Serializable;
 import java.lang.reflect.Method;
-import org.apache.syncope.common.rest.api.service.SyncopeService;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.AbstractAjaxBehavior;
@@ -31,28 +30,20 @@ import org.apache.wicket.util.visit.IVisit;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class AbstractUITCase {
+public class UtilityUIT {
 
-    protected static final Logger LOG = LoggerFactory.getLogger(AbstractUITCase.class);
+    protected static final Logger LOG = LoggerFactory.getLogger(UtilityUIT.class);
 
-    protected static final String ADMIN_UNAME = "admin";
+    private final WicketTester tester;
 
-    protected static final String ADMIN_PWD = "password";
-
-    protected static final String ADDRESS = "http://localhost:9080/syncope/rest";
-
-    protected static final String KEY = "key";
-
-    protected static final String SCHEMA = "schema";
-
-    protected static WicketTester TESTER;
-
-    protected static SyncopeService SYNCOPE_SERVICE;
+    public UtilityUIT(final WicketTester tester) {
+        this.tester = tester;
+    }
 
-    protected <V extends Serializable> Component findComponentByProp(
+    public <V extends Serializable> Component findComponentByProp(
             final String property, final String searchPath, final V key) {
 
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
+        Component component = tester.getComponentFromLastRenderedPage(searchPath);
         return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
                 visitChildren(ListItem.class, (ListItem<?> object, IVisit<Component> visit) -> {
                     try {
@@ -66,10 +57,10 @@ public abstract class AbstractUITCase {
                 });
     }
 
-    protected <V extends Serializable> Component findComponentByPropNotNull(
+    public <V extends Serializable> Component findComponentByPropNotNull(
             final String property, final String searchPath) {
 
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
+        Component component = tester.getComponentFromLastRenderedPage(searchPath);
         return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
                 visitChildren(ListItem.class, (ListItem<?> object, IVisit<Component> visit) -> {
                     try {
@@ -83,8 +74,8 @@ public abstract class AbstractUITCase {
                 });
     }
 
-    protected Component findComponentById(final String searchPath, final String id) {
-        Component component = TESTER.getComponentFromLastRenderedPage(searchPath);
+    public Component findComponentById(final String searchPath, final String id) {
+        Component component = tester.getComponentFromLastRenderedPage(searchPath);
         return (component instanceof MarkupContainer ? MarkupContainer.class.cast(component) : component.getPage()).
                 visitChildren(Component.class, (final Component object, final IVisit<Component> visit) -> {
                     if (object.getId().equals(id)) {
@@ -93,11 +84,16 @@ public abstract class AbstractUITCase {
                 });
     }
 
-    protected void closeCallBack(final Component modal) {
+    public void closeCallBack(final Component modal) {
         modal.getBehaviors().stream().
                 filter(behavior -> (behavior instanceof AbstractAjaxBehavior)).
                 forEachOrdered(behavior -> {
-                    TESTER.executeBehavior((AbstractAjaxBehavior) behavior);
+                    tester.executeBehavior((AbstractAjaxBehavior) behavior);
                 });
     }
+
+    public WicketTester getTester() {
+        return tester;
+    }
+
 }


Mime
View raw message