diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_presentation_zuite/testOnlyfficePresentation.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_presentation_zuite/testOnlyfficePresentation.zpt
index 5a202c657fc6be5818b56026faa56ba92b5a6af1..552c7f942cad5889f98855fb0cd47962600f6a37 100644
--- a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_presentation_zuite/testOnlyfficePresentation.zpt
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_presentation_zuite/testOnlyfficePresentation.zpt
@@ -127,7 +127,7 @@
 </tr>
 <tr>
   <td>store</td>
-  <td tal:content="python: 'Test Titre %s' % DateTime()">Titre</td>
+  <td tal:content="python: 'test_presentation_%s' % DateTime().strftime('%Y%m%d%H%M%S')">Titre</td>
   <td>title</td>
 </tr>
 <tr>
@@ -181,36 +181,14 @@
   <td>${description}</td>
 </tr>
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/wait_for_load_presentation"/>
-<tr>
-  <td>click</td>
-  <td>//button[@data-i18n='Save']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope="notification"]//button[text()='Data Updated']</td>
-  <td></td>
-</tr>
+ <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/save"/>
 <tr>
   <td>click</td>
   <td>//a[@data-i18n='Document']</td>
   <td></td>
 </tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>link=Add</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>link=${title}</td>
-  <td></td>
-</tr>
-<tr>
-  <td>click</td>
-  <td>link=${title}</td>
-  <td></td>
-</tr>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/open_document_with_title"/>
+<tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/wait_for_load_presentation"/>
 <tr>
   <td>waitForElementPresent</td>
   <td>//textarea[@title='Description']</td>
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_spreadsheet_zuite/testOnlyfficeSpreadsheet.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_spreadsheet_zuite/testOnlyfficeSpreadsheet.zpt
index 3443afa668e84b96477fcd5ddc27fbd3006e01ae..6edb3c39e7b52e7589a1b56d6a0444129b0f4e8d 100644
--- a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_spreadsheet_zuite/testOnlyfficeSpreadsheet.zpt
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_spreadsheet_zuite/testOnlyfficeSpreadsheet.zpt
@@ -127,7 +127,7 @@
 </tr>
 <tr>
   <td>store</td>
-  <td tal:content="python: 'Test Titre %s' % DateTime()">Titre</td>
+  <td tal:content="python: 'test_spreadsheet_%s' % DateTime().strftime('%Y%m%d%H%M%S')">Titre</td>
   <td>title</td>
 </tr>
 <tr>
@@ -181,36 +181,14 @@
   <td>${description}</td>
 </tr>
  <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/wait_for_load_spreadsheet"/>
-<tr>
-  <td>click</td>
-  <td>//button[@data-i18n='Save']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope="notification"]//button[text()='Data Updated']</td>
-  <td></td>
-</tr>
+ <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/save"/>
 <tr>
   <td>click</td>
   <td>//a[@data-i18n='Document']</td>
   <td></td>
 </tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>link=Add</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>link=${title}</td>
-  <td></td>
-</tr>
-<tr>
-  <td>click</td>
-  <td>link=${title}</td>
-  <td></td>
-</tr>
+ <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/open_document_with_title"/>
+ <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/wait_for_load_spreadsheet"/>
 <tr>
   <td>waitForElementPresent</td>
   <td>//textarea[@title='Description']</td>
diff --git a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_text_zuite/testOnlyfficeText.zpt b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_text_zuite/testOnlyfficeText.zpt
index bc85d456219e9fd85967614de62c5bf4ac75c50e..d6f6f6e1e301e689d7bd3b980f00b47dbe094a3b 100644
--- a/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_text_zuite/testOnlyfficeText.zpt
+++ b/bt5/erp5_officejs_ui_test/PathTemplateItem/portal_tests/officejs_ui_ooo_text_zuite/testOnlyfficeText.zpt
@@ -127,7 +127,7 @@
 </tr>
 <tr>
   <td>store</td>
-  <td>Titre</td>
+  <td tal:content="python: 'test_text_%s' % DateTime().strftime('%Y%m%d%H%M%S')">Titre</td>
   <td>title</td>
 </tr>
 <tr>
@@ -181,22 +181,14 @@
   <td>${description}</td>
 </tr>
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/wait_for_load"/>
-<tr>
-  <td>click</td>
-  <td>//button[@data-i18n='Save']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope="notification"]//button[text()='Data Updated']</td>
-  <td></td>
-</tr>
+ <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/save"/>
 <tr>
   <td>click</td>
   <td>//a[@data-i18n='Document']</td>
   <td></td>
 </tr>
 <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/open_document_with_title"/>
