diff --git a/addons/web/static/src/js/tools/tools.js b/addons/web/static/src/js/tools/tools.js new file mode 100644 index 00000000000..f886d80d3c5 --- /dev/null +++ b/addons/web/static/src/js/tools/tools.js @@ -0,0 +1,22 @@ +odoo.define('web.tools', function (require) { +"use strict"; + +/** + * Wrapper for deprecated functions that display a warning message. + * + * @param {Function} fn the deprecated function + * @param {string} [message=''] optional message to display + * @returns {Function} + */ +function deprecated(fn, message) { + return function () { + console.warn(message || (fn.name + ' is deprecated.')); + fn.apply(this, arguments); + }; +} + +return { + deprecated: deprecated, +}; + +}); diff --git a/addons/web/static/tests/helpers/test_utils.js b/addons/web/static/tests/helpers/test_utils.js index 2ecc30b3872..8529cae52fb 100644 --- a/addons/web/static/tests/helpers/test_utils.js +++ b/addons/web/static/tests/helpers/test_utils.js @@ -22,6 +22,13 @@ var testUtilsKanban = require('web.test_utils_kanban'); var testUtilsMock = require('web.test_utils_mock'); var testUtilsModal = require('web.test_utils_modal'); var testUtilsPivot = require('web.test_utils_pivot'); +var tools = require('web.tools'); + +function deprecated(fn, type) { + var msg = `Helper 'testUtils.${fn.name}' is deprecated. ` + + `Please use 'testUtils.${type}.${fn.name}' instead.`; + return tools.deprecated(fn, msg); +}; // Loading static files cannot be properly simulated when their real content is // really needed. This is the case for static XML files so we load them here, @@ -99,6 +106,19 @@ return $.when( createView: testUtilsCreate.createView, createModel: testUtilsCreate.createModel, createParent: testUtilsCreate.createParent, + + // backward-compatibility + addMockEnvironment: deprecated(testUtilsMock.addMockEnvironment, 'mock'), + dragAndDrop: deprecated(testUtilsDom.dragAndDrop, 'dom'), + fieldsViewGet: deprecated(testUtilsMock.fieldsViewGet, 'mock'), + intercept: deprecated(testUtilsMock.intercept, 'mock'), + openDatepicker: deprecated(testUtilsDom.openDatepicker, 'dom'), + patch: deprecated(testUtilsMock.patch, 'mock'), + patchDate: deprecated(testUtilsMock.patchDate, 'mock'), + triggerKeypressEvent: deprecated(testUtilsDom.triggerKeypressEvent, 'dom'), + triggerMouseEvent: deprecated(testUtilsDom.triggerMouseEvent, 'dom'), + triggerPositionalMouseEvent: deprecated(testUtilsDom.triggerPositionalMouseEvent, 'dom'), + unpatch: deprecated(testUtilsMock.unpatch, 'mock'), }; }); diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 15b4c49dcd6..e7729ab9fad 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -223,6 +223,7 @@