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