From 075636828bc53b2b2fd3bdc1faccd33faad4a987 Mon Sep 17 00:00:00 2001
From: Rafael Monnerat <rafael@nexedi.com>
Date: Fri, 7 Jan 2011 04:12:06 +0000
Subject: [PATCH] Initial upload of bt5.

This Business Template contains a Zelenium test for configurator.



git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@42102 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 .../configurator_standard_zuite.xml           |  26 +
 .../testStandardConfigurationProcess.xml      | 671 ++++++++++++++++++
 .../erp5_configurator_standard_ui_test.xml    |  47 ++
 .../Zuite_getConfigurationTestDict.xml        | 143 ++++
 .../Zuite_getConversionServerDict.xml         |  71 ++
 .../Zuite_setUpConfigurationTest.xml          | 131 ++++
 ...Zuite_viewConfiguratorTestMacroLibrary.xml | 666 +++++++++++++++++
 .../bt/copyright_list                         |   1 +
 .../bt/dependency_list                        |   2 +
 .../bt/description                            |   4 +
 .../bt/license                                |   1 +
 .../bt/maintainer_list                        |   1 +
 .../bt/publication_url                        |   1 +
 .../bt/revision                               |   1 +
 .../bt/template_format_version                |   1 +
 .../bt/template_path_list                     |   2 +
 .../bt/template_skin_id_list                  |   1 +
 .../bt/title                                  |   1 +
 .../bt/version                                |   1 +
 19 files changed, 1772 insertions(+)
 create mode 100644 bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite/testStandardConfigurationProcess.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConfigurationTestDict.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConversionServerDict.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_setUpConfigurationTest.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_viewConfiguratorTestMacroLibrary.xml
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/copyright_list
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/dependency_list
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/description
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/license
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/maintainer_list
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/publication_url
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/revision
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/template_format_version
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/template_path_list
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/template_skin_id_list
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/title
 create mode 100644 bt5/erp5_configurator_standard_ui_test/bt/version