+ <tal:block metal:use-macro="here/Zuite_CommonTemplateForOnlyOffice/macros/wait_for_load"/>
 <tr>
   <td>waitForElementPresent</td>
   <td>//textarea[@title='Description']</td>
diff --git a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/Zuite_CommonTemplateForOnlyOffice.zpt b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/Zuite_CommonTemplateForOnlyOffice.zpt
index d98909220316226e0e0c93e0ac5bc8122f868a95..7957d86e8eff63042feea97b6616e641a3f241a3 100644
--- a/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/Zuite_CommonTemplateForOnlyOffice.zpt
+++ b/bt5/erp5_officejs_ui_test/SkinTemplateItem/portal_skins/erp5_officejs_ui_test/Zuite_CommonTemplateForOnlyOffice.zpt
@@ -1,7 +1,9 @@
 <tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"
            xmlns:metal="http://xml.zope.org/namespaces/metal">
   <tal:block metal:define-macro="wait_for_load_spreadsheet">
-    <!-- Wait for OnlyOffice run -->
+    <tr>
+      <td colspan="3"><b>Wait for load OnlyOffice</b></td>
+    </tr>
     <tr>
       <td>waitForElementPresent</td>
       <td>//div[@class='asc-loadmask-title']</td>
@@ -19,7 +21,9 @@
     </tr>
   </tal:block>
   <tal:block metal:define-macro="wait_for_load">
-    <!-- Wait for OnlyOffice run -->
+    <tr>
+      <td colspan="3"><b>Wait for load OnlyOffice</b></td>
+    </tr>
     <tr>
       <td>waitForElementPresent</td>
       <td>//div[@class='asc-loadmask-title']</td>
@@ -36,8 +40,10 @@
       <td></td>
     </tr>
   </tal:block>
-    <tal:block metal:define-macro="wait_for_load_presentation">
-    <!-- Wait for OnlyOffice run -->
+  <tal:block metal:define-macro="wait_for_load_presentation">
+    <tr>
+      <td colspan="3"><b>Wait for load OnlyOffice</b></td>
+    </tr>
     <tr>
       <td>waitForElementPresent</td>
       <td>//div[@class='asc-loadmask-title']</td>
diff --git a/bt5/erp5_only_office/SkinTemplateItem/portal_skins/erp5_only_office/onlyoffice.gadget.js.js b/bt5/erp5_only_office/SkinTemplateItem/portal_skins/erp5_only_office/onlyoffice.gadget.js.js
index 5eaf591c16dee1584e064cb58a4f91fedd141f75..1cebade638cef9bd918c6e226ea4377e7c83e716 100644
--- a/bt5/erp5_only_office/SkinTemplateItem/portal_skins/erp5_only_office/onlyoffice.gadget.js.js
+++ b/bt5/erp5_only_office/SkinTemplateItem/portal_skins/erp5_only_office/onlyoffice.gadget.js.js
@@ -1,6 +1,6 @@
 /*global window, rJS, RSVP, DocsAPI, console, document,
  Common, require, jIO, URL, FileReader, atob, ArrayBuffer,
-  Uint8Array, XMLHttpRequest, Blob, Rusha*/
+  Uint8Array, XMLHttpRequest, Blob, Rusha, define*/
 /*jslint nomen: true, maxlen:80, indent:2*/
 "use strict";
 if (Common === undefined) {
@@ -277,7 +277,7 @@ DocsAPI.DocEditor.version = function () {
               return g.props.value_zip_storage.getAttachment('/', 'body.txt')
                 .push(undefined, function (error) {
                   if (error.status_code === 404) {
-                    throw 'not supported format of document: "' +
+                    throw 'not supported format of document: body.txt absent "' +
                     value.slice(0, 100) + '"';
                   }
                   throw error;
@@ -395,7 +395,7 @@ DocsAPI.DocEditor.version = function () {
           require.onError = function (error) {
             console.error(error);
           };
-          require.config({catchError:true});
+          require.config({catchError: true});
 
           if (g.props.binary_loader) {
             g.props.base_url = "onlyoffice-bin/";
@@ -441,7 +441,20 @@ DocsAPI.DocEditor.version = function () {
           }
         })
         .push(function () {
-          return zip.getAttachment('/', '/');
+          return zip.getAttachment('/', 'body.txt')
+            .push(undefined, function (error) {
+              if (error.status_code === 404) {
+                return "";
+              }
+              throw error;
+            });
+        })
+        .push(function (Editor_bin) {
+          if (Editor_bin) {
+            return zip.getAttachment('/', '/');
+          } else {
+            return new Blob();
+          }
         })
         .push(function (zip_blob) {
           return jIO.util.readBlobAsDataURL(zip_blob);