summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/web/static/src/js/chrome/action_manager_act_window.js2
-rw-r--r--addons/web/static/tests/chrome/action_manager_tests.js20
2 files changed, 21 insertions, 1 deletions
diff --git a/addons/web/static/src/js/chrome/action_manager_act_window.js b/addons/web/static/src/js/chrome/action_manager_act_window.js
index ee39d7cb7a7..68a52ea12aa 100644
--- a/addons/web/static/src/js/chrome/action_manager_act_window.js
+++ b/addons/web/static/src/js/chrome/action_manager_act_window.js
@@ -84,7 +84,7 @@ ActionManager.include({
// jQuery's BBQ plugin does some parsing on values that are valid integers
// which means that if there's only one item, it will do parseInt() on it,
// otherwise it will keep the comma seperated list as string
- context.active_ids = state.active_ids.split(',').map(function (id) {
+ context.active_ids = state.active_ids.toString().split(',').map(function (id) {
return parseInt(id, 10) || id;
});
} else if (state.active_id) {
diff --git a/addons/web/static/tests/chrome/action_manager_tests.js b/addons/web/static/tests/chrome/action_manager_tests.js
index 9ade9a544ec..8511a8bfb38 100644
--- a/addons/web/static/tests/chrome/action_manager_tests.js
+++ b/addons/web/static/tests/chrome/action_manager_tests.js
@@ -1339,6 +1339,26 @@ QUnit.module('ActionManager', {
actionManager.destroy();
});
+ QUnit.test('state with integer active_ids should not crash', async function (assert) {
+ assert.expect(0);
+
+ var actionManager = await createActionManager({
+ actions: this.actions,
+ mockRPC: function (route, args) {
+ if (route === '/web/action/run') {
+ return Promise.resolve();
+ }
+ return this._super.apply(this, arguments);
+ },
+ });
+ await actionManager.loadState({
+ action: 2,
+ active_ids: 3,
+ });
+
+ actionManager.destroy();
+ });
+
QUnit.module('Concurrency management');
QUnit.test('drop previous actions if possible', async function (assert) {