diff --git a/bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite.xml b/bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite.xml
new file mode 100644
index 0000000000..7375fb825e
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Zuite" module="Products.Zelenium.zuite"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>configurator_standard_zuite</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite/testStandardConfigurationProcess.xml b/bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite/testStandardConfigurationProcess.xml
new file mode 100644
index 0000000000..9e27ea2fbd
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/PathTemplateItem/portal_tests/configurator_standard_zuite/testStandardConfigurationProcess.xml
@@ -0,0 +1,671 @@
+<?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>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+      xmlns:metal="http://xml.zope.org/namespaces/metal">\n
+<head>\n
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
+<title>Configuration Standard</title>\n
+</head>\n
+<body>\n
+<table cellpadding="1" cellspacing="1" border="1">\n
+<thead>\n
+<tr><td rowspan="1" colspan="3">Standard Configuration</td></tr>\n
+</thead><tbody>\n
+\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/init_test_environment" />\n
+\n
+<tr>\n
+  <td>store</td>\n
+  <td>${base_url}/portal_configurator</td>\n
+  <td>configurator_base_url</td>\n
+</tr>\n
+\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/Zuite_setUpConfigurationTest</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Init Ok</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Set longer timeout as it takes time at configurator side to prepare everything needed. -->\n
+<tr>\n
+  <td>setTimeout</td>\n
+  <td>1200000</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_CommonTemplate/macros/wait_for_activities" />\n
+<!-- Restore defaults -->\n
+<tr>\n
+  <td>setTimeout</td>\n
+  <td>30000</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+   <td>pause</td>\n
+   <td>45000</td>\n
+   <td></td>\n
+</tr>\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${configurator_base_url}/view</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>ERP5 Configuration</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Welcome to Configurator</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>This tool will help you configure your fresh ERP5</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Language</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Configurator Key</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>ERP5 Configuration</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_my_ac_key"]</td>\n
+  <td>wrong_configuration_key</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="Base_callDialogMethod:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Incorrect Configuration Key</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_my_ac_key"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'configuration_key\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>select</td>\n
+  <td>//select[@name="field_your_business_configuration"]</td>\n
+  <td>STANDARD_CONFIGURATOR_TEST</td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="Base_callDialogMethod:method"]</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- First Page (Organisation) -->\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page1_check"> Page 1 Checks</span>\n
+\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_title"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_title\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_default_email_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_email\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_default_telephone_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_telephone\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//textarea[@name="field_your_default_address_street_address"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_street_address\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_default_address_zip_code"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_zip_code\']"></td>\n
+</tr>\n
+\n
+<tr>\n
+  <td>select</td>\n
+  <td>//select[@name="field_your_default_address_region"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_region\']"></td>\n
+</tr>\n
+\n
+<!-- Next page to check validation works -->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Input is required but no input given.</td>\n
+  <td></td>\n
+</tr>\n
+\n
+\n
+<!-- Check that what was previously entered is returned -->\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_title"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_title\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_email_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_email\']"></td>\n
+\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_telephone_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_telephone\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//textarea[@name="field_your_default_address_street_address"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_street_address\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_address_zip_code"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_zip_code\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//select[@name="field_your_default_address_region"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_region_category\']"></td>\n
+</tr>\n
+<!-- Fill in rest details-->\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_default_address_city"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_city\']"></td>\n
+</tr>\n
+\n
+<!-- Go Second page  (User Accounts)-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page2_check"> Frame Checks</span>\n
+\n
+<!-- Go to Previous page (Organisation) and check that it\'s all saved-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="previous:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page1_check"> Page 1 Checks</span>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_title"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_title\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_email_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_email\']"></td>\n
+\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_telephone_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_organisation_telephone\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//textarea[@name="field_your_default_address_street_address"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_street_address\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_address_zip_code"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_zip_code\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//select[@name="field_your_default_address_region"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_region_category\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_default_address_city"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_city\']"></td>\n
+</tr>\n
+\n
+\n
+<!-- Go to Next page (User Accounts)-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page2_check"> Page 2 Checks</span>\n
+\n
+<tr>\n
+  <td>select</td>\n
+  <td>//select[@name="field_your_company_employees_number"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_company_employees_number\']"></td>\n
+</tr>\n
+\n
+<!-- Go to Next page (User configurations)-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page3_check"> Page 3 Checks</span>\n
+\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_first_name"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_first_name\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_last_name"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_last_name\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_reference"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_used_reference\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_password"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_password\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_password_confirm"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_password\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>select</td>\n
+  <td>//select[@name="field_your_function"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_function\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_default_email_text"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_email\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Check that it\'s impossible to use an user id which\n
+     exists already at server (witch) side)-->\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>User login is either already used or contains invalid characters</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Please try another one</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="field_your_reference"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_reference\']"></td>\n
+</tr>\n
+\n
+\n
+<!-- Go to Next page (Accounting)-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page4_check"> Page 4 Checks</span>\n
+\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="subfield_field_your_period_start_date_year"]</td>\n
+  <td tal:content="python:\n
+    modules[\'DateTime\'].DateTime(modules[\'DateTime\'].DateTime().year(), 1, 1).strftime(\'%Y\')"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="subfield_field_your_period_start_date_month"]</td>\n
+  <td>01</td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="subfield_field_your_period_start_date_day"]</td>\n
+  <td>01</td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="subfield_field_your_period_stop_date_year"]</td>\n
+  <td tal:content="python:\n
+    modules[\'DateTime\'].DateTime(modules[\'DateTime\'].DateTime().year(), 1, 1).strftime(\'%Y\')"></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="subfield_field_your_period_stop_date_month"]</td>\n
+  <td>12</td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="subfield_field_your_period_stop_date_day"]</td>\n
+  <td>31</td>\n
+</tr>\n
+<tr>\n
+  <td>verifyValue</td>\n
+  <td>//input[@name="field_your_period_title"]</td>\n
+  <td tal:content="python:\n
+    modules[\'DateTime\'].DateTime(modules[\'DateTime\'].DateTime().year(), 1, 1).strftime(\'%Y\')"></td>\n
+</tr>\n
+\n
+\n
+<!-- Go to Next page (Application preferences)-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page5_check"> Page 5 Checks</span>\n
+\n
+<tr>\n
+  <td>select</td>\n
+  <td>//select[@name="field_your_price_currency"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_organisation_currency\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>select</td>\n
+  <td>//select[@name="field_your_preferred_date_order"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'customer_datetime_format\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>addSelection</td>\n
+  <td>//select[@name="field_your_lang"]</td>\n
+  <td>label=French</td>\n
+</tr>\n
+\n
+<!-- Go to Next page (ERP5 Express installation)-->\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_frame_check"> Frame Checks</span>\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/configurator_page6_check"> Page 6 Checks</span>\n
+\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="next:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForCondition</td>\n
+  <td>selenium.isTextPresent("ERP5 configuration process is running.")</td>\n
+  <td>10000</td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Please be patient and do not move from current page until you get</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>confirmation that the installation is over.</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>It will last approximately 5 to 10 minutes.</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForCondition</td>\n
+  <td>selenium.isTextPresent("Configuration is over. Enjoy your new ERP5 system!")</td>\n
+  <td>1000000</td> <!-- set timeout reasonably as it takes time to finish installation-->\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Please click link below.</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>You will be redirected to a form in which you can login using</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>one of yours newly created ERP5 user accounts.</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td>Start using your new ERP5 system</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- login with functional test user -->\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/logout</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/login_form</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="__ac_name"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'functional_test_username\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="__ac_password"]</td>\n
+  <td tal:content="python:\n
+      here.Zuite_getConfigurationTestDict()[\'functional_test_password\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="logged_in:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/view</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>pause</td>\n
+  <td>5000</td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_CommonTemplate/macros/wait_for_activities">\n
+Wait for activities</span>\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/view</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'functional_test_username\']"></td>\n
+  <td></td>\n
+</tr>\n
+\n
+\n
+<!-- login with newly created user from Express configuration -->\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/logout</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/login_form</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="__ac_name"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_reference\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>//input[@name="__ac_password"]</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_password\']"></td>\n
+</tr>\n
+<tr>\n
+  <td>clickAndWait</td>\n
+  <td>//input[@name="logged_in:method"]</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>openAndWait</td>\n
+  <td>${base_url}/view</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>verifyTextPresent</td>\n
+  <td tal:content="python:\n
+        here.Zuite_getConfigurationTestDict()[\'customer_user1_reference\']"></td>\n
+  <td></td>\n
+</tr>\n
+<span metal:use-macro="container/Zuite_CommonTemplate/macros/wait_for_activities" />\n
+<span metal:use-macro="container/Zuite_viewConfiguratorTestMacroLibrary/macros/restore_test_environment" />\n
+\n
+</tbody></table>\n
+</body>\n
+</html>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testStandardConfigurationProcess</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></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test.xml b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test.xml
new file mode 100644
index 0000000000..0de75a7eb5
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Folder" module="OFS.Folder"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_local_properties</string> </key>
+            <value>
+              <tuple>
+                <dictionary>
+                  <item>
+                      <key> <string>id</string> </key>
+                      <value> <string>business_template_skin_layer_priority</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>type</string> </key>
+                      <value> <string>float</string> </value>
+                  </item>
+                </dictionary>
+              </tuple>
+            </value>
+        </item>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>business_template_skin_layer_priority</string> </key>
+            <value> <float>51.0</float> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>erp5_configurator_standard_ui_test</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConfigurationTestDict.xml b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConfigurationTestDict.xml
new file mode 100644
index 0000000000..a5fb21e185
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConfigurationTestDict.xml
@@ -0,0 +1,143 @@
+<?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>_body</string> </key>
+            <value> <string>"""\n
+  Return the configuration used during test.\n
+\n
+  There is a difference between configuration and upgrader for\n
+  this values. This informations should be unified later but \n
+  for now it is better keep the difference here.\n
+"""\n
+from DateTime import DateTime\n
+\n
+configuration_dict = {\n
+        \'configuration_key\': \'a\', # XXX: fill as appropriate for test env\n
+        \'customer_organisation_title\': \'Nexedi SA\',\n
+        \'customer_organisation_email\': \'webproject-report@erp5.org\',\n
+        \'customer_organisation_telephone\': \'+123 234 567 891\',\n
+        \'customer_organisation_street_address\': \n
+              \'270 bd Clémenceau, 59700 Marcq-en-Baroeul\',\n
+        \'customer_organisation_city\': \'Lille\',\n
+        \'customer_organisation_zip_code\': \'59700\',\n
+        \'customer_organisation_region\': \'France\',\n
+        \'customer_organisation_region_category\': \'europe/western_europe/france\',\n
+        \'customer_company_employees_number\': 1, # employees\n
+        \'customer_user1_first_name\': \'Ivan\',\n
+        \'customer_user1_last_name\': \'Petrov\',\n
+        \'customer_user1_reference\': \'PERSON_USER_REFERENCE\',\n
+        \'customer_user1_used_reference\' : \'PERSON_RESERVED_REFERENCE\',\n
+        \'customer_user1_password\' : \'secret\',\n
+        \'customer_user1_function\': \'Company/Manager\',\n
+        \'customer_user1_email\': \'webproject-report@erp5.org\',\n
+        \'customer_organisation_currency\' : \'Euro\',\n
+        \'customer_datetime_format\': \'Day / Month / Year\',\n
+\n
+# XXX FIXME The follow configuration are not related to configuration itself\n
+# but related to system or inicial setup. Split this script later in order\n
+# To have a clean definition of what is the User Configuration Values only.\n
+        "functional_test_username" : "zope", \n
+        "functional_test_password" : "zope",\n
+\n
+        "business_configuration_id": "STANDARD_CONFIGURATOR_TEST",\n
+        \'bt_repository_list\':[\'http://www.erp5.org/dists/snapshot/bt5/\'],\n
+        \n
+        # Release management\n
+        \'erp5_instance_version\': \'5.4.1\',\n
+\n
+        \'now\': DateTime(),\n
+        # server side group\n
+        \'tiolive_group_relative_url\': \'nexedi/tio\',\n
+        # More configurations\n
+        "oood_hostname": "localhost", \n
+        "oood_port": 8008, \n
+\n
+        # Valid Assignment Date\n
+        "assignment_start_date_year": 2010,\n
+        "assignment_start_date_month": 07,\n
+        "assignment_start_date_day":13,\n
+        "assignment_stop_date_year": 2999,\n
+        "assignment_stop_date_month": 07,\n
+        "assignment_stop_date_day":13,\n
+         }\n
+\n
+is_upgrader = context.portal_templates.getInstalledBusinessTemplate("erp5_upgrader") is not None\n
+\n
+if not is_upgrader:\n
+  if "tiolive_server" in context.erp5_sql_connection.connection_string or \\\n
+      "test_client" in context.erp5_sql_connection.connection_string:\n
+    configuration_dict[\'oood_port\'] = 48009\n
+    configuration_dict[\'tiolive_virtual_database_string\'] = \'tiolive_virtual@127.0.0.1:43307 root\'\n
+    configuration_dict[\'witch_server_url\'] = \'http://localhost:48090/erp5/\'\n
+\n
+return configuration_dict\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></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_getConfigurationTestDict</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConversionServerDict.xml b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConversionServerDict.xml
new file mode 100644
index 0000000000..dda02c6d4c
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_getConversionServerDict.xml
@@ -0,0 +1,71 @@
+<?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>_body</string> </key>
+            <value> <string>"""\n
+  Return the configuration for use into\n
+  preferences.\n
+"""\n
+return context.ExpressZuite_getExpressConfigurationInfo()\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Zuite_getConversionServerDict</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_setUpConfigurationTest.xml b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_setUpConfigurationTest.xml
new file mode 100644
index 0000000000..47b5924a90
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_setUpConfigurationTest.xml
@@ -0,0 +1,131 @@
+<?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>_body</string> </key>
+            <value> <string>portal = context.getPortalObject()\n
+\n
+# set url, user/password\n
+configuration_info = context.Zuite_getConfigurationTestDict()\n
+\n
+# setup preferences\n
+preference_id = \'default_initial_configurator_system_preference\'\n
+\n
+default_site_preference = getattr(portal.portal_preferences, preference_id, None)\n
+\n
+if default_site_preference is None:\n
+  default_site_preference = portal.portal_preferences.newContent(\n
+                                id = \'default_initial_configurator_system_preference\',\n
+                                portal_type=\'System Preference\', priority = 1)\n
+\n
+default_site_preference.setPreferredHtmlStyleUnsavedFormWarning(False)\n
+default_site_preference.setPreferredHtmlStyleDevelopperMode(None)\n
+default_site_preference.setPreferredHtmlStyleAccessTab(\'1\')\n
+\n
+default_site_preference.setPreferredOoodocServerAddress(configuration_info.get("oood_hostname",\'localhost\'))\n
+default_site_preference.setPreferredOoodocServerPortNumber(configuration_info.get("oood_port",8008))\n
+\n
+if default_site_preference.getPreferenceState() != \'global\':\n
+  default_site_preference.enable()\n
+\n
+# update repository info of Configurator site\n
+portal.portal_templates.updateRepositoryBusinessTemplateList(\n
+  repository_list = configuration_info[\'bt_repository_list\'])\n
+\n
+# (Re)Create the Business Configurator\n
+bc_id = configuration_info[\'business_configuration_id\']\n
+business_configuration = getattr(context.business_configuration_module, bc_id, None)\n
+if business_configuration is not None:\n
+  context.business_configuration_module.manage_delObjects([bc_id])\n
+\n
+business_configuration = context.business_configuration_module.newContent(\n
+                            portal_type="Business Configuration",\n
+                            id=bc_id, \n
+                            title=bc_id,\n
+                            reference=configuration_info[\'configuration_key\'])\n
+\n
+business_configuration.setResource("workflow_module/erp5_standard_workflow")\n
+\n
+# (Re)Create the Person with already used login.\n
+kw = dict(portal_type="Person",\n
+          reference=configuration_info[\'customer_user1_used_reference\'])\n
+person = context.portal_catalog.getResultValue(**kw)\n
+if person is None:\n
+  context.person_module.newContent(**kw)\n
+\n
+kw[\'reference\'] = configuration_info[\'customer_user1_reference\']\n
+person = context.portal_catalog.getResultValue(**kw)\n
+if person is not None:\n
+  context.person_module.manage_delObjects([person.getId()])\n
+\n
+portal.portal_caches.clearAllCache()\n
+return "### Init Ok ###"\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>_params</string> </key>
+            <value> <string></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_setUpConfigurationTest</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_viewConfiguratorTestMacroLibrary.xml b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_viewConfiguratorTestMacroLibrary.xml
new file mode 100644
index 0000000000..47f1075166
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/SkinTemplateItem/portal_skins/erp5_configurator_standard_ui_test/Zuite_viewConfiguratorTestMacroLibrary.xml
@@ -0,0 +1,666 @@
+<?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>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<tal:block metal:define-macro="checked_logged_in_as_express_user_client_instance">\n
+  <!-- Check we\'re logged against client_instance -->\n
+  <tr>\n
+    <td>openAndWait</td>\n
+    <td>${client_instance_base_url}/view</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td tal:content="python: configuration[\'customer_user1_reference\']"></td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="checked_logged_in_as_express_user_server_instance">\n
+  <!-- Check we\'re logged against server -->\n
+  <tr>\n
+    <td>openAndWait</td>\n
+    <td>${base_url}/view</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td tal:content="python: configuration[\'customer_user1_reference\']"></td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="init_test_environment">\n
+  <tr>\n
+    <td>store</td>\n
+    <td tal:content="python:\n
+        here.REQUEST.get(\'URL\')[0:here.REQUEST.get(\'URL\').find(\'/portal_tests/\')]">erp5</td>\n
+    <td>base_url</td>\n
+  </tr>\n
+  <tr>\n
+    <td>setTimeout</td>\n
+    <td>60000</td>\n
+    <td></td>\n
+  </tr>\n
+  <!-- Always initialize browser to English language -->\n
+  <tr>\n
+    <td>deleteCookie</td>\n
+    <td>LOCALIZER_LANGUAGE</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>createCookie</td>\n
+    <td>LOCALIZER_LANGUAGE=en</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>openAndWait</td>\n
+    <td>${base_url}/view</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+<tal:block metal:define-macro="restore_test_environment">\n
+  <tr>\n
+    <td>setTimeout</td>\n
+    <td>30000</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="configurator_frame_check">\n
+\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>ERP5 Configuration</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Hello</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Installation steps</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Number of user accounts</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>User accounts configuration</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Accounting</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Application preferences</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>TioLive installation</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="configurator_page1_check">\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Your organisation</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>What is the name of your company?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Email</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Telephone</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Street Address</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Postal Code</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>City</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Country</td>\n
+    <td></td>\n
+  </tr>\n
+\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td>Configure organisation</td>\n
+  </tr>\n
+\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="configurator_page2_check">\n
+\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Number of user accounts</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Enter the number of user accounts you want to create. In your company, each person using TioLive should have his own user account.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Select the number of user accounts you want to configure</td>\n
+    <td></td>\n
+  </tr>\n
+\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td>Configure user accounts number</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td>Previous</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="configurator_page3_check">\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>User accounts configuration</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Fill in detailled information for each TioLive user.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td> User accounts configuration</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td> Fill in detailled information for each TioLive user.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>First Name</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Last Name</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>User Login</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>User Password</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Password Confirmation</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Function</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td>Configure user accounts</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td>Previous</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+\n
+</tal:block>\n
+\n
+<tal:block metal:define-macro="configurator_page4_check">\n
+\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Accounting</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Configure your accounting.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Which accouting plan do you use?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Accounting Period</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Accounting Periods are used to define the range of dates in which you will be allowed to input accounting transactions.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>To start using the system, you have to configure the first accounting period.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>What is the begin date of your current accounting period?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>What will be the end date of your current accounting period?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>What is the name of this period?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td>Configure accounting</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td>Previous</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+\n
+<tal:block metal:define-macro="configurator_page5_check">\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Application preferences</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Define some global preferences for your TioLive application.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>What email address should be used as From email address for automatically generated emails?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>What is the currency used in your company?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Which date format do you use?</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Which translations do you want to use?</td>\n
+    <td></td>\n
+  </tr>\n
+\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td>Configure preferences</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td>Previous</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+<tal:block metal:define-macro="configurator_page6_check">\n
+\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>TioLive installation</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Installation procedure may begin</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>All needed information is collected.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Please proceed using Install button below.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>In the next page you will receive automatically updated installation status report.</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="next:method"]</td>\n
+    <td>Install</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyValue</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td>Previous</td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyElementPresent</td>\n
+    <td>//input[@name="previous:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>\n
+\n
+<tal:block metal:define-macro="login_as_express_user">\n
+\n
+  <tal:block tal:condition="here/ExpressZuite_isExpressUserAccountAvailable">\n
+    <!-- login with newly created user from Express configuration -->\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/view</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/logout</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/login_form</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>type</td>\n
+      <td>//input[@name="__ac_name"]</td>\n
+      <td tal:content="python:\n
+            here.Zuite_getConfigurationTestDict()[\'customer_user1_reference\']"></td>\n
+    </tr>\n
+    <tr>\n
+      <td>type</td>\n
+      <td>//input[@name="__ac_password"]</td>\n
+      <td tal:content="python:\n
+            here.Zuite_getConfigurationTestDict()[\'customer_user1_password\']"></td>\n
+    </tr>\n
+    <tr>\n
+      <td>clickAndWait</td>\n
+      <td>//input[@name="logged_in:method"]</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/view</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>verifyTextPresent</td>\n
+      <td tal:content="python:\n
+            here.Zuite_getConfigurationTestDict()[\'customer_user1_reference\']"></td>\n
+      <td></td>\n
+    </tr>\n
+  </tal:block>\n
+</tal:block>\n
+\n
+<tal:block metal:define-macro="login_as_functional_test_user">\n
+\n
+  <tal:block tal:condition="here/ExpressZuite_isExpressUserAccountAvailable">\n
+    <!-- login with functional test user -->\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/view</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/logout</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/login_form</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>type</td>\n
+      <td>//input[@name="__ac_name"]</td>\n
+      <td tal:content="python:\n
+            here.Zuite_getConfigurationTestDict()[\'functional_test_username\']"></td>\n
+    </tr>\n
+    <tr>\n
+      <td>type</td>\n
+      <td>//input[@name="__ac_password"]</td>\n
+      <td tal:content="python:\n
+          here.Zuite_getConfigurationTestDict()[\'functional_test_user_password\']"></td>\n
+    </tr>\n
+    <tr>\n
+      <td>clickAndWait</td>\n
+      <td>//input[@name="logged_in:method"]</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>openAndWait</td>\n
+      <td>${base_url}/view</td>\n
+      <td></td>\n
+    </tr>\n
+    <tr>\n
+      <td>verifyTextPresent</td>\n
+      <td tal:content="python:\n
+            here.Zuite_getConfigurationTestDict()[\'functional_test_username\']"></td>\n
+      <td></td>\n
+    </tr>\n
+  </tal:block>\n
+</tal:block>\n
+\n
+<tal:block metal:define-macro="fill_assignment_start_date_and_stop_date">\n
+  <tr>\n
+    <td>type</td>\n
+    <td>//input[@name="subfield_field_my_start_date_year"]</td>\n
+    <td tal:content="python: configuration[\'assignment_start_date_year\']"></td>\n
+  </tr>\n
+  <tr>\n
+    <td>type</td>\n
+    <td>//input[@name="subfield_field_my_start_date_month"]</td>\n
+    <td tal:content="python: configuration[\'assignment_start_date_month\']"></td>\n
+  </tr>\n
+  <tr>\n
+    <td>type</td>\n
+    <td>//input[@name="subfield_field_my_start_date_day"]</td>\n
+    <td tal:content="python: configuration[\'assignment_start_date_day\']"></td>\n
+  </tr>\n
+\n
+  <tr>\n
+    <td>type</td>\n
+    <td>//input[@name="subfield_field_my_stop_date_year"]</td>\n
+    <td tal:content="python: configuration[\'assignment_stop_date_year\']"></td>\n
+  </tr>\n
+  <tr>\n
+    <td>type</td>\n
+    <td>//input[@name="subfield_field_my_stop_date_month"]</td>\n
+    <td tal:content="python: configuration[\'assignment_stop_date_month\']"></td>\n
+  </tr>\n
+  <tr>\n
+    <td>type</td>\n
+    <td>//input[@name="subfield_field_my_stop_date_day"]</td>\n
+    <td tal:content="python: configuration[\'assignment_stop_date_day\']"></td>\n
+  </tr>\n
+  <tr>\n
+    <td>clickAndWait</td>\n
+    <td>//button[@name="Base_edit:method"]</td>\n
+    <td></td>\n
+  </tr>\n
+  <tr>\n
+    <td>verifyTextPresent</td>\n
+    <td>Data updated.</td>\n
+    <td></td>\n
+  </tr>\n
+</tal:block>
+
+]]></unicode> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>Zuite_viewConfiguratorTestMacroLibrary</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></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/copyright_list b/bt5/erp5_configurator_standard_ui_test/bt/copyright_list
new file mode 100644
index 0000000000..ba1a66025b
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/copyright_list
@@ -0,0 +1 @@
+Copyright 2010, Nexedi SA
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/dependency_list b/bt5/erp5_configurator_standard_ui_test/bt/dependency_list
new file mode 100644
index 0000000000..4cd3e3b436
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/dependency_list
@@ -0,0 +1,2 @@
+erp5_crm
+erp5_configurator_standard
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/description b/bt5/erp5_configurator_standard_ui_test/bt/description
new file mode 100644
index 0000000000..5044021c37
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/description
@@ -0,0 +1,4 @@
+This contains zelenium tests for express instances. That includes:
+
+* tests for configurator
+* tests for basic configuration expected
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/license b/bt5/erp5_configurator_standard_ui_test/bt/license
new file mode 100644
index 0000000000..3a3e12bcad
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/license
@@ -0,0 +1 @@
+GPL
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/maintainer_list b/bt5/erp5_configurator_standard_ui_test/bt/maintainer_list
new file mode 100644
index 0000000000..23a62fbb45
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/maintainer_list
@@ -0,0 +1 @@
+rafael
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/publication_url b/bt5/erp5_configurator_standard_ui_test/bt/publication_url
new file mode 100644
index 0000000000..4af18322e3
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/publication_url
@@ -0,0 +1 @@
+None
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/revision b/bt5/erp5_configurator_standard_ui_test/bt/revision
new file mode 100644
index 0000000000..876cce90b1
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/revision
@@ -0,0 +1 @@
+654
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/template_format_version b/bt5/erp5_configurator_standard_ui_test/bt/template_format_version
new file mode 100644
index 0000000000..56a6051ca2
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/template_format_version
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/template_path_list b/bt5/erp5_configurator_standard_ui_test/bt/template_path_list
new file mode 100644
index 0000000000..12140657c8
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/template_path_list
@@ -0,0 +1,2 @@
+portal_tests/configurator_standard_zuite
+portal_tests/configurator_standard_zuite/**
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/template_skin_id_list b/bt5/erp5_configurator_standard_ui_test/bt/template_skin_id_list
new file mode 100644
index 0000000000..c610bad96b
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/template_skin_id_list
@@ -0,0 +1 @@
+erp5_configurator_standard_ui_test
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/title b/bt5/erp5_configurator_standard_ui_test/bt/title
new file mode 100644
index 0000000000..c610bad96b
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/title
@@ -0,0 +1 @@
+erp5_configurator_standard_ui_test
\ No newline at end of file
diff --git a/bt5/erp5_configurator_standard_ui_test/bt/version b/bt5/erp5_configurator_standard_ui_test/bt/version
new file mode 100644
index 0000000000..48360de846
--- /dev/null
+++ b/bt5/erp5_configurator_standard_ui_test/bt/version
@@ -0,0 +1 @@
+5.4.7
\ No newline at end of file
-- 
2.30.9