summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/tools
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-10-01 16:01:54 +0200
committerChristophe Simonis <chs@odoo.com>2018-10-01 16:01:54 +0200
commit43b63a04656276926dfecd65d3058d6464ee8ac5 (patch)
treed0f7c5b4a66540fa8422de2be928a30167e45eed /addons/web/static/tests/tools
parentb2870ae1ebc4d198c69142a2399827848d7d30b4 (diff)
parent57e387b645200756c29423af463afe001707f2ac (diff)
[MERGE] forward port branch saas-11.4 up to 57e387b6452
Diffstat (limited to 'addons/web/static/tests/tools')
-rw-r--r--addons/web/static/tests/tools/debug_manager_tests.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/addons/web/static/tests/tools/debug_manager_tests.js b/addons/web/static/tests/tools/debug_manager_tests.js
index 8e41481734f..a52ad9e9c65 100644
--- a/addons/web/static/tests/tools/debug_manager_tests.js
+++ b/addons/web/static/tests/tools/debug_manager_tests.js
@@ -84,5 +84,84 @@ QUnit.module('DebugManager', {}, function () {
debugManager.destroy();
});
+
+ QUnit.test("Debug: Set defaults with right model", function (assert) {
+ assert.expect(2);
+
+ /* Click on debug > set default,
+ * set some defaults, click on save
+ * model and some other data should be sent to server
+ */
+
+ // We'll need a full blown architecture with some data
+ var data = {
+ partner: {
+ fields: {
+ foo: {string: "Foo", type: "char", default: "My little Foo Value"},
+ },
+ records: [{
+ id: 1,
+ foo: "yop",
+ }]
+ },
+ 'ir.default': { // We just need this to be defined
+ fields: {},
+ },
+ }
+
+ var form = testUtils.createView({
+ View: FormView,
+ model: 'partner',
+ data: data,
+ arch: '<form string="Partners">' +
+ '<field name="foo" />' +
+ '</form>',
+ res_id: 1,
+ });
+
+ // Now the real tested component
+ var debugManager = createDebugManager({
+ data: data,
+ mockRPC: function (route, args) {
+ if (route == "/web/dataset/call_kw/ir.default/set") {
+ assert.deepEqual(args.args, ["partner", "foo", "yop", true, true, false],
+ 'Model, field, value and booleans for current user/company should have been passed');
+ return $.when();
+ }
+ return this._super.apply(this, arguments);
+ }
+ });
+
+ debugManager.appendTo($('#qunit-fixture'));
+
+ // Simulate update debug manager from web client
+ var action = {
+ views: [{
+ fieldsView: {
+ view_id: 1,
+ model: 'partner',
+ type: 'form',
+ },
+ type: "form",
+ }],
+ res_model: 'partner',
+ };
+
+ // We are all set
+ debugManager.update('action', action, form);
+
+ // click on set_defaults dropdown
+ debugManager.$('a[data-action="set_defaults"]').click();
+ var $modal = $('.modal-content');
+ assert.strictEqual($modal.length, 1, 'One modal present');
+
+ $modal.find('select[id=formview_default_fields] option[value=foo]').prop('selected', true);
+
+ // Save
+ $modal.find('.modal-footer button').eq(1).click();
+
+ form.destroy();
+ debugManager.destroy();
+ });
});
});