From e1effdd1fd4cf20c3c00eeefcefb3fc6806df08d Mon Sep 17 00:00:00 2001
From: Ayush Tiwari <ayush.tiwari@nexedi.com>
Date: Mon, 24 Jul 2017 10:26:24 +0000
Subject: [PATCH] bt5_config: Migrate erp5_ui_test_core to BM format

---
 .../extension.erp5.ERP5Zuite.py               |  93 -------
 .../extension.erp5.ERP5Zuite.xml              |  84 ------
 .../extension.erp5.MailHostUtils.py           |  44 ---
 .../extension.erp5.MailHostUtils.xml          | 123 ---------
 .../extension.erp5.SeleniumTestUtils.py       |  42 ---
 .../extension.erp5.SeleniumTestUtils.xml      |  84 ------
 .../portal_skins/erp5_ui_test_core.xml        |  26 --
 .../erp5_ui_test_core/Base_clearCache.py      |   3 -
 .../erp5_ui_test_core/Base_clearCache.xml     |  62 -----
 .../Base_setLanguageWithoutRedirect.py        |   7 -
 .../Base_setLanguageWithoutRedirect.xml       |  62 -----
 .../ERP5Site_setupDummyMailHost.xml           |  28 --
 .../ErrorLog_reportErrorList.py               |   8 -
 .../ErrorLog_reportErrorList.xml              |  62 -----
 .../MailHost_reportMessageList.py             |  29 --
 .../MailHost_reportMessageList.xml            |  62 -----
 .../TestTool_cleanUpTestResults.py            |  10 -
 .../TestTool_cleanUpTestResults.xml           |  66 -----
 .../TestTool_getLatestReportId.py             |  13 -
 .../TestTool_getLatestReportId.xml            |  62 -----
 .../erp5_ui_test_core/TestTool_getResults.py  |  17 --
 .../erp5_ui_test_core/TestTool_getResults.xml |  62 -----
 .../erp5_ui_test_core/TestTool_getSkinName.py |   3 -
 .../TestTool_getSkinName.xml                  |  62 -----
 .../TestTool_reportResult.py                  |  39 ---
 .../TestTool_reportResult.xml                 |  62 -----
 .../TestTool_setSkinNameCookie.py             |   5 -
 .../TestTool_setSkinNameCookie.xml            |  62 -----
 .../Zuite_CommonTemplate.xml                  |  79 ------
 .../Zuite_CommonTemplate.zpt                  |  39 ---
 .../erp5_ui_test_core/Zuite_addTest.py        |  21 --
 .../erp5_ui_test_core/Zuite_addTest.xml       |  62 -----
 .../erp5_ui_test_core/Zuite_addZuite.py       |  21 --
 .../erp5_ui_test_core/Zuite_addZuite.xml      |  68 -----
 .../Zuite_createAndLaunchSeleniumTest.py      |  11 -
 .../Zuite_createAndLaunchSeleniumTest.xml     |  74 -----
 .../erp5_ui_test_core/Zuite_editZPT.xml       |  28 --
 .../Zuite_generateFilename.py                 |  14 -
 .../Zuite_generateFilename.xml                |  62 -----
 .../Zuite_getFilenameLocation.py              |   2 -
 .../Zuite_getFilenameLocation.xml             |  70 -----
 .../erp5_ui_test_core/Zuite_getObjectUid.py   |   4 -
 .../erp5_ui_test_core/Zuite_getObjectUid.xml  |  62 -----
 .../Zuite_getTestDocumentsHome.xml            |  28 --
 .../Zuite_isReportGenerated.xml               |  28 --
 .../Zuite_prepareReportDirectory.xml          |  28 --
 .../Zuite_runSeleniumTest.py                  |  18 --
 .../Zuite_runSeleniumTest.xml                 |  74 -----
 .../erp5_ui_test_core/Zuite_setPreference.py  |  20 --
 .../erp5_ui_test_core/Zuite_setPreference.xml |  66 -----
 .../erp5_ui_test_core/Zuite_updateImage.xml   |  28 --
 .../Zuite_uploadScreenshot.py                 |  27 --
 .../Zuite_uploadScreenshot.xml                |  70 -----
 .../erp5_ui_test_core/Zuite_urlRead.xml       |  28 --
 .../Zuite_viewZeleniumTestLauncher.xml        | 154 -----------
 .../your_description.xml                      | 260 ------------------
 .../your_url_list.xml                         | 123 ---------
 .../your_zuite_id.xml                         | 123 ---------
 ...Zuite_viewZeleniumTestLauncherValidator.py |  33 ---
 ...uite_viewZeleniumTestLauncherValidator.xml |  62 -----
 .../Zuite_waitForActivities.xml               |  28 --
 .../erp5_ui_test_core/user-extensions.js.js   |  84 ------
 .../erp5_ui_test_core/user-extensions.js.xml  |  32 ---
 bt5/erp5_ui_test_core/bt/change_log           |  33 ---
 bt5/erp5_ui_test_core/bt/copyright_list       |   1 -
 bt5/erp5_ui_test_core/bt/dependency_list      |   2 -
 bt5/erp5_ui_test_core/bt/description          |   3 -
 bt5/erp5_ui_test_core/bt/license              |   1 -
 bt5/erp5_ui_test_core/bt/maintainer_list      |   1 -
 .../bt/template_extension_id_list             |   3 -
 .../bt/template_format_version                |   1 -
 .../bt/template_skin_id_list                  |   1 -
 bt5/erp5_ui_test_core/bt/title                |   1 -
 bt5/erp5_ui_test_core/bt/version              |   1 -
 bt5/erp5_ui_test_core/erp5_ui_test_core.zexp  | Bin 0 -> 64327 bytes
 75 files changed, 3261 deletions(-)
 delete mode 100644 bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py
 delete mode 100644 bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.xml
 delete mode 100644 bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.py
 delete mode 100644 bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.xml
 delete mode 100644 bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.py
 delete mode 100644 bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ERP5Site_setupDummyMailHost.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.zpt
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_editZPT.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getTestDocumentsHome.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_isReportGenerated.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_prepareReportDirectory.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_updateImage.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_urlRead.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_description.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_url_list.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_zuite_id.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.py
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.js
 delete mode 100644 bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.xml
 delete mode 100644 bt5/erp5_ui_test_core/bt/change_log
 delete mode 100644 bt5/erp5_ui_test_core/bt/copyright_list
 delete mode 100644 bt5/erp5_ui_test_core/bt/dependency_list
 delete mode 100644 bt5/erp5_ui_test_core/bt/description
 delete mode 100644 bt5/erp5_ui_test_core/bt/license
 delete mode 100644 bt5/erp5_ui_test_core/bt/maintainer_list
 delete mode 100644 bt5/erp5_ui_test_core/bt/template_extension_id_list
 delete mode 100644 bt5/erp5_ui_test_core/bt/template_format_version
 delete mode 100644 bt5/erp5_ui_test_core/bt/template_skin_id_list
 delete mode 100644 bt5/erp5_ui_test_core/bt/title
 delete mode 100644 bt5/erp5_ui_test_core/bt/version
 create mode 100644 bt5/erp5_ui_test_core/erp5_ui_test_core.zexp

diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py
deleted file mode 100644
index eb31da73e3..0000000000
--- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.py
+++ /dev/null
@@ -1,93 +0,0 @@
-from time import sleep
-
-def waitForActivities(self, count=1000):
-  """
-    We wait until all activities are finished
-
-    RuntimeError is raised in case there is no way
-    to finish activities.
-  """
-  activity_tool = self.getPortalObject().portal_activities
-  for x in xrange(count):
-    x = activity_tool.getMessageList()
-    if not x:
-      return 'Done.'
-    if all(x.processing_node == -2 for x in x):
-      break
-    activity_tool.process_timer(None, None)
-    sleep(1)
-  raise RuntimeError('tic is looping forever.')
-
-def UpdateImage(image):
-  image._update_image_info()
-
-def urlread(url, safe_return=0):
-  import urllib
-  try:
-    return urllib.urlopen(url).read()
-  except IOError, e:
-    if safe_return:
-      # Return an Selenium test code that will obviously fail. This 
-      # prevent zelenium test run get Stalled.
-      return """<html><body><table><tr><td>assertTextPresent</td>
-                <td>An error occurred when dowload %s : %s </td>
-                <td></td><tr></body></html>""" % (url , e)
-    raise IOError(e)
- 
-
-def editZPT(zpt, text):
-  zpt.pt_edit(text, 'text/html')
-
-"""
-  Add the test at the end of the webpage (overwrite the current test if there's already one) and hide it
-"""
-def appendTestToWebPage(text, test_text):
-  import lxml.html
-  root = lxml.html.fromstring(text)
-  test_root = lxml.html.fromstring(test_text)
-  test_root = test_root.xpath('//table')[0]
-  tutorial_test = lxml.html.fromstring('<table></table>')
-  tutorial_test.tag = test_root.tag
-  for att in test_root.attrib.keys():
-    tutorial_test.attrib[att] = test_root.attrib[att]
-  tutorial_test.append(test_root[1])
-  hidden_list = [tutorial_test] + tutorial_test.xpath('//span')
-  for element in hidden_list:
-    element.attrib['style']='display:none;'
-  table_list = root.xpath('//table[@id="SELENIUM-TEST"]')
-  if(len(table_list) == 0):
-    root.append(tutorial_test)
-  else:
-    root.replace(table_list[0], tutorial_test)
-  return lxml.html.tostring(root).replace('\n','').replace("\'","'")
-
-from App.config import getConfiguration
-import os
-
-def prepareReportDirectory(self, expected_filename):
-  """
-  Remove existing report with the given filename if any. This must be called
-  before a report button is clicked
-  """
-  filename_path = os.path.join(getConfiguration().instancehome, 'var',
-                               expected_filename)
-
-  if os.path.exists(filename_path):
-    os.remove(filename_path)
-
-  return 'Done'
-
-def isReportGenerated(self, expected_filename):
-  """
-  Check that the report has been generated. Firefox will not prompt for PDF
-  files as defined in ERP5Type.tests.ERP5TypeFunctionalTestCase.Firefox in
-  getPrefJs() method
-  """
-  filename_path = os.path.join(getConfiguration().instancehome, 'var',
-                               expected_filename)
-
-  if os.path.isfile(filename_path):
-    os.remove(filename_path)
-    return 'Done'
-
-  return 'Report not generated!'
diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.xml b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.xml
deleted file mode 100644
index db63caf545..0000000000
--- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.ERP5Zuite.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Extension Component" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>extension.erp5.ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Extension Component</string> </value>
-        </item>
-        <item>
-            <key> <string>sid</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>erp5</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>component_validation_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>validate</string> </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>validated</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.py b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.py
deleted file mode 100644
index 40ae701f23..0000000000
--- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.py
+++ /dev/null
@@ -1,44 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2002-2009 Nexedi SA and Contributors. All Rights Reserved.
-#                  Rafael Monnerat <rafael@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-from ExtensionClass import pmc_init_of
-from Products.ERP5Type.tests.utils import DummyMailHostMixin
-
-def setupDummyMailHost(self):
-  """Replace Original Mail Host by Dummy Mail Host in a non-persistent way
-  and reset the list of already sent messages.
-
-  Copied & pasted from ERP5TypeTestCaseMixin._setUpDummyMailHost
-  """
-  mailhost = self.getPortalObject().MailHost
-  cls = mailhost.__class__
-  if not issubclass(cls, DummyMailHostMixin):
-    cls.__bases__ = (DummyMailHostMixin,) + cls.__bases__
-    pmc_init_of(cls)
-  mailhost.reset()
-  return True
diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.xml b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.xml
deleted file mode 100644
index ac59c855e5..0000000000
--- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.MailHostUtils.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Extension Component" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_recorded_property_dict</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>MailHostUtils</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>extension.erp5.MailHostUtils</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Extension Component</string> </value>
-        </item>
-        <item>
-            <key> <string>sid</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>text_content_error_message</string> </key>
-            <value>
-              <tuple/>
-            </value>
-        </item>
-        <item>
-            <key> <string>text_content_warning_message</string> </key>
-            <value>
-              <tuple/>
-            </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>erp5</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary/>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>component_validation_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="4" aka="AAAAAAAAAAQ=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>validate</string> </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>validated</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.py b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.py
deleted file mode 100644
index 5d96c082f0..0000000000
--- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.py
+++ /dev/null
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# Copyright (c) 2002-2009 Nexedi SA and Contributors. All Rights Reserved.
-#                  Ivan Tyagov <ivan@nexedi.com>
-#
-# WARNING: This program as such is intended to be used by professional
-# programmers who take the whole responsability of assessing all potential
-# consequences resulting from its eventual inadequacies and bugs
-# End users who are looking for a ready-to-use solution with commercial
-# garantees and support are strongly adviced to contract a Free Software
-# Service Company
-#
-# This program is Free Software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-#
-##############################################################################
-
-import os
-from Products.ERP5 import tests
-
-def Zuite_getTestDocumentsHome(self):
-  """
-    Get test documents folder as string.
-  """
-  return os.path.join(
-               os.path.abspath(
-                  os.path.dirname(tests.__file__)),'test_data')
-
-  
-  
diff --git a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.xml b/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.xml
deleted file mode 100644
index 78d4ac31e0..0000000000
--- a/bt5/erp5_ui_test_core/ExtensionTemplateItem/portal_components/extension.erp5.SeleniumTestUtils.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Extension Component" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>default_reference</string> </key>
-            <value> <string>SeleniumTestUtils</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>extension.erp5.SeleniumTestUtils</string> </value>
-        </item>
-        <item>
-            <key> <string>portal_type</string> </key>
-            <value> <string>Extension Component</string> </value>
-        </item>
-        <item>
-            <key> <string>sid</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>version</string> </key>
-            <value> <string>erp5</string> </value>
-        </item>
-        <item>
-            <key> <string>workflow_history</string> </key>
-            <value>
-              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="2" aka="AAAAAAAAAAI=">
-    <pickle>
-      <global name="PersistentMapping" module="Persistence.mapping"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>data</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>component_validation_workflow</string> </key>
-                    <value>
-                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-  <record id="3" aka="AAAAAAAAAAM=">
-    <pickle>
-      <global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/>
-    </pickle>
-    <pickle>
-      <tuple>
-        <none/>
-        <list>
-          <dictionary>
-            <item>
-                <key> <string>action</string> </key>
-                <value> <string>validate</string> </value>
-            </item>
-            <item>
-                <key> <string>validation_state</string> </key>
-                <value> <string>validated</string> </value>
-            </item>
-          </dictionary>
-        </list>
-      </tuple>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core.xml
deleted file mode 100644
index 9073b9d4f6..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="Folder" module="OFS.Folder"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_objects</string> </key>
-            <value>
-              <tuple/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>erp5_ui_test_core</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.py
deleted file mode 100644
index ec5c3d3918..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.py
+++ /dev/null
@@ -1,3 +0,0 @@
-"""User the cache tool in order to clear the cache"""
-context.portal_caches.clearAllCache()
-return "Cleared."
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.xml
deleted file mode 100644
index cf79dedc77..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_clearCache.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Base_clearCache</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.py
deleted file mode 100644
index 01895d3df2..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.py
+++ /dev/null
@@ -1,7 +0,0 @@
-context.Base_doLanguage(select_language)
-# Don't redirect. Base_doLanguage tries to redirect to the same page
-# and then selenium main page is loaded again in the bottom frame of
-# the original selenium main page and one more selenium test starts
-# running in another frame. This happens recursively.
-context.REQUEST.RESPONSE.setStatus(200)
-return 'done'
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.xml
deleted file mode 100644
index 8e8536ea69..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Base_setLanguageWithoutRedirect.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>select_language</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Base_setLanguageWithoutRedirect</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ERP5Site_setupDummyMailHost.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ERP5Site_setupDummyMailHost.xml
deleted file mode 100644
index 6b3bed816c..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ERP5Site_setupDummyMailHost.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>setupDummyMailHost</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>MailHostUtils</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>ERP5Site_setupDummyMailHost</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.py
deleted file mode 100644
index b2e72db624..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.py
+++ /dev/null
@@ -1,8 +0,0 @@
-for error_entry in context.error_log.getLogEntries():
-  for key in error_entry:
-    if key not in ["tb_text", "tb_html", 'req_html']:
-      print '%s : %s' % (key, error_entry[key])
-  print '------------- Traceback ------------'
-  print error_entry["tb_text"]
-  print "="*79
-return printed
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.xml
deleted file mode 100644
index 4af0c7baeb..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/ErrorLog_reportErrorList.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>ErrorLog_reportErrorList</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.py
deleted file mode 100644
index 913a975e91..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.py
+++ /dev/null
@@ -1,29 +0,0 @@
-"""
-  Get the Message List from DummyMailHost.
-
-  This is used by functional tests to get all
-  emails sent by the instance. This will prevent
-  the instance spam mailing lists during the
-  Functional Tests.
-"""
-if getattr(context.MailHost, "getMessageList", None) is None:
-  return "ERROR: MailHost is not a DummyMailHost"
-
-message_list = context.MailHost.getMessageList()
-for mail in message_list:
-  for part in mail:
-    print part
-  print "="*79
-  print ""
-
-print "Total messages: %s" %len(message_list)
-
-# If messages "looks like html", zope will set content type to text/html,
-# and the assertTextPresent from selenium will be applied after the emails
-# are interpreted as html.
-# For example, the email  "Name <email@example.com>" would be interpreted as
-# an html entity and we cannot use assertTextPresent on it.
-# To prevent that, we force content type to text.
-container.REQUEST.RESPONSE.setHeader('Content-Type', 'text/plain;charset=utf-8')
-
-return printed
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.xml
deleted file mode 100644
index d042e82ad6..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/MailHost_reportMessageList.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>MailHost_reportMessageList</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.py
deleted file mode 100644
index f9f410e7c0..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.py
+++ /dev/null
@@ -1,10 +0,0 @@
-portal_tests = container.portal_tests
-if test_zuite_relative_url is not None:
-  # we care for a specific test zuite
-  portal_tests = portal_tests.restrictedTraverse(test_zuite_relative_url,\
-                                                 portal_tests)
-# remove test results from previous test runs
-portal_tests.manage_delObjects([x.getId() \
-          for x in portal_tests.objectValues('Zuite Results')])
-print "OK"
-return printed
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.xml
deleted file mode 100644
index e5046f06b1..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_cleanUpTestResults.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>test_zuite_relative_url=None</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>TestTool_cleanUpTestResults</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Clean up test results from previous test runs</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.py
deleted file mode 100644
index f1d649fab7..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.py
+++ /dev/null
@@ -1,13 +0,0 @@
-portal_tests = container.portal_tests
-if test_zuite_relative_url is not None:
-  # we care for a specific test zuite
-  portal_tests = portal_tests.restrictedTraverse(test_zuite_relative_url,
-                                                 portal_tests)
-
-results = portal_tests.objectValues('Zuite Results')
-#results.sort()
-
-if not results:
-  return None
-
-return results[len(results) - 1].getId()
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.xml
deleted file mode 100644
index 977caa225f..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getLatestReportId.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>test_zuite_relative_url=None</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>TestTool_getLatestReportId</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.py
deleted file mode 100644
index 66c473b30f..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.py
+++ /dev/null
@@ -1,17 +0,0 @@
-portal_tests = container.portal_tests
-if test_zuite_relative_url is not None:
-  # we care for a specific test zuite
-  portal_tests = portal_tests.restrictedTraverse(test_zuite_relative_url,
-                                                 portal_tests)
-
-results = portal_tests.objectValues('Zuite Results')
-if not results:
-  return None
-
-# Selenium results tests are just named "testTable.1", "testTable.2" and so forth.
-# We replace this by the path of the test, this way we can easily see which test has failed.
-html = results[len(results) - 1].index_html()
-for idx, test_case in enumerate(portal_tests.listTestCases()):
-  html = html.replace('>testTable.%s</a>' % (idx + 1), '>%s</a>' % test_case['path'])
-
-return html
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.xml
deleted file mode 100644
index 8659f07178..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getResults.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>test_zuite_relative_url=None</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>TestTool_getResults</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.py
deleted file mode 100644
index de90fdf5ec..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.py
+++ /dev/null
@@ -1,3 +0,0 @@
-portal = context.getPortalObject()
-return portal.getSkinNameFromRequest(context.REQUEST) or \
-    portal.portal_skins.getDefaultSkin()
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.xml
deleted file mode 100644
index e987b1991f..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_getSkinName.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>skin_name=\'\'</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>TestTool_getSkinName</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.py
deleted file mode 100644
index 8a5c1847c0..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.py
+++ /dev/null
@@ -1,39 +0,0 @@
-# This script is called when you invoke a browser with "?auto=true" to portal_tests.
-# FIXME: this script should send the result by email.
-
-get = request.form.get
-
-# Summary.
-result = ['Report on Functional Tests', '']
-result.append('Passed: %s' % (get('result').lower() == 'passed' and 'Yes' or 'No'))
-result.append('Total Time: %s' % get('totalTime'))
-result.append('Passed Tests: %s' % get('numTestPasses'))
-result.append('Failed Tests: %s' % get('numTestFailures'))
-result.append('Passed Commands: %s' % get('numCommandPasses'))
-result.append('Failed Commands: %s' % get('numCommandFailures'))
-result.append('Commands with Errors: %s' % get('numCommandErrors'))
-result.append('')
-
-# Details.
-table_list = []
-for key in request.form.keys():
-  if key.startswith('testTable'):
-    prefix, num = key.split('.')
-    table_list.append((prefix, int(num)))
-table_list.sort()
-for table in table_list:
-  key = '%s.%d' % table
-  html = get(key)
-
-  # Ugly, but get the title somehow.
-  i = html.index('<td')
-  start = html.index('>', i) + 1
-  end = html.index('<', start)
-  title = html[start:end]
-
-  # Count passes and failures.
-  num_passed_commands = html.count('bgcolor="#cfffcf"', end)
-  num_failed_commands = html.count('bgcolor="#ffcfcf"', end)
-  result.append('%s: %d passed, %d failed' % (title, num_passed_commands, num_failed_commands))
-
-return '\n'.join(result)
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.xml
deleted file mode 100644
index 8c025f5d48..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_reportResult.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>request</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>TestTool_reportResult</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.py
deleted file mode 100644
index c528c5b4d0..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.py
+++ /dev/null
@@ -1,5 +0,0 @@
-if skin_name:
-  context.REQUEST.RESPONSE.setCookie('portal_skin', skin_name)
-else:
-  context.REQUEST.RESPONSE.expireCookie('portal_skin')
-return context.REQUEST.RESPONSE.redirect(context.absolute_url())
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.xml
deleted file mode 100644
index 2a10faa047..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/TestTool_setSkinNameCookie.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>skin_name=\'\'</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>TestTool_setSkinNameCookie</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.xml
deleted file mode 100644
index b4dbd40615..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_local_properties</string> </key>
-            <value>
-              <tuple>
-                <dictionary>
-                  <item>
-                      <key> <string>id</string> </key>
-                      <value> <string>description</string> </value>
-                  </item>
-                  <item>
-                      <key> <string>type</string> </key>
-                      <value> <string>text</string> </value>
-                  </item>
-                </dictionary>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>text/html</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value> <string>Common Template for PTZuite, it will reuse parts of the Listbox Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>expand</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_CommonTemplate</string> </value>
-        </item>
-        <item>
-            <key> <string>output_encoding</string> </key>
-            <value> <string>utf-8</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <unicode>Common Template for All Zuite</unicode> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.zpt b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.zpt
deleted file mode 100644
index 18bb1b9eff..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_CommonTemplate.zpt
+++ /dev/null
@@ -1,39 +0,0 @@
-<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"
-           xmlns:metal="http://xml.zope.org/namespaces/metal">
-  <tal:block metal:define-macro="init">
-    <tr>
-      <td>setTimeout</td>
-      <td>90000</td>
-      <td></td>
-    </tr>
-    <tr>
-      <td>store</td>
-      <td tal:content="python:here.getPortalObject().absolute_url()">http://example.com/erp5</td>
-      <td>base_url</td>
-    </tr>
-    <tr> <!-- reset language to en, in case previous test failed and left the language changed -->
-      <td>open</td>
-      <td>${base_url}/Base_setLanguageWithoutRedirect?select_language=en</td>
-      <td></td>
-    </tr>
-  </tal:block>
-
-<tal:block metal:define-macro="wait_for_activities">
-  <!-- Wait for activities to finish -->
-  <tr>
-    <td>openAndWait</td>
-    <td>${base_url}/Zuite_waitForActivities</td>
-    <td></td>
-  </tr>
-  <tr>
-    <td>verifyTextPresent</td>
-    <td>Done.</td>
-    <td></td>
-  </tr> 
-</tal:block>
-
-<tal:block metal:define-macro="expected_failure_for_anonymous_selection">
-  <tal:block tal:condition="here/portal_selections/isAnonymous"> (expected failure)</tal:block>
-</tal:block>
-
-</tal:block>
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.py
deleted file mode 100644
index 7bf6b94e8e..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.py
+++ /dev/null
@@ -1,21 +0,0 @@
-"""
-  Include a page template contains a into a Zuite
-"""
-if REQUEST:
-  raise RuntimeError("You can not call this script from the URL")
-
-assert context.getPortalType() == "Test Tool", "bad context"
-
-if test_id is None or test_id == '':
-  test_id = ''.join(list(filter(lambda a: a not in ["'",'_', '-','.',' ','~', ':', '/', '?', '#', '[', ']', '@', '!', '$', '&', '(', ')', '*','+',';','='], title)))
-
-if test_id not in context.objectIds():
-  factory = context.manage_addProduct['PageTemplates']
-  factory.manage_addPageTemplate(test_id, title=title, text=text, REQUEST=None)
-  test = getattr(context, test_id, None)
-else:
-  test = getattr(context, test_id, None)
-  context.Zuite_editZPT(test, text)
-  test.setTitle(text)
-
-return test
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.xml
deleted file mode 100644
index 6b9f79b5a1..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addTest.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>test_id, title, text, REQUEST=None</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_addTest</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.py
deleted file mode 100644
index 5f28be10db..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.py
+++ /dev/null
@@ -1,21 +0,0 @@
-"""
-  Create a zuite or return an existing one after remove his contents.
-"""
-assert context.getPortalType() == "Test Tool", "bad context"
-if REQUEST:
-  raise RuntimeError("You can not call this script from the URL")
-
-if zuite_id is None:
-  raise ValueError("Zuite_id cannot be None!")
-
-if zuite_id not in context.objectIds():
-  factory = context.portal_tests.manage_addProduct['Zelenium']
-  factory.manage_addZuite(id=zuite_id)
-
-zuite = getattr(context.portal_tests, zuite_id)
-if zuite.getMetaType() != "ERP5 Test Tool":
-  raise ValueError("Zuite is not a ERP5 Test Tool")
-
-zuite.manage_delObjects(zuite.objectIds())
-
-return zuite
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.xml
deleted file mode 100644
index 3a96feb5c2..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_addZuite.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>zuite_id, REQUEST=None</string> </value>
-        </item>
-        <item>
-            <key> <string>guard</string> </key>
-            <value>
-              <none/>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_addZuite</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.py
deleted file mode 100644
index d7b575cb28..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.py
+++ /dev/null
@@ -1,11 +0,0 @@
-"""
-  test_list is composed by [(full_test_html , title), ]
-
-"""
-
-zuite = context.getPortalObject().portal_tests.Zuite_addZuite(zuite_id)
-
-for text, title in test_list:
-  zuite.Zuite_addTest(None, title, text)
-
-return zuite.Base_redirect("core/TestRunner.html?auto=true&test=..%2Ftest_suite_html&resultsUrl=..%2FpostResults")
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.xml
deleted file mode 100644
index 65461b810f..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_createAndLaunchSeleniumTest.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>test_list, zuite_id</string> </value>
-        </item>
-        <item>
-            <key> <string>_proxy_roles</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_createAndLaunchSeleniumTest</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Display Selenium Test</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_editZPT.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_editZPT.xml
deleted file mode 100644
index 6bc4deca47..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_editZPT.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>editZPT</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_editZPT</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Edit Page Template</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.py
deleted file mode 100644
index 24c7c5e6e8..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.py
+++ /dev/null
@@ -1,14 +0,0 @@
-request = context.REQUEST
-now = DateTime()
-expire_timeout_days = 1
-session_id = request.get('session_id', None)
-if session_id is None or not session_id.startswith("erp5zuite"):
-  ## first call so generate session_id and send back via cookie
-  session_id = 'erp5zuite_' + context.REQUEST.other['AUTHENTICATED_USER'].getIdOrUserName()
-  request.RESPONSE.setCookie('erp5_session_id', session_id, expires=(now +expire_timeout_days).fCommon(), path='/')
-  
-session = context.portal_sessions[session_id]
-if not session.has_key('tempfolder') or session['tempfolder'] == '':
-  session['tempfolder'] = context.Zuite_createTempFolder() + '/'
-
-return session['tempfolder'] + str(context.portal_ids.generateNewId(id_generator='zuite', id_group=context.getId(), default=1)) + '.png'
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.xml
deleted file mode 100644
index 73fecdb6f0..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_generateFilename.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_generateFilename</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.py
deleted file mode 100644
index 7dd71400cb..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.py
+++ /dev/null
@@ -1,2 +0,0 @@
-test_documents_home = context.Zuite_getTestDocumentsHome()
-return '%s/%s' %(test_documents_home, filename)
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.xml
deleted file mode 100644
index 7e169e6a58..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getFilenameLocation.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>filename</string> </value>
-        </item>
-        <item>
-            <key> <string>_proxy_roles</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_getFilenameLocation</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.py
deleted file mode 100644
index 4424ad46c4..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.py
+++ /dev/null
@@ -1,4 +0,0 @@
-"""
-  Get object's uid.
-"""
-return context.portal_catalog.getResultValue(**kw).getUid()
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.xml
deleted file mode 100644
index cdc219d55d..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getObjectUid.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>**kw</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_getObjectUid</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getTestDocumentsHome.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getTestDocumentsHome.xml
deleted file mode 100644
index 575d795868..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_getTestDocumentsHome.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>Zuite_getTestDocumentsHome</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>SeleniumTestUtils</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_getTestDocumentsHome</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_isReportGenerated.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_isReportGenerated.xml
deleted file mode 100644
index ad21402d3b..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_isReportGenerated.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>isReportGenerated</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_isReportGenerated</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Zuite_isReportGenerated</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_prepareReportDirectory.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_prepareReportDirectory.xml
deleted file mode 100644
index c9fe46a6b6..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_prepareReportDirectory.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>prepareReportDirectory</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_prepareReportDirectory</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Zuite_prepareReportDirectory</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.py
deleted file mode 100644
index c644c04b4a..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.py
+++ /dev/null
@@ -1,18 +0,0 @@
-"""
-  Generate a Zuite (if necessary), create/update the test and redirect to the selenium test created/updated
-  url, web_page or web_page_reference must be set for it to work (or the context should be the Web Page in question)
-"""
-test_list = []
-count = 0
-portal = context.getPortalObject()
-for url in url_list:
- count += 1
- if "http" not in url:
-   # local content
-   data = portal.restrictedTraverse(url).TestPage_viewSeleniumTest()
- else:
-   data = context.Zuite_urlRead(url, safe_return=1)
- test_list.append((data, '%s %s' % (count, url)),)
-
-return context.Zuite_createAndLaunchSeleniumTest(test_list=test_list,
-                                                 zuite_id=zuite_id)
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.xml
deleted file mode 100644
index f5b9bf30f8..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_runSeleniumTest.xml
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>url_list, zuite_id=\'tutorial_zuite\'</string> </value>
-        </item>
-        <item>
-            <key> <string>_proxy_roles</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_runSeleniumTest</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Display Selenium Test</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.py
deleted file mode 100644
index 2fcbf56c93..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.py
+++ /dev/null
@@ -1,20 +0,0 @@
-"""Set subversion working copy list and enable preference.
-
-This script is called by Products.ERP5Type.tests.runFunctionalTest to set
-subversion working copy paths and conversion server address.
-It's not meant to be called by zelenium tests directly.
-"""
-
-pref = getattr(context.portal_preferences, "erp5_ui_test_preference", None)
-if pref is None:
-  pref = context.portal_preferences.newContent(id="erp5_ui_test_preference",
-                                               portal_type="Preference",
-                                               priority=1)
-
-pref.setPreferredSubversionWorkingCopyList(tuple(working_copy_list.split(',')))
-pref.setPreferredHtmlStyleUnsavedFormWarning(False)
-
-if pref.getPreferenceState() == 'disabled':
-  pref.enable()
-
-return 'Set Preference Successfully.'
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.xml
deleted file mode 100644
index eb611af52d..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_setPreference.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>working_copy_list</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_setPreference</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Set Test Runner Preferences</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_updateImage.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_updateImage.xml
deleted file mode 100644
index 763eaf11ae..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_updateImage.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>UpdateImage</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_updateImage</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Zuite_updateImage</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.py
deleted file mode 100644
index 7f5f765765..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.py
+++ /dev/null
@@ -1,27 +0,0 @@
-"""
-  Upload a screenshot taken by the test to ERP5
-"""
-from Products.ERP5Type.Log import log
-
-data_uri = context.REQUEST.form.get('data_uri', 'default')
-
-image_module = getattr(context, "image_module", None)
-if image_module is None:
-  return "erp5_dms is not Installed"
-
-image = image_module.getPortalObject().WebSection_getDocumentValue(
-                                                   name=image_reference)
-
-if image is None or image.getPortalType() != "Image":
-  # Image is an embedded file or not an image
-  return "Image: " + str(image_reference) + " not found"
-
-image.setContentType('image/png')
-data_text = data_uri.read()
-data = data_text.decode('base64')
-
-image.edit(data=data,
-           filename=str(image_reference) + '.png', 
-           content_type = 'image/png')
-
-context.Zuite_updateImage(image)
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.xml
deleted file mode 100644
index 865998bb2d..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_uploadScreenshot.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>data_uri, image_reference</string> </value>
-        </item>
-        <item>
-            <key> <string>_proxy_roles</string> </key>
-            <value>
-              <tuple>
-                <string>Manager</string>
-              </tuple>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_uploadScreenshot</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_urlRead.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_urlRead.xml
deleted file mode 100644
index 466caf5569..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_urlRead.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>urlread</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_urlRead</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Fetch content from Url</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher.xml
deleted file mode 100644
index 1fc61a3c39..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher.xml
+++ /dev/null
@@ -1,154 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ERP5 Form" module="erp5.portal_type"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary/>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_objects</string> </key>
-            <value>
-              <tuple/>
-            </value>
-        </item>
-        <item>
-            <key> <string>action</string> </key>
-            <value> <string>Zuite_runSeleniumTest</string> </value>
-        </item>
-        <item>
-            <key> <string>description</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>edit_order</string> </key>
-            <value>
-              <list/>
-            </value>
-        </item>
-        <item>
-            <key> <string>encoding</string> </key>
-            <value> <string>UTF-8</string> </value>
-        </item>
-        <item>
-            <key> <string>enctype</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>group_list</string> </key>
-            <value>
-              <list>
-                <string>left</string>
-                <string>right</string>
-                <string>center</string>
-                <string>bottom</string>
-                <string>hidden</string>
-              </list>
-            </value>
-        </item>
-        <item>
-            <key> <string>groups</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>bottom</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>center</string> </key>
-                    <value>
-                      <list>
-                        <string>your_description</string>
-                        <string>your_url_list</string>
-                        <string>your_zuite_id</string>
-                      </list>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>left</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-                <item>
-                    <key> <string>right</string> </key>
-                    <value>
-                      <list/>
-                    </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_viewZeleniumTestLauncher</string> </value>
-        </item>
-        <item>
-            <key> <string>method</string> </key>
-            <value> <string>POST</string> </value>
-        </item>
-        <item>
-            <key> <string>name</string> </key>
-            <value> <string>Zuite_runZeleniumTestview</string> </value>
-        </item>
-        <item>
-            <key> <string>pt</string> </key>
-            <value> <string>form_dialog</string> </value>
-        </item>
-        <item>
-            <key> <string>row_length</string> </key>
-            <value> <int>4</int> </value>
-        </item>
-        <item>
-            <key> <string>stored_encoding</string> </key>
-            <value> <string>UTF-8</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Run Zelenium Test</string> </value>
-        </item>
-        <item>
-            <key> <string>unicode_mode</string> </key>
-            <value> <int>0</int> </value>
-        </item>
-        <item>
-            <key> <string>update_action</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>update_action_title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_description.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_description.xml
deleted file mode 100644
index e9f34fde27..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_description.xml
+++ /dev/null
@@ -1,260 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="StringField" module="Products.Formulator.StandardFields"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>your_description</string> </value>
-        </item>
-        <item>
-            <key> <string>message_values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>external_validator_failed</string> </key>
-                    <value> <string>The input failed the external validator.</string> </value>
-                </item>
-                <item>
-                    <key> <string>required_not_found</string> </key>
-                    <value> <string>Input is required but no input given.</string> </value>
-                </item>
-                <item>
-                    <key> <string>too_long</string> </key>
-                    <value> <string>Too much input was given.</string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>overrides</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>css_class</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>default</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>display_maxwidth</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>display_width</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>editable</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>enabled</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>extra</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_length</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>truncate</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>unicode</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>whitespace_preserve</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>tales</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>css_class</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>default</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>display_maxwidth</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>display_width</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>editable</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>enabled</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>extra</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>max_length</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>truncate</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>unicode</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>whitespace_preserve</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>alternate_name</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>css_class</string> </key>
-                    <value> <string>noLabel</string> </value>
-                </item>
-                <item>
-                    <key> <string>default</string> </key>
-                    <value> <string>Include a URL for a HTML that contains a Selenium Test Code, in case of Test Page use TestPage_getSeleniumTest at the end of URL.</string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>display_maxwidth</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>display_width</string> </key>
-                    <value> <int>20</int> </value>
-                </item>
-                <item>
-                    <key> <string>editable</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>enabled</string> </key>
-                    <value> <int>1</int> </value>
-                </item>
-                <item>
-                    <key> <string>external_validator</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>extra</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>hidden</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>max_length</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string>Information</string> </value>
-                </item>
-                <item>
-                    <key> <string>truncate</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>unicode</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-                <item>
-                    <key> <string>whitespace_preserve</string> </key>
-                    <value> <int>0</int> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_url_list.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_url_list.xml
deleted file mode 100644
index 48fde99cd6..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_url_list.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>delegated_list</string> </key>
-            <value>
-              <list>
-                <string>description</string>
-                <string>height</string>
-                <string>title</string>
-                <string>width</string>
-              </list>
-            </value>
-        </item>
-        <item>
-            <key> <string>delegated_message_list</string> </key>
-            <value>
-              <list>
-                <string>external_validator_failed</string>
-              </list>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>your_url_list</string> </value>
-        </item>
-        <item>
-            <key> <string>message_values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>external_validator_failed</string> </key>
-                    <value> <string>Input at least one and only ONE of those three fields.</string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>overrides</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>field_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>form_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>tales</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>field_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>form_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string>Type the url of the page containing the Zelenium Test. (for external webpages only)</string> </value>
-                </item>
-                <item>
-                    <key> <string>display_width</string> </key>
-                    <value> <int>120</int> </value>
-                </item>
-                <item>
-                    <key> <string>field_id</string> </key>
-                    <value> <string>my_lines_field</string> </value>
-                </item>
-                <item>
-                    <key> <string>form_id</string> </key>
-                    <value> <string>Base_viewFieldLibrary</string> </value>
-                </item>
-                <item>
-                    <key> <string>height</string> </key>
-                    <value> <int>10</int> </value>
-                </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string>Click to edit the target</string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string>External URLs</string> </value>
-                </item>
-                <item>
-                    <key> <string>width</string> </key>
-                    <value> <int>90</int> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_zuite_id.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_zuite_id.xml
deleted file mode 100644
index 892510ffa8..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncher/your_zuite_id.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ProxyField" module="Products.ERP5Form.ProxyField"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>delegated_list</string> </key>
-            <value>
-              <list>
-                <string>default</string>
-                <string>description</string>
-                <string>required</string>
-                <string>title</string>
-              </list>
-            </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>your_zuite_id</string> </value>
-        </item>
-        <item>
-            <key> <string>message_values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>external_validator_failed</string> </key>
-                    <value> <string>The input failed the external validator.</string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>overrides</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>field_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>form_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>tales</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>default</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>field_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>form_id</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string></string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string></string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-        <item>
-            <key> <string>values</string> </key>
-            <value>
-              <dictionary>
-                <item>
-                    <key> <string>default</string> </key>
-                    <value> <string>tutorial_zuite</string> </value>
-                </item>
-                <item>
-                    <key> <string>description</string> </key>
-                    <value> <string>Enter the id of the Zuite containing your test.</string> </value>
-                </item>
-                <item>
-                    <key> <string>field_id</string> </key>
-                    <value> <string>my_string_field</string> </value>
-                </item>
-                <item>
-                    <key> <string>form_id</string> </key>
-                    <value> <string>Base_viewFieldLibrary</string> </value>
-                </item>
-                <item>
-                    <key> <string>required</string> </key>
-                    <value> <int>1</int> </value>
-                </item>
-                <item>
-                    <key> <string>target</string> </key>
-                    <value> <string>Click to edit the target</string> </value>
-                </item>
-                <item>
-                    <key> <string>title</string> </key>
-                    <value> <string>Zuite ID</string> </value>
-                </item>
-              </dictionary>
-            </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.py b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.py
deleted file mode 100644
index e1454ef2c7..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.py
+++ /dev/null
@@ -1,33 +0,0 @@
-web_page_context = context.getPortalType() in ['Test Page', 'Web Page']
-
-if web_page_context:
-  no_web_page = False
-  form_id = 'view'
-else:
-  no_web_page = not request.has_key('web_page') or request['web_page'] is None or not request['web_page']
-  form_id = 'Zuite_viewZeleniumTestLauncher'
-
-no_reference = not request.has_key('web_page_reference') or request['web_page_reference'] is None or not request['web_page_reference']
-no_url = not request.has_key('url') or request['url'] is None or not request['url']
-
-if no_web_page and no_url and no_reference:
-  if validator:
-    return 0
-  else:
-    return dict(result = False, form_id = form_id, portal_status_message=context.Base_translateString("External Url (url), ERP5 Web Page Path (web_page) and ERP5 Web Page Reference (web_page_reference): were omitted, one of them must be set."))
-elif not (no_url or no_web_page) or not (no_reference or no_web_page):
-  if validator:
-    return 0
-  elif web_page_context:
-    return dict(result=False, 
-                form_id=form_id, 
-                portal_status_message=context.Base_translateString("url, web_page and web_page_reference don't need to be set in Web Page context."))
-  else:
-    return dict(result=False, 
-                form_id=form_id, 
-                portal_status_message=context.Base_translateString("You have to choose between External Url (url), ERP5 Web Page Path (web_page) and ERP5 Web Page Reference (web_page_reference). Only ONE of them must be set."))
-
-if validator:
-  return 1
-else:
-  return dict(result = True)
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.xml
deleted file mode 100644
index 8e3892e6d2..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_viewZeleniumTestLauncherValidator.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>Script_magic</string> </key>
-            <value> <int>3</int> </value>
-        </item>
-        <item>
-            <key> <string>_bind_names</string> </key>
-            <value>
-              <object>
-                <klass>
-                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
-                </klass>
-                <tuple/>
-                <state>
-                  <dictionary>
-                    <item>
-                        <key> <string>_asgns</string> </key>
-                        <value>
-                          <dictionary>
-                            <item>
-                                <key> <string>name_container</string> </key>
-                                <value> <string>container</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_context</string> </key>
-                                <value> <string>context</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_m_self</string> </key>
-                                <value> <string>script</string> </value>
-                            </item>
-                            <item>
-                                <key> <string>name_subpath</string> </key>
-                                <value> <string>traverse_subpath</string> </value>
-                            </item>
-                          </dictionary>
-                        </value>
-                    </item>
-                  </dictionary>
-                </state>
-              </object>
-            </value>
-        </item>
-        <item>
-            <key> <string>_params</string> </key>
-            <value> <string>editor, request, validator = True</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_viewZeleniumTestLauncherValidator</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml
deleted file mode 100644
index 4a3db25edd..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/Zuite_waitForActivities.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_function</string> </key>
-            <value> <string>waitForActivities</string> </value>
-        </item>
-        <item>
-            <key> <string>_module</string> </key>
-            <value> <string>ERP5Zuite</string> </value>
-        </item>
-        <item>
-            <key> <string>id</string> </key>
-            <value> <string>Zuite_waitForActivities</string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string>Wait activities</string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.js b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.js
deleted file mode 100644
index 978491376d..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Selenium extensions for the ERP5 project
- */
-
-
-/**
- * Checks the element referenced by `locator` is a float equals to `text`.
- * Values are converted to float, to be format-independant (ie. 1 000 = 1000.0)
- */
-Selenium.prototype.assertFloat = function(locator, text) {
-    var actualValueText = getText(this.page().findElement(locator));
-    var actualValue = parseFloat(actualValueText.replace(/ /g, "").replace(/&nbsp;/g, ""));
-    var expectedValue = parseFloat(text.replace(/ /g, "").replace(/&nbsp;/g, ""));
-
-    if (isNaN(actualValue)) {
-        Assert.fail("Actual value "+ actualValueText +
-                        " cannot be parsed as float");
-    }
-    Assert.matches(expectedValue.toString(), actualValue.toString());
-};
-
-
-/**
- * like assertFloat, but for the value of <input elements.
- */
-Selenium.prototype.assertFloatValue = function(locator, text) {
-    var actualValueText = getInputValue(this.page().findElement(locator));
-    var actualValue = parseFloat(actualValueText.replace(/ /g, "").replace(/&nbsp;/g, ""));
-    var expectedValue = parseFloat(text.replace(/ /g, "").replace(/&nbsp;/g, ""));
-
-    if (isNaN(actualValue)) {
-        Assert.fail("Actual value "+ actualValueText +
-                        " cannot be parsed as float");
-    }
-    Assert.matches(expectedValue.toString(), actualValue.toString());
-};
-
-
-/**
- * Checks the portal status message.
- */
-Selenium.prototype.assertPortalStatusMessage = function(text) {
-    var psm_locator = "//div[@id='transition_message']";
-    var actualValue = getText(this.page().findElement(psm_locator));
-    Assert.matches(text, actualValue);
-};
-
-Selenium.prototype.doType = function(locator, newText) {
-    if (typeof(netscape) != "undefined" && typeof(netscape.security.PrivilegeManager) != "undefined" ) {
-      // On old firefox versions, we enable privilege to upload file in javascript.
-      // The user needs to have signed.applets.codebase_principal_support set to true in about:config
-      // This is done in prefs.js generated by product/ERP5Type/tests/runFunctionalTest.py
-      // This approach no longer work in newer firefox versions https://developer.mozilla.org/en-US/docs/Bypassing_Security_Restrictions_and_Signing_Code
-      // Without this, tests dealing with file upload will fail
-      netscape.security.PrivilegeManager.enablePrivilege("UniversalFileRead");
-    }
-    var element = this.page().findElement(locator);
-    this.page().replaceText(element, newText);
-};
-
-/*
- * Get the location of the current page. This function is missing in
- * Selenium 0.8 or later.
- */
-Selenium.prototype.getAbsoluteLocation = function() {
-    return this.page().location || this.browserbot.getCurrentWindow().location;
-};
-
-Selenium.prototype.doPhantomRender = function(filename) {
-    if (window.page && window.page.render) {
-        page.render(filename);
-    }
-};
-
-Selenium.prototype.assertElementPositionRangeTop = function(locator, range){
-    var positionTop = parseFloat(this.getElementPositionTop(locator));
-    /* example of range 450..455 */
-    var rangeList = range.split("..");
-    var minimumPositionTop = parseFloat(rangeList[0]);
-    var maximumPositionTop = parseFloat(rangeList[1]);
-    if (positionTop < minimumPositionTop || positionTop > maximumPositionTop ){
-      Assert.fail(positionTop + " is not between " + minimumPositionTop + " and " + maximumPositionTop);
-    }
-};
diff --git a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.xml b/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.xml
deleted file mode 100644
index a74ed761c6..0000000000
--- a/bt5/erp5_ui_test_core/SkinTemplateItem/portal_skins/erp5_ui_test_core/user-extensions.js.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<ZopeData>
-  <record id="1" aka="AAAAAAAAAAE=">
-    <pickle>
-      <global name="File" module="OFS.Image"/>
-    </pickle>
-    <pickle>
-      <dictionary>
-        <item>
-            <key> <string>_Cacheable__manager_id</string> </key>
-            <value> <string>http_cache</string> </value>
-        </item>
-        <item>
-            <key> <string>__name__</string> </key>
-            <value> <string>user-extensions.js</string> </value>
-        </item>
-        <item>
-            <key> <string>content_type</string> </key>
-            <value> <string>application/javascript</string> </value>
-        </item>
-        <item>
-            <key> <string>precondition</string> </key>
-            <value> <string></string> </value>
-        </item>
-        <item>
-            <key> <string>title</string> </key>
-            <value> <string></string> </value>
-        </item>
-      </dictionary>
-    </pickle>
-  </record>
-</ZopeData>
diff --git a/bt5/erp5_ui_test_core/bt/change_log b/bt5/erp5_ui_test_core/bt/change_log
deleted file mode 100644
index c576b050df..0000000000
--- a/bt5/erp5_ui_test_core/bt/change_log
+++ /dev/null
@@ -1,33 +0,0 @@
-2013-09-03 arnaud.fontaine
-* ZODB Components: Workflow History must always be kept, so avoid an extra step for developers.
-
-2013-08-28 arnaud.fontaine
-* ZODB Components: Migrate Documents, Extensions and Tests.
-
-2013-04-05 arnaud.fontaine
-* Implement Extensions to be able to check whether a report has been generated.
-
-2011-10-11 Xavier
-* Selenium core updated (2.6.0)
-* captureEntirePageScreenshot is available to take screenshots with Selenium (Firefox only)
-* captureEntirePageScreenshotAndUpload is available to upload the screenshots to the instance
-* showOptions/hideOptions functions to help displaying drop down menus
-
-2011-11-01 Cedric
-* Add phantomRender Selenium user extension.
-
-2010-06-07 yusei
-* Remove short title.
-
-2009-11-08 Rafael
-* added Script for getMessageList from DummyMailHost
-
-2009-04-20 Kazuhiko
-* add Zuite_CommonTemplate that should a common template for all functional tests.
-* add TestTool_getSkinName and TestTool_setSkinNameCookie so as to unify functional tests for normal skin and mobile skin.
-
-2009-02-03 Kazuhiko
-* define getAbsoluteLocation() in user-extensions.js for compatible with Zelenium based of Selenium 0.8 or later.
-
-2008-10-01 fabien
-* initial version
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/copyright_list b/bt5/erp5_ui_test_core/bt/copyright_list
deleted file mode 100644
index f7f420b9be..0000000000
--- a/bt5/erp5_ui_test_core/bt/copyright_list
+++ /dev/null
@@ -1 +0,0 @@
-Copyright (C) 2008 Nexedi SA
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/dependency_list b/bt5/erp5_ui_test_core/bt/dependency_list
deleted file mode 100644
index a5cbd25b47..0000000000
--- a/bt5/erp5_ui_test_core/bt/dependency_list
+++ /dev/null
@@ -1,2 +0,0 @@
-erp5_core
-erp5_xhtml_style
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/description b/bt5/erp5_ui_test_core/bt/description
deleted file mode 100644
index 7ebfb4e603..0000000000
--- a/bt5/erp5_ui_test_core/bt/description
+++ /dev/null
@@ -1,3 +0,0 @@
-Framework for user interface tests.
-
-WARNING: This business template contain extremely unsafe code and should not be installed on a production environment.
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/license b/bt5/erp5_ui_test_core/bt/license
deleted file mode 100644
index 3a3e12bcad..0000000000
--- a/bt5/erp5_ui_test_core/bt/license
+++ /dev/null
@@ -1 +0,0 @@
-GPL
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/maintainer_list b/bt5/erp5_ui_test_core/bt/maintainer_list
deleted file mode 100644
index 5fa27abd25..0000000000
--- a/bt5/erp5_ui_test_core/bt/maintainer_list
+++ /dev/null
@@ -1 +0,0 @@
-fabien
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/template_extension_id_list b/bt5/erp5_ui_test_core/bt/template_extension_id_list
deleted file mode 100644
index 0a6c5a2b13..0000000000
--- a/bt5/erp5_ui_test_core/bt/template_extension_id_list
+++ /dev/null
@@ -1,3 +0,0 @@
-extension.erp5.ERP5Zuite
-extension.erp5.MailHostUtils
-extension.erp5.SeleniumTestUtils
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/template_format_version b/bt5/erp5_ui_test_core/bt/template_format_version
deleted file mode 100644
index 56a6051ca2..0000000000
--- a/bt5/erp5_ui_test_core/bt/template_format_version
+++ /dev/null
@@ -1 +0,0 @@
-1
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/template_skin_id_list b/bt5/erp5_ui_test_core/bt/template_skin_id_list
deleted file mode 100644
index 1cfe5060d7..0000000000
--- a/bt5/erp5_ui_test_core/bt/template_skin_id_list
+++ /dev/null
@@ -1 +0,0 @@
-erp5_ui_test_core
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/title b/bt5/erp5_ui_test_core/bt/title
deleted file mode 100644
index 1cfe5060d7..0000000000
--- a/bt5/erp5_ui_test_core/bt/title
+++ /dev/null
@@ -1 +0,0 @@
-erp5_ui_test_core
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/bt/version b/bt5/erp5_ui_test_core/bt/version
deleted file mode 100644
index 48360de846..0000000000
--- a/bt5/erp5_ui_test_core/bt/version
+++ /dev/null
@@ -1 +0,0 @@
-5.4.7
\ No newline at end of file
diff --git a/bt5/erp5_ui_test_core/erp5_ui_test_core.zexp b/bt5/erp5_ui_test_core/erp5_ui_test_core.zexp
new file mode 100644
index 0000000000000000000000000000000000000000..a77af8f0f825cc9b7b328f3fe0b865e80fa533a5
GIT binary patch
literal 64327
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

literal 0
HcmV?d00001

-- 
2.30.9