diff options
Diffstat (limited to 'addons/web/static/tests/chrome/action_manager_mobile_tests.js')
| -rw-r--r-- | addons/web/static/tests/chrome/action_manager_mobile_tests.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/addons/web/static/tests/chrome/action_manager_mobile_tests.js b/addons/web/static/tests/chrome/action_manager_mobile_tests.js index 6be9aae8e26..74f579e6dac 100644 --- a/addons/web/static/tests/chrome/action_manager_mobile_tests.js +++ b/addons/web/static/tests/chrome/action_manager_mobile_tests.js @@ -1,6 +1,7 @@ odoo.define('web.action_manager_mobile_tests', function (require) { "use strict"; +var ActionManager = require('web.ActionManager'); var testUtils = require('web.test_utils'); var createActionManager = testUtils.createActionManager; @@ -131,6 +132,57 @@ QUnit.module('ActionManager', { actionManager.destroy(); }); + + QUnit.test('data-mobile attribute on action button, in mobile', async function (assert) { + assert.expect(2); + + testUtils.mock.patch(ActionManager, { + doAction(action, options) { + if (typeof action !== 'number' && action.id === 1) { + assert.strictEqual(options.plop, 28); + } else { + assert.strictEqual(options.plop, undefined); + } + return this._super(...arguments); + }, + }); + + this.archs['partner,75,kanban'] = ` + <kanban> + <templates> + <t t-name="kanban-box"> + <div class="oe_kanban_global_click"> + <field name="display_name"/> + <button + name="1" + string="Execute action" + type="action" + data-mobile='{"plop": 28}'/> + </div> + </t> + </templates> + </kanban>`; + + this.actions.push({ + id: 100, + name: 'action 100', + res_model: 'partner', + type: 'ir.actions.act_window', + views: [[75, 'kanban']], + }); + + const actionManager = await createActionManager({ + actions: this.actions, + archs: this.archs, + data: this.data + }); + + await actionManager.doAction(100, {}); + await testUtils.dom.click(actionManager.$('button[data-mobile]:first')); + + actionManager.destroy(); + testUtils.mock.unpatch(ActionManager); + }); }); }); |
