diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-03-29 18:10:57 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-03-29 18:10:57 +0100 |
| commit | 2a06f4dcf3ab03d3d0b6ed14d6ccd12140063b27 (patch) | |
| tree | c3bf62aedae655cdaddb61f6b86703c2a1d9448d /addons/web/static/tests/fields/relational_fields_tests.js | |
| parent | 1a5ab9265425934a717fd6d57260146a524c208a (diff) | |
| parent | 09fb2469b490d48ce937a41a63447e099b93c637 (diff) | |
[MERGE] forward port branch 12.0 up to 09fb2469b49
Diffstat (limited to 'addons/web/static/tests/fields/relational_fields_tests.js')
| -rw-r--r-- | addons/web/static/tests/fields/relational_fields_tests.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js index 4d0f89c1976..b79e0d4a660 100644 --- a/addons/web/static/tests/fields/relational_fields_tests.js +++ b/addons/web/static/tests/fields/relational_fields_tests.js @@ -283,6 +283,67 @@ QUnit.module('relational_fields', { form.destroy(); }); + QUnit.test('focus when closing many2one modal in many2one modal', function (assert) { + assert.expect(12); + + var form = createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: '<form string="Partners">' + + '<field name="trululu"/>' + + '</form>', + res_id: 2, + archs: { + 'partner,false,form': '<form><field name="trululu"/></form>' + }, + mockRPC: function (route, args) { + if (args.method === 'get_formview_id') { + return $.when(false); + } + return this._super(route, args); + }, + }); + + // Open many2one modal + form.$buttons.find('.btn.o_form_button_edit').click(); + form.$('.o_external_button').click(); + var $originalModal = $('.modal-dialog'); + var $focusedModal = $(document.activeElement).closest('.modal-dialog'); + + assert.equal($originalModal.length, 1, 'There should be one modal'); + assert.equal($originalModal[0], $focusedModal[0], 'Modal is focused'); + assert.ok($('body').hasClass('modal-open'), 'Modal is said opened'); + + // Open many2one modal of field in many2one modal + $originalModal.find('.o_external_button').click(); + var $modals = $('.modal-dialog'); + $focusedModal = $(document.activeElement).closest('.modal-dialog'); + + assert.equal($modals.length, 2, 'There should be two modals'); + assert.equal($modals[1], $focusedModal[0], 'Last modal is focused'); + assert.ok($('body').hasClass('modal-open'), 'Modal is said opened'); + + // Close second modal + $modals.last().find('button[class="close"]').click(); + var $modal = $('.modal-dialog'); + $focusedModal = $(document.activeElement).closest('.modal-dialog'); + + assert.equal($modal.length, 1, 'There should be one modal'); + assert.equal($modal[0], $originalModal[0], 'First modal is still opened'); + assert.equal($modal[0], $focusedModal[0], 'Modal is focused'); + assert.ok($('body').hasClass('modal-open'), 'Modal is said opened'); + + // Close first modal + $modal.find('button[class="close"]').click(); + $modal = $('.modal-dialog.modal-lg'); + + assert.equal($modal.length, 0, 'There should be no modal'); + assert.notOk($('body').hasClass('modal-open'), 'Modal is not said opened'); + + form.destroy(); + }); + QUnit.test('one2many from a model that has been sorted', function (assert) { assert.expect(1); |
