summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/views/abstract_controller_tests.js
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2018-10-31 16:21:18 +0000
committerXavier Morel <xmo@odoo.com>2019-01-29 10:22:17 +0000
commit9db74611ded3dcb64fc57724c032b44d9d170fae (patch)
treee63a92c2fe4a170688b0adaaf4d8b8d86316fc35 /addons/web/static/tests/views/abstract_controller_tests.js
parent42fbee83ad2f3f33188cf27a1449b8875c2d8a2a (diff)
[IMP] web: action links from bits & pieces
Before this, the action manager only supported auto-triggering actions from (model, method) or (action_name). This adds support for providing all the action details via data attributes: * model (defaults to current action's) * resid (defaults to none) * views (defaults to list, form, unless resid is specified then defaults to just form) * domain (defaults to []) * context (defaults to {active_id, active_ids, active_model} from current action if the model has not changed, empty otherwise) The action's name/title is either the link's title (?) or its textual content.
Diffstat (limited to 'addons/web/static/tests/views/abstract_controller_tests.js')
-rw-r--r--addons/web/static/tests/views/abstract_controller_tests.js21
1 files changed, 17 insertions, 4 deletions
diff --git a/addons/web/static/tests/views/abstract_controller_tests.js b/addons/web/static/tests/views/abstract_controller_tests.js
index cf5810219c7..73bc41d650b 100644
--- a/addons/web/static/tests/views/abstract_controller_tests.js
+++ b/addons/web/static/tests/views/abstract_controller_tests.js
@@ -43,7 +43,7 @@ odoo.define("base.abstract_controller_tests", function(require) {
QUnit.test(
'click on a a[type="action"] child triggers the correct action',
function(assert) {
- assert.expect(3);
+ assert.expect(7);
var html =
"<div>" +
@@ -51,6 +51,9 @@ odoo.define("base.abstract_controller_tests", function(require) {
'<a name="a2" type="action" class="with-child">' +
"<span>child</input>" +
"</a>" +
+ '<a type="action" data-model="foo" data-method="bar" class="method">method</a>' +
+ '<a type="action" data-model="foo" data-res-id="42" class="descr">descr</a>' +
+ '<a type="action" data-model="foo" class="descr2">descr2</a>' +
"</div>";
var view = createView({
@@ -59,14 +62,24 @@ odoo.define("base.abstract_controller_tests", function(require) {
model: "test_model",
arch: "<test/>",
intercepts: {
- do_action: function(event) {
- assert.step(event.data.action);
+ do_action: function (event) {
+ assert.step(event.data.action.name || event.data.action);
}
+ },
+ mockRPC: function (route, args) {
+ if (args.model === 'foo' && args.method === 'bar') {
+ assert.step("method");
+ return $.when({name: 'method'});
+ }
+ return this._super.apply(this, arguments);
}
});
testUtils.dom.click(view.$(".simple"));
testUtils.dom.click(view.$(".with-child span"));
- assert.verifySteps(["a1", "a2"]);
+ testUtils.dom.click(view.$(".method"));
+ testUtils.dom.click(view.$(".descr"));
+ testUtils.dom.click(view.$(".descr2"));
+ assert.verifySteps(["a1", "a2", "method", "method", "descr", "descr2"]);
}
);
}