diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-08-06 18:29:20 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-08-06 18:48:24 +0200 |
| commit | 7d04dc1c7c51dfd18951912628b14bee446a2b01 (patch) | |
| tree | e89601e493bea092239df55a5ef406b2e05d7d7b /addons/web/static/tests | |
| parent | b091014686d86ad793e2d1cbf0e7ffea8fbde361 (diff) | |
| parent | 9e74730a26b09fa4e516bc0d76550f7c7c502fac (diff) | |
[MERGE] forward port branch saas-12.2 up to 9e74730a26b
Diffstat (limited to 'addons/web/static/tests')
| -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 e217e47f3d1..d8a34561d87 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'); @@ -475,6 +476,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); |
