From dd628ae55606c45c0f35224c3e3c6f9839c5f6bf Mon Sep 17 00:00:00 2001
From: Xiaowu Zhang <xiaowu.zhang@nexedi.com>
Date: Mon, 14 Feb 2022 15:59:27 +0000
Subject: [PATCH] erp5_report_renderjs_ui_test: add report tests

---
 .../renderjs_ui_report_language_zuite.xml     |  26 +++
 .../testGeneralPrint.xml                      |  58 ++++++
 .../testGeneralPrint.zpt                      | 145 +++++++++++++++
 ...estProductionOrderPrintProductionOrder.xml |  58 ++++++
 ...estProductionOrderPrintProductionOrder.zpt | 145 +++++++++++++++
 ...nPackingListPrintProductionPackingList.xml |  58 ++++++
 ...nPackingListPrintProductionPackingList.zpt | 145 +++++++++++++++
 .../testProjectRelatedTaskReport.xml          |  58 ++++++
 .../testProjectRelatedTaskReport.zpt          | 139 ++++++++++++++
 .../testSaleOrderOrderSummaryReport.xml       |  58 ++++++
 .../testSaleOrderOrderSummaryReport.zpt       | 145 +++++++++++++++
 .../testSaleOrderPrintOrder.xml               |  58 ++++++
 .../testSaleOrderPrintOrder.zpt               | 145 +++++++++++++++
 .../testSalePackingListPrintPackingList.xml   |  58 ++++++
 .../testSalePackingListPrintPackingList.zpt   | 142 ++++++++++++++
 ...st.erp5.testFunctionalRJSReportLanguage.py |  61 ++++++
 ...t.erp5.testFunctionalRJSReportLanguage.xml | 173 ++++++++++++++++++
 .../bt/dependency_list                        |   5 +
 .../bt/template_format_version                |   1 +
 .../bt/template_path_list                     |   2 +
 .../bt/template_test_id_list                  |   1 +
 .../bt/test_dependency_list                   |   1 +
 bt5/erp5_report_renderjs_ui_test/bt/title     |   1 +
 23 files changed, 1683 insertions(+)
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.zpt
 create mode 100644 bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.py
 create mode 100644 bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.xml
 create mode 100644 bt5/erp5_report_renderjs_ui_test/bt/dependency_list
 create mode 100644 bt5/erp5_report_renderjs_ui_test/bt/template_format_version
 create mode 100644 bt5/erp5_report_renderjs_ui_test/bt/template_path_list
 create mode 100644 bt5/erp5_report_renderjs_ui_test/bt/template_test_id_list
 create mode 100644 bt5/erp5_report_renderjs_ui_test/bt/test_dependency_list
 create mode 100644 bt5/erp5_report_renderjs_ui_test/bt/title

diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite.xml
new file mode 100644
index 0000000000..298d45661c
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_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>renderjs_ui_report_language_zuite</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.xml
new file mode 100644
index 0000000000..b44f7adf57
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.xml
@@ -0,0 +1,58 @@
+<?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>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>testGeneralPrint</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.zpt
new file mode 100644
index 0000000000..fdd0915236
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testGeneralPrint.zpt
@@ -0,0 +1,145 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test General Print</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test General Print</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/sale_order_module</td>
+  <td></td>
+</tr>
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+       return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Print"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//font[contains(text(), "Fournisseur")]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//font[contains(text(), "Mode de livraison")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.xml
new file mode 100644
index 0000000000..366314806b
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.xml
@@ -0,0 +1,58 @@
+<?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>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>testProductionOrderPrintProductionOrder</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.zpt
new file mode 100644
index 0000000000..5024d58a51
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionOrderPrintProductionOrder.zpt
@@ -0,0 +1,145 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test Production Order Report</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test Produdction Order Report</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/production_order_module</td>
+  <td></td>
+</tr>
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Production Order']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Production Order']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+       return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Print Production Order"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Fournisseur")]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Date du document")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.xml
new file mode 100644
index 0000000000..dfbdda7301
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.xml
@@ -0,0 +1,58 @@
+<?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>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>testProductionPackingListPrintProductionPackingList</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.zpt
new file mode 100644
index 0000000000..b3418b29a9
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProductionPackingListPrintProductionPackingList.zpt
@@ -0,0 +1,145 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test Production Packing List Report</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test Produdction Packing List Report</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/production_packing_list_module</td>
+  <td></td>
+</tr>
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Production Packing List']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Production Packing List']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+       return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Print Packing List"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Fournisseur")]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Date du document")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.xml
new file mode 100644
index 0000000000..7ffe233dbf
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.xml
@@ -0,0 +1,58 @@
+<?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>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>testProjectRelatedTaskReport</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.zpt
new file mode 100644
index 0000000000..79dca2a6e7
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testProjectRelatedTaskReport.zpt
@@ -0,0 +1,139 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test Project Report</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test Project Report</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/project_module</td>
+  <td></td>
+</tr>
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Related Tasks Report']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Related Tasks Report']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+      return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Related Tasks Report"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//font[contains(text(), "Date de d茅but")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.xml
new file mode 100644
index 0000000000..2813346c14
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.xml
@@ -0,0 +1,58 @@
+<?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>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>testSaleOrderOrderSummaryReport</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.zpt
new file mode 100644
index 0000000000..55a4674730
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderOrderSummaryReport.zpt
@@ -0,0 +1,145 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test Sale Order Report</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test Sale Order Report</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/sale_order_module</td>
+  <td></td>
+</tr>
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Order Summary']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Order Summary']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_quantity_unit_list"]</td>
+  <td>day</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+      return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Order Summary"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//font[contains(text(), "Date de livraison")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.xml
new file mode 100644
index 0000000000..c2ca7d7d36
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.xml
@@ -0,0 +1,58 @@
+<?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>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>testSaleOrderPrintOrder</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.zpt
new file mode 100644
index 0000000000..dc8fbcd671
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSaleOrderPrintOrder.zpt
@@ -0,0 +1,145 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test Sale Order Report</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test Sale Order Report</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/sale_order_module</td>
+  <td></td>
+</tr>
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Order']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Order']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+       return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Print Order"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Fournisseur")]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Date du document")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.xml b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.xml
new file mode 100644
index 0000000000..bfe6068719
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.xml
@@ -0,0 +1,58 @@
+<?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>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>testSalePackingListPrintPackingList</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_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.zpt b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.zpt
new file mode 100644
index 0000000000..81023bc7d8
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_report_language_zuite/testSalePackingListPrintPackingList.zpt
@@ -0,0 +1,142 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test Sale Packing List Report</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test Sale Packing List Report</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/renderjs_runner/#/sale_packing_list_module</td>
+  <td></td>
+</tr>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_app_loaded" />
+
+<tal:block tal:define="click_configuration python: {'text': 'Add'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/click_on_header_link" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/submit_dialog" />
+<tal:block tal:define="notification_configuration python: {'class': 'success',
+                                                           'text': 'Object created.'}">
+  <tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_notification" />
+</tal:block>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForRenderjsUi/macros/wait_for_content_loaded" />
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//div[contains(@data-gadget-url, 'gadget_erp5_panel.html')]//div[contains(@data-gadget-url, 'gadget_erp5_field_multicheckbox.html')]//label</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n="Export"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Packing List']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>click</td>
+  <td>//ul[@class="document-listview"]//a[text()='Print Packing List']</td>
+  <td></td>
+</tr>
+
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_format"]</td>
+  <td>html</td>
+</tr>
+
+<tr>
+  <td>type</td>
+  <td>//select[@id="field_your_target_language"]</td>
+  <td>fr</td>
+</tr>
+
+<!-- overwrite createObjectURL to read server response and append result to Dom -->
+<tr>
+  <td>getEval</td>
+  <td>
+    window.URL.createObjectURL = function (blob) {
+      window.jIO.util.readBlobAsText(blob)
+        .then(function (answer) {
+          text_node = document.createElement('div');
+          text_node.innerHTML = answer.target.result;
+          text_node.setAttribute("id", "text_node_for_blob");
+          document.getElementById("selenium_myiframe").contentWindow.document.body.appendChild(text_node);
+        })
+        .then(undefined, function(error) {console.log(error);});
+      return '';
+    };
+  </td>
+  <td></td>
+</tr>
+
+
+
+<tr>
+  <td>click</td>
+  <td>//input[@value="Print Packing List"]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[text()='Data received.']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@id='text_node_for_blob']</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Fournisseur")]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>verifyElementPresent</td>
+  <td>//div[@id='text_node_for_blob']//p[contains(text(), "Date du document")]</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.py b/bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.py
new file mode 100644
index 0000000000..3928edfa53
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.py
@@ -0,0 +1,61 @@
+##############################################################################
+#
+# Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.
+#                     Kazuhiko <kazuhiko@nexedi.com>
+#                     Rafael Monnerat <rafael@nexedi.com>
+#
+# WARNING: This program as such is intended to be used by professional
+# programmers who take the whole responsability of assessing all potential
+# consequences resulting from its eventual inadequacies and bugs
+# End users who are looking for a ready-to-use solution with commercial
+# garantees and support are strongly adviced to contract a Free Software
+# Service Company
+#
+# This program is Free Software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+#
+##############################################################################
+import unittest
+
+from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import ERP5TypeFunctionalTestCase
+
+class TestFunctionalRJSReportLanguage(ERP5TypeFunctionalTestCase):
+  foreground = 0
+  run_only = "renderjs_ui_report_language_zuite"
+  def afterSetUp(self):
+    ERP5TypeFunctionalTestCase.afterSetUp(self)
+    portal = self.getPortalObject()
+    portal.portal_preferences.default_site_preference.edit(preferred_report_style="ODS")
+    if portal.portal_preferences.default_site_preference.getPreferenceState() !='global':
+      portal.portal_preferences.default_site_preference.enable()
+    if not getattr(portal.portal_categories.quantity_unit, 'day', None):
+      portal.portal_categories.quantity_unit.newContent(
+        portal_type='Category',
+        id = 'day',
+        title='Day'
+      )
+    self.tic()
+
+  def getBusinessTemplateList(self):
+    return (
+      'erp5_web_renderjs_ui',
+      'erp5_web_renderjs_ui_test',
+      'erp5_ui_test_core',
+      'erp5_trade',
+    )
+
+def test_suite():
+  suite = unittest.TestSuite()
+  suite.addTest(unittest.makeSuite(TestFunctionalRJSReportLanguage))
+  return suite
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.xml b/bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.xml
new file mode 100644
index 0000000000..7f0fb4c13e
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalRJSReportLanguage.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Test Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_recorded_property_dict</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>testFunctionalRJSReportLanguage</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>test.erp5.testFunctionalRJSReportLanguage</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Test Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAQ=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="4" aka="AAAAAAAAAAQ=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>error_message</string> </key>
+                      <value>
+                        <list>
+                          <persistent> <string encoding="base64">AAAAAAAAAAU=</string> </persistent>
+                        </list>
+                      </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="5" aka="AAAAAAAAAAU=">
+    <pickle>
+      <global name="Message" module="Products.ERP5Type.Message"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default</string> </key>
+            <value> <string>ID is invalid, should be \'${id_prefix}.VERSION.REFERENCE\'</string> </value>
+        </item>
+        <item>
+            <key> <string>domain</string> </key>
+            <value> <string>erp5_ui</string> </value>
+        </item>
+        <item>
+            <key> <string>mapping</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>id_prefix</string> </key>
+                    <value> <string>test</string> </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+        <item>
+            <key> <string>message</string> </key>
+            <value> <string>ID is invalid, should be \'${id_prefix}.VERSION.REFERENCE\'</string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_report_renderjs_ui_test/bt/dependency_list b/bt5/erp5_report_renderjs_ui_test/bt/dependency_list
new file mode 100644
index 0000000000..8f90b98565
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/bt/dependency_list
@@ -0,0 +1,5 @@
+erp5_web_renderjs_ui_test
+erp5_trade
+erp5_ods_style
+erp5_mrp
+erp5_l10n_fr
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/bt/template_format_version b/bt5/erp5_report_renderjs_ui_test/bt/template_format_version
new file mode 100644
index 0000000000..56a6051ca2
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/bt/template_format_version
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/bt/template_path_list b/bt5/erp5_report_renderjs_ui_test/bt/template_path_list
new file mode 100644
index 0000000000..100882ff13
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/bt/template_path_list
@@ -0,0 +1,2 @@
+portal_tests/renderjs_ui_report_language_zuite
+portal_tests/renderjs_ui_report_language_zuite/**
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/bt/template_test_id_list b/bt5/erp5_report_renderjs_ui_test/bt/template_test_id_list
new file mode 100644
index 0000000000..bef773b5f3
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/bt/template_test_id_list
@@ -0,0 +1 @@
+test.erp5.testFunctionalRJSReportLanguage
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/bt/test_dependency_list b/bt5/erp5_report_renderjs_ui_test/bt/test_dependency_list
new file mode 100644
index 0000000000..bff77e32d8
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/bt/test_dependency_list
@@ -0,0 +1 @@
+erp5_full_text_mroonga_catalog
\ No newline at end of file
diff --git a/bt5/erp5_report_renderjs_ui_test/bt/title b/bt5/erp5_report_renderjs_ui_test/bt/title
new file mode 100644
index 0000000000..57a32065f1
--- /dev/null
+++ b/bt5/erp5_report_renderjs_ui_test/bt/title
@@ -0,0 +1 @@
+erp5_report_renderjs_ui_test
\ No newline at end of file
-- 
2.30.9