|
1 | 1 | import $ from 'jquery'; |
2 | | -import { noop } from 'core/utils/common'; |
3 | | -import Class from 'core/class'; |
4 | | -import Views from '__internal/ui/calendar/calendar.views'; |
5 | 2 |
|
6 | 3 | const TEXTEDITOR_INPUT_SELECTOR = '.dx-texteditor-input'; |
7 | 4 |
|
8 | 5 | window.DevExpress = window.DevExpress || {}; |
| 6 | +DevExpress.ui = DevExpress.ui || {}; |
| 7 | +DevExpress.ui.testing = DevExpress.ui.testing || {}; |
9 | 8 |
|
10 | | -$.extend(true, DevExpress.ui = DevExpress.ui || {}, { |
11 | | - testing: { |
12 | | - BaseCalendarFixture: Class.inherit({ |
13 | | - extractArray: function(elements, delegate) { |
14 | | - return $.map($.makeArray(elements), delegate); |
15 | | - }, |
16 | | - extractInnerHTMLArray: function(elements) { |
17 | | - return this.extractArray(elements, function(element, index) { |
18 | | - return element.innerHTML; |
19 | | - }); |
20 | | - }, |
21 | | - extractInnerTextArray: function(elements) { |
22 | | - return this.extractArray(elements, function(element, index) { |
23 | | - return $(element).text(); |
24 | | - }); |
25 | | - }, |
26 | | - extractClassArray: function(elements) { |
27 | | - return this.extractArray(elements, function(element, index) { |
28 | | - return element.getAttribute('class') || ''; |
29 | | - }); |
30 | | - }, |
31 | | - typeIntoInput: function(dateString, input) { |
32 | | - const keyPress = $.Event('keypress'); |
33 | | - let i; |
34 | | - for(i = 0; i < dateString.length; ++i) { |
35 | | - keyPress.key = dateString[i]; |
36 | | - input.val(input.val() + dateString[i]); |
37 | | - input.trigger(keyPress); |
38 | | - } |
39 | | - } |
40 | | - }), |
41 | | - MockMonthView: Views['month'].inherit({ |
42 | | - renderHeader: noop, |
43 | | - renderBody: noop |
44 | | - }) |
| 9 | +class BaseCalendarFixture { |
| 10 | + extractArray(elements, delegate) { |
| 11 | + return $.map($.makeArray(elements), delegate); |
45 | 12 | } |
46 | | -}); |
47 | 13 |
|
48 | | -$.extend(true, DevExpress.ui, { |
49 | | - testing: { |
50 | | - CalendarFixture: DevExpress.ui.testing.BaseCalendarFixture.inherit({ |
51 | | - ctor: function(options) { |
52 | | - this.rootElement = $('<div id=\'calendar\'></div>'); |
53 | | - this.rootElement.appendTo('body'); |
54 | | - this.calendar = $('#calendar') |
55 | | - .dxCalendar($.extend({ monthViewType: DevExpress.ui.testing.MockMonthView }, options)) |
56 | | - .dxCalendar('instance'); |
57 | | - this.navigatorLinks = { |
58 | | - 'prevYear': this.rootElement.find('.dx-calendar-navigator-previous-year'), |
59 | | - 'prevView': this.rootElement.find('.dx-calendar-navigator-previous-view'), |
60 | | - 'nextYear': this.rootElement.find('.dx-calendar-navigator-next-year'), |
61 | | - 'nextView': this.rootElement.find('.dx-calendar-navigator-next-view') |
62 | | - }; |
63 | | - }, |
64 | | - dispose: function() { |
65 | | - this.rootElement.remove(); |
66 | | - this.calendar = null; |
67 | | - } |
68 | | - }), |
| 14 | + extractInnerHTMLArray(elements) { |
| 15 | + return this.extractArray(elements, function(element) { |
| 16 | + return element.innerHTML; |
| 17 | + }); |
| 18 | + } |
| 19 | + |
| 20 | + extractInnerTextArray(elements) { |
| 21 | + return this.extractArray(elements, function(element) { |
| 22 | + return $(element).text(); |
| 23 | + }); |
| 24 | + } |
| 25 | + |
| 26 | + extractClassArray(elements) { |
| 27 | + return this.extractArray(elements, function(element) { |
| 28 | + return element.getAttribute('class') || ''; |
| 29 | + }); |
| 30 | + } |
| 31 | + |
| 32 | + typeIntoInput(dateString, input) { |
| 33 | + const keyPress = $.Event('keypress'); |
| 34 | + for(let i = 0; i < dateString.length; ++i) { |
| 35 | + keyPress.key = dateString[i]; |
| 36 | + input.val(input.val() + dateString[i]); |
| 37 | + input.trigger(keyPress); |
| 38 | + } |
| 39 | + } |
| 40 | +} |
69 | 41 |
|
70 | | - DateBoxFixture: DevExpress.ui.testing.BaseCalendarFixture.inherit({ |
71 | | - ctor: function(element, options) { |
72 | | - this.format = 'shortdate'; |
73 | | - this.rootElement = $(element); |
| 42 | +class CalendarFixture extends BaseCalendarFixture { |
| 43 | + constructor(options) { |
| 44 | + super(); |
| 45 | + this.rootElement = $('<div id=\'calendar\'></div>'); |
| 46 | + this.rootElement.appendTo('body'); |
| 47 | + this.calendar = $('#calendar') |
| 48 | + .dxCalendar(options) |
| 49 | + .dxCalendar('instance'); |
| 50 | + this.navigatorLinks = { |
| 51 | + 'prevYear': this.rootElement.find('.dx-calendar-navigator-previous-year'), |
| 52 | + 'prevView': this.rootElement.find('.dx-calendar-navigator-previous-view'), |
| 53 | + 'nextYear': this.rootElement.find('.dx-calendar-navigator-next-year'), |
| 54 | + 'nextView': this.rootElement.find('.dx-calendar-navigator-next-view') |
| 55 | + }; |
| 56 | + } |
| 57 | + |
| 58 | + dispose() { |
| 59 | + this.rootElement.remove(); |
| 60 | + this.calendar = null; |
| 61 | + } |
| 62 | +} |
| 63 | + |
| 64 | +class DateBoxFixture extends BaseCalendarFixture { |
| 65 | + constructor(element, options) { |
| 66 | + super(); |
| 67 | + this.format = 'shortdate'; |
| 68 | + this.rootElement = $(element); |
74 | 69 |
|
75 | | - this.dateBox = this.rootElement |
76 | | - .dxDateBox($.extend(true, { |
77 | | - pickerType: 'calendar', |
78 | | - displayFormat: this.format, |
79 | | - calendarOptions: { monthViewType: DevExpress.ui.testing.MockMonthView } |
80 | | - }, options)) |
81 | | - .dxDateBox('instance'); |
82 | | - this.input = this.rootElement.find(TEXTEDITOR_INPUT_SELECTOR); |
83 | | - }, |
84 | | - dispose: function() { |
85 | | - this.rootElement.empty(); |
86 | | - $.cleanData(this.rootElement); |
87 | | - this.dateBox = null; |
88 | | - } |
89 | | - }) |
| 70 | + this.dateBox = this.rootElement |
| 71 | + .dxDateBox($.extend(true, { |
| 72 | + pickerType: 'calendar', |
| 73 | + displayFormat: this.format, |
| 74 | + }, options)) |
| 75 | + .dxDateBox('instance'); |
| 76 | + this.input = this.rootElement.find(TEXTEDITOR_INPUT_SELECTOR); |
90 | 77 | } |
91 | | -}); |
| 78 | + |
| 79 | + dispose() { |
| 80 | + this.rootElement.empty(); |
| 81 | + $.cleanData(this.rootElement); |
| 82 | + this.dateBox = null; |
| 83 | + } |
| 84 | +} |
| 85 | + |
| 86 | +DevExpress.ui.testing.BaseCalendarFixture = BaseCalendarFixture; |
| 87 | +DevExpress.ui.testing.CalendarFixture = CalendarFixture; |
| 88 | +DevExpress.ui.testing.DateBoxFixture = DateBoxFixture; |
0 commit comments