diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-08-08 11:52:13 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-08-08 11:52:13 +0200 |
| commit | b792ba7d9a80e856e3c69c2852e6d44b78d0e13f (patch) | |
| tree | a3ee5b7ef9f9317866deeb2b3e5964020c87b8fb /addons/web/static/tests/views/calendar_tests.js | |
| parent | 22e0f88bce5bf162a6c67e915a3c27b101f74f2b (diff) | |
| parent | 752b2553c6fad061ebf23e13585f7b7489b20840 (diff) | |
[MERGE] forward port branch saas-12.3 up to 752b2553c6f
Diffstat (limited to 'addons/web/static/tests/views/calendar_tests.js')
| -rw-r--r-- | addons/web/static/tests/views/calendar_tests.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js index 16e304c14a6..8a5b8343208 100644 --- a/addons/web/static/tests/views/calendar_tests.js +++ b/addons/web/static/tests/views/calendar_tests.js @@ -5,6 +5,7 @@ var AbstractStorageService = require('web.AbstractStorageService'); var CalendarView = require('web.CalendarView'); var CalendarRenderer = require('web.CalendarRenderer'); var Dialog = require('web.Dialog'); +var ViewDialogs = require('web.view_dialogs'); var fieldUtils = require('web.field_utils'); var mixins = require('web.mixins'); var RamStorage = require('web.RamStorage'); @@ -482,6 +483,63 @@ QUnit.module('Views', { calendar.destroy(); }); + QUnit.test('open multiple event form at the same time', async function (assert) { + assert.expect(2); + + var prom = testUtils.makeTestPromise(); + var counter = 0; + testUtils.mock.patch(ViewDialogs.FormViewDialog, { + open: function () { + counter++; + this.options = _.omit(this.options, 'fields_view'); // force loadFieldView + return this._super.apply(this, arguments); + }, + loadFieldView: function () { + var self = this; + var args = arguments; + var _super = this._super; + return prom.then(function () { + return _super.apply(self, args); + }); + }, + }); + + var event = $.Event(); + var calendar = await createCalendarView({ + View: CalendarView, + model: 'event', + data: this.data, + arch: + '<calendar class="o_calendar_test" '+ + 'string="Events" ' + + 'event_open_popup="true" '+ + 'date_start="start" '+ + 'quick_add="False" '+ + 'date_stop="stop" '+ + 'all_day="allday" '+ + 'mode="month" '+ + 'readonly_form_view_id="1">'+ + '<field name="name"/>'+ + '</calendar>', + archs: archs, + viewOptions: { + initialDate: initialDate, + }, + }); + + var $cell = calendar.$('.fc-day-grid .fc-row:eq(2) .fc-day:eq(2)'); + for (var i = 0; i < 5; i++) { + await testUtils.dom.triggerMouseEvent($cell, "mousedown"); + await testUtils.dom.triggerMouseEvent($cell, "mouseup"); + } + prom.resolve(); + await testUtils.nextTick(); + assert.equal(counter, 5, "there should had been 5 attemps to open a modal"); + assert.containsOnce($('body'), '.modal', "there should be only one open modal"); + + calendar.destroy(); + }); + QUnit.test('create event with timezone in week mode European locale', async function (assert) { assert.expect(5); |
