Project

General

Profile

1 61381 k.triantaf
// //<reference path="../../node_modules/@types/jasmine/index.d.ts"/>
2
//
3
// import {ComponentFixture, TestBed} from '@angular/core/testing';
4
// import {By} from '@angular/platform-browser';
5
// import {DebugElement} from '@angular/core';
6
// import {MyDatePicker} from './my-date-picker.component';
7
// import {FocusDirective} from './directives/my-date-picker.focus.directive';
8
// import {InputAutoFillDirective} from './directives/my-date-picker.input.auto.fill.directive';
9
//
10
// let comp: MyDatePicker;
11
// let fixture: ComponentFixture<MyDatePicker>;
12
// let de: DebugElement;
13
// let el: HTMLElement;
14
//
15
// let PREVMONTH: string = '.header tr td:first-child div .headerbtncell:first-child .headerbtn';
16
// let NEXTMONTH: string = '.header tr td:first-child div .headerbtncell:last-child .headerbtn';
17
// let PREVYEAR: string = '.header tr td:last-child div .headerbtncell:first-child .headerbtn';
18
// let NEXTYEAR: string = '.header tr td:last-child div .headerbtncell:last-child .headerbtn';
19
//
20
// function getDateString(date:any):string {
21
//     return date.getFullYear() + '-' + ((date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1)) + '-' + (date.getDate() < 10 ? '0' + date.getDate() : date.getDate());
22
// }
23
//
24
// function getElement(id:string):DebugElement {
25
//     return de.query(By.css(id));
26
// }
27
//
28
// function getElements(id:string):Array<DebugElement> {
29
//     return de.queryAll(By.css(id));
30
// }
31
//
32
// describe('MyDatePicker', () => {
33
//     beforeEach(() => {
34
//         TestBed.configureTestingModule({
35
//             declarations: [MyDatePicker, FocusDirective, InputAutoFillDirective],
36
//         });
37
//
38
//         fixture = TestBed.createComponent(MyDatePicker);
39
//
40
//         comp = fixture.componentInstance;
41
//
42
//         de = fixture.debugElement.query(By.css('.mydp'));
43
//         el = de.nativeElement;
44
//     });
45
//
46
//     it('set valid date', () => {
47
//         comp.selectionDayTxt = '2016-08-22';
48
//         fixture.detectChanges();
49
//         let selection = getElement('.selection');
50
//         expect(selection.nativeElement.value).toContain('2016-08-22');
51
//     });
52
//
53
//     it('open/close selector', () => {
54
//         fixture.detectChanges();
55
//         let btnpicker = getElement('.btnpicker');
56
//         let selector = getElement('.selector');
57
//         expect(selector).toBe(null);
58
//
59
//         btnpicker.nativeElement.click();
60
//         fixture.detectChanges();
61
//         selector = getElement('.selector');
62
//         expect(selector).not.toBe(null);
63
//
64
//         btnpicker.nativeElement.click();
65
//         fixture.detectChanges();
66
//         selector = getElement('.selector');
67
//         expect(selector).toBe(null);
68
//     });
69
//
70
//     it('select current day from the selector and clear', () => {
71
//         let date = new Date();
72
//         comp.selectedMonth = {monthTxt: '', monthNbr: date.getMonth() + 1, year: date.getFullYear()};
73
//
74
//         fixture.detectChanges();
75
//         let btnpicker = getElement('.btnpicker');
76
//         btnpicker.nativeElement.click();
77
//
78
//         fixture.detectChanges();
79
//         let currday = getElement('.currday');
80
//         expect(currday).not.toBe(null);
81
//
82
//         currday.nativeElement.click();
83
//
84
//         let dateStr = getDateString(date);
85
//         fixture.detectChanges();
86
//         let selection = getElement('.selection');
87
//         expect(selection.nativeElement.value).toContain(dateStr);
88
//
89
//         fixture.detectChanges();
90
//         let btnclear = getElement('.btnclear');
91
//         btnclear.nativeElement.click();
92
//         expect(selection.nativeElement.value).toContain('');
93
//     });
94
//
95
//     it('select/unselect current day from the selector', () => {
96
//         let date = new Date();
97
//         comp.selectedMonth = {monthTxt: '', monthNbr: date.getMonth() + 1, year: date.getFullYear()};
98
//
99
//         fixture.detectChanges();
100
//         let btnpicker = getElement('.btnpicker');
101
//         btnpicker.nativeElement.click();
102
//
103
//         fixture.detectChanges();
104
//         let currday = getElement('.currday');
105
//         expect(currday).not.toBe(null);
106
//
107
//         currday.nativeElement.click();
108
//
109
//         let dateStr = getDateString(date);
110
//         fixture.detectChanges();
111
//         let selection = getElement('.selection');
112
//         expect(selection.nativeElement.value).toContain(dateStr);
113
//
114
//         fixture.detectChanges();
115
//         btnpicker = getElement('.btnpicker');
116
//         btnpicker.nativeElement.click();
117
//
118
//
119
//         fixture.detectChanges();
120
//         let selectedday = getElement('.selectedday');
121
//         expect(selectedday).not.toBe(null);
122
//
123
//         fixture.detectChanges();
124
//         currday = getElement('.currday');
125
//         expect(currday).not.toBe(null);
126
//         currday.nativeElement.click();
127
//
128
//         fixture.detectChanges();
129
//         selectedday = getElement('.selectedday');
130
//         expect(selectedday).toBe(null);
131
//
132
//         fixture.detectChanges();
133
//         selection = getElement('.selection');
134
//         expect(selection.nativeElement.value).toBe('');
135
//     });
136
//
137
//     it('select today button', () => {
138
//         let date = new Date();
139
//
140
//         fixture.detectChanges();
141
//         let btnpicker = getElement('.btnpicker');
142
//         btnpicker.nativeElement.click();
143
//
144
//         fixture.detectChanges();
145
//         let today = getElement('.headertodaybtn');
146
//         expect(today).not.toBe(null);
147
//
148
//         today.nativeElement.click();
149
//
150
//         let dateStr = getDateString(date);
151
//         fixture.detectChanges();
152
//         let selection = getElement('.selection');
153
//         expect(selection.nativeElement.value).toContain(dateStr);
154
//
155
//         fixture.detectChanges();
156
//         let btnclear = getElement('.btnclear');
157
//         btnclear.nativeElement.click();
158
//         expect(selection.nativeElement.value).toContain('');
159
//     });
160
//
161
//     it('select previous month', () => {
162
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
163
//
164
//         fixture.detectChanges();
165
//         let btnpicker = getElement('.btnpicker');
166
//         btnpicker.nativeElement.click();
167
//
168
//         fixture.detectChanges();
169
//         let prevmonth = getElement('.header tr td:first-child .headerbtn:first-child');
170
//         expect(prevmonth).not.toBe(null);
171
//
172
//         prevmonth.nativeElement.click();
173
//
174
//         expect(comp.visibleMonth.monthTxt).toBe('Apr');
175
//         expect(comp.visibleMonth.monthNbr).toBe(4);
176
//         expect(comp.visibleMonth.year).toBe(2016);
177
//     });
178
//
179
//     it('select next month', () => {
180
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
181
//
182
//         fixture.detectChanges();
183
//         let btnpicker = getElement('.btnpicker');
184
//         btnpicker.nativeElement.click();
185
//
186
//         fixture.detectChanges();
187
//         let nextmonth = getElement(NEXTMONTH);
188
//         expect(nextmonth).not.toBe(null);
189
//
190
//         nextmonth.nativeElement.click();
191
//
192
//         expect(comp.visibleMonth.monthTxt).toBe('Jun');
193
//         expect(comp.visibleMonth.monthNbr).toBe(6);
194
//         expect(comp.visibleMonth.year).toBe(2016);
195
//     });
196
//
197
//     it('select previous month january change year', () => {
198
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
199
//
200
//         fixture.detectChanges();
201
//         let btnpicker = getElement('.btnpicker');
202
//         btnpicker.nativeElement.click();
203
//
204
//         fixture.detectChanges();
205
//         let prevmonth = getElement(PREVMONTH);
206
//         expect(prevmonth).not.toBe(null);
207
//
208
//         prevmonth.nativeElement.click();
209
//
210
//         expect(comp.visibleMonth.year).toBe(2015);
211
//     });
212
//
213
//     it('select next month december change year', () => {
214
//         comp.selectedMonth = {monthTxt: '', monthNbr: 12, year: 2016};
215
//
216
//         fixture.detectChanges();
217
//         let btnpicker = getElement('.btnpicker');
218
//         btnpicker.nativeElement.click();
219
//
220
//         fixture.detectChanges();
221
//         let nextmonth = getElement(NEXTMONTH);
222
//         expect(nextmonth).not.toBe(null);
223
//
224
//         nextmonth.nativeElement.click();
225
//
226
//         expect(comp.visibleMonth.year).toBe(2017);
227
//     });
228
//
229
//     it('select previous month from selector', () => {
230
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
231
//
232
//         fixture.detectChanges();
233
//         let btnpicker = getElement('.btnpicker');
234
//         btnpicker.nativeElement.click();
235
//
236
//         comp.parseOptions();
237
//
238
//         fixture.detectChanges();
239
//         let prevmonth = getElement(PREVMONTH);
240
//         expect(prevmonth).not.toBe(null);
241
//
242
//         prevmonth.nativeElement.click();
243
//         expect(comp.visibleMonth.monthNbr).toBe(4);
244
//         expect(comp.visibleMonth.monthTxt).toBe('Apr');
245
//
246
//         prevmonth.nativeElement.click();
247
//         expect(comp.visibleMonth.monthNbr).toBe(3);
248
//         expect(comp.visibleMonth.monthTxt).toBe('Mar');
249
//     });
250
//
251
//     it('select next month from selector', () => {
252
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
253
//
254
//         fixture.detectChanges();
255
//         let btnpicker = getElement('.btnpicker');
256
//         btnpicker.nativeElement.click();
257
//
258
//         comp.parseOptions();
259
//
260
//         fixture.detectChanges();
261
//         let nextmonth = getElement(NEXTMONTH);
262
//         expect(nextmonth).not.toBe(null);
263
//
264
//         nextmonth.nativeElement.click();
265
//         expect(comp.visibleMonth.monthNbr).toBe(6);
266
//         expect(comp.visibleMonth.monthTxt).toBe('Jun');
267
//
268
//         nextmonth.nativeElement.click();
269
//         expect(comp.visibleMonth.monthNbr).toBe(7);
270
//         expect(comp.visibleMonth.monthTxt).toBe('Jul');
271
//     });
272
//
273
//     it('select previous year', () => {
274
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
275
//
276
//         fixture.detectChanges();
277
//         let btnpicker = getElement('.btnpicker');
278
//         btnpicker.nativeElement.click();
279
//
280
//         comp.parseOptions();
281
//
282
//         fixture.detectChanges();
283
//         let prevyear = getElement(PREVYEAR);
284
//         expect(prevyear).not.toBe(null);
285
//
286
//         prevyear.nativeElement.click();
287
//         fixture.detectChanges();
288
//         let yearLabel = getElement('.headeryeartxt .headerlabelbtn');
289
//         expect(yearLabel).not.toBe(null);
290
//         expect(yearLabel.nativeElement.textContent).toBe('2015');
291
//     });
292
//
293
//     it('select next year', () => {
294
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
295
//
296
//         fixture.detectChanges();
297
//         let btnpicker = getElement('.btnpicker');
298
//         btnpicker.nativeElement.click();
299
//
300
//         comp.parseOptions();
301
//
302
//         fixture.detectChanges();
303
//         let nextyear = getElement(NEXTYEAR);
304
//         expect(nextyear).not.toBe(null);
305
//
306
//         nextyear.nativeElement.click();
307
//
308
//         fixture.detectChanges();
309
//         let yearLabel = getElement('.headeryeartxt .headerlabelbtn');
310
//         expect(yearLabel).not.toBe(null);
311
//         expect(yearLabel.nativeElement.textContent).toBe('2017');
312
//     });
313
//
314
//     it('test calendar year 2016 month one by one - next month button', () => {
315
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
316
//
317
//         comp.options = {firstDayOfWeek: 'mo'};
318
//
319
//         comp.parseOptions();
320
//
321
//         fixture.detectChanges();
322
//         let btnpicker = getElement('.btnpicker');
323
//         btnpicker.nativeElement.click();
324
//
325
//         fixture.detectChanges();
326
//         let monthlabel = getElement('.monthlabel');
327
//         expect(monthlabel).not.toBe(null);
328
//         expect(monthlabel.nativeElement.textContent.trim()).toBe('Jan');
329
//
330
//         fixture.detectChanges();
331
//         let yearlabel = getElement('.yearlabel');
332
//         expect(yearlabel).not.toBe(null);
333
//         expect(yearlabel.nativeElement.textContent.trim()).toBe('2016');
334
//
335
//         comp.generateCalendar(1, 2016, true);
336
//
337
//         let beginDate: Array<string> = ['28', '1', '29', '28', '25', '30', '27', '1', '29', '26', '31', '28'];
338
//         let endDate: Array<string> = ['7', '13', '10', '8', '5', '10', '7', '11', '9', '6', '11', '8'];
339
//
340
//         let i: number = 0;
341
//         do {
342
//             fixture.detectChanges();
343
//             let currmonth = getElements('.caltable tbody tr td');
344
//             expect(currmonth).not.toBe(null);
345
//             expect(currmonth.length).toBe(42);
346
//
347
//             expect(currmonth[0]).not.toBe(null);
348
//             expect(currmonth[0].nativeElement.textContent.trim()).toBe(beginDate[i]);
349
//
350
//             expect(currmonth[41]).not.toBe(null);
351
//             expect(currmonth[41].nativeElement.textContent.trim()).toBe(endDate[i]);
352
//
353
//             comp.nextMonth();
354
//
355
//             i++;
356
//         } while (i < 12)
357
//     });
358
//
359
//     it('test calendar year 2016 month one by one - previous month button', () => {
360
//         comp.selectedMonth = {monthTxt: '', monthNbr: 12, year: 2016};
361
//
362
//         comp.options = {firstDayOfWeek: 'mo'};
363
//
364
//         comp.parseOptions();
365
//
366
//         fixture.detectChanges();
367
//         let btnpicker = getElement('.btnpicker');
368
//         btnpicker.nativeElement.click();
369
//
370
//         fixture.detectChanges();
371
//         let monthlabel = getElement('.monthlabel');
372
//         expect(monthlabel).not.toBe(null);
373
//         expect(monthlabel.nativeElement.textContent.trim()).toBe('Dec');
374
//
375
//         fixture.detectChanges();
376
//         let yearlabel = getElement('.yearlabel');
377
//         expect(yearlabel).not.toBe(null);
378
//         expect(yearlabel.nativeElement.textContent.trim()).toBe('2016');
379
//
380
//         comp.generateCalendar(12, 2016, true);
381
//
382
//         let beginDate: Array<string> = ['28', '1', '29', '28', '25', '30', '27', '1', '29', '26', '31', '28'];
383
//         let endDate: Array<string> = ['7', '13', '10', '8', '5', '10', '7', '11', '9', '6', '11', '8'];
384
//
385
//         let i: number = 11;
386
//         do {
387
//             fixture.detectChanges();
388
//             let currmonth = getElements('.caltable tbody tr td');
389
//             expect(currmonth).not.toBe(null);
390
//             expect(currmonth.length).toBe(42);
391
//
392
//             expect(currmonth[0]).not.toBe(null);
393
//             expect(currmonth[0].nativeElement.textContent.trim()).toBe(beginDate[i]);
394
//
395
//             expect(currmonth[41]).not.toBe(null);
396
//             expect(currmonth[41].nativeElement.textContent.trim()).toBe(endDate[i]);
397
//
398
//             comp.prevMonth();
399
//
400
//             i--;
401
//         } while (i >= 0)
402
//     });
403
//
404
//     // options
405
//     it('options - dayLabels', () => {
406
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
407
//         comp.options = {dayLabels:  {su: '1', mo: '2', tu: '3', we: '4', th: '5', fr: '6', sa: '7'}, firstDayOfWeek: 'su'};
408
//
409
//         comp.parseOptions();
410
//
411
//         fixture.detectChanges();
412
//         let btnpicker = getElement('.btnpicker');
413
//         btnpicker.nativeElement.click();
414
//
415
//         fixture.detectChanges();
416
//         let ths = getElements('.caltable thead tr th');
417
//         expect(ths.length).toBe(7);
418
//         for(let i in ths) {
419
//             let el = ths[i];
420
//             expect(parseInt(el.nativeElement.textContent)).toBe(parseInt(i) + 1);
421
//         }
422
//     });
423
//
424
//     it('options - monthLabels', () => {
425
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
426
//         comp.options = {monthLabels:  { 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 10: '10', 11: '11', 12: '12' }};
427
//
428
//         comp.parseOptions();
429
//
430
//         fixture.detectChanges();
431
//         let btnpicker = getElement('.btnpicker');
432
//         btnpicker.nativeElement.click();
433
//
434
//         fixture.detectChanges();
435
//         let nextmonth = getElement(NEXTMONTH);
436
//         expect(nextmonth).not.toBe(null);
437
//
438
//         for(let i = 1; i <= 12; i++) {
439
//             fixture.detectChanges();
440
//             let monthLabel = getElement('.headermonthtxt .headerlabelbtn');
441
//             expect(parseInt(monthLabel.nativeElement.textContent)).toBe(i);
442
//             nextmonth.nativeElement.click();
443
//         }
444
//     });
445
//
446
//     it('options - date format', () => {
447
//         comp.options = {dateFormat: 'dd.mm.yyyy', indicateInvalidDate: true};
448
//
449
//         comp.parseOptions();
450
//
451
//         let value = {target:{value:'2016-08-22'}};
452
//         comp.userDateInput(value);
453
//         expect(comp.invalidDate).toBe(true);
454
//
455
//         fixture.detectChanges();
456
//         let invaliddate = getElement('.invaliddate');
457
//         expect(invaliddate).not.toBe(null);
458
//
459
//         value = {target:{value:'2016-08-2'}};
460
//         comp.userDateInput(value);
461
//         expect(comp.invalidDate).toBe(true);
462
//
463
//         value = {target:{value:'16.09/2016'}};
464
//         comp.userDateInput(value);
465
//         expect(comp.invalidDate).toBe(true);
466
//
467
//         value = {target:{value:'2016-08-xx'}};
468
//         comp.userDateInput(value);
469
//         expect(comp.invalidDate).toBe(true);
470
//
471
//         value = {target:{value:'16.09.999'}};
472
//         comp.userDateInput(value);
473
//         expect(comp.invalidDate).toBe(true);
474
//
475
//         value = {target:{value:'16.09.19999'}};
476
//         comp.userDateInput(value);
477
//         expect(comp.invalidDate).toBe(true);
478
//
479
//         value = {target:{value:'16.09.2016'}};
480
//         comp.userDateInput(value);
481
//         expect(comp.invalidDate).toBe(false);
482
//
483
//         comp.options = {dateFormat: 'dd mmm yyyy', indicateInvalidDate: true};
484
//
485
//         comp.parseOptions();
486
//
487
//         value = {target:{value:'2016-08-22'}};
488
//         comp.userDateInput(value);
489
//         expect(comp.invalidDate).toBe(true);
490
//
491
//         value = {target:{value:'22 Aug 2016'}};
492
//         comp.userDateInput(value);
493
//         expect(comp.invalidDate).toBe(false);
494
//     });
495
//
496
//     it('options - show today button', () => {
497
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
498
//
499
//         comp.parseOptions();
500
//
501
//         fixture.detectChanges();
502
//         let btnpicker = getElement('.btnpicker');
503
//         btnpicker.nativeElement.click();
504
//
505
//         fixture.detectChanges();
506
//         let headertodaybtn = getElement('.headertodaybtn');
507
//         expect(headertodaybtn).not.toBe(null);
508
//
509
//         btnpicker.nativeElement.click();
510
//
511
//         comp.options = {showTodayBtn: false};
512
//         comp.parseOptions();
513
//
514
//         fixture.detectChanges();
515
//         btnpicker = getElement('.btnpicker');
516
//         btnpicker.nativeElement.click();
517
//
518
//         fixture.detectChanges();
519
//         headertodaybtn = getElement('.headertodaybtn');
520
//         expect(headertodaybtn).toBe(null);
521
//
522
//         btnpicker.nativeElement.click();
523
//
524
//         comp.options = {showTodayBtn: true};
525
//         comp.parseOptions();
526
//
527
//         fixture.detectChanges();
528
//         btnpicker = getElement('.btnpicker');
529
//         btnpicker.nativeElement.click();
530
//
531
//         fixture.detectChanges();
532
//         headertodaybtn = getElement('.headertodaybtn');
533
//         expect(headertodaybtn).not.toBe(null);
534
//     });
535
//
536
//     it('options - today button text', () => {
537
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
538
//         comp.options = {todayBtnTxt: 'test text'};
539
//
540
//         comp.parseOptions();
541
//
542
//         fixture.detectChanges();
543
//         let btnpicker = getElement('.btnpicker');
544
//         btnpicker.nativeElement.click();
545
//
546
//         fixture.detectChanges();
547
//         let headertodaybtn = getElement('.headertodaybtn');
548
//         expect(headertodaybtn).not.toBe(null);
549
//         expect(headertodaybtn.nativeElement.textContent).toBe('test text');
550
//     });
551
//
552
//     it('options - first day of week', () => {
553
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
554
//         comp.options = {firstDayOfWeek: 'tu'};
555
//
556
//         comp.parseOptions();
557
//
558
//         fixture.detectChanges();
559
//         let btnpicker = getElement('.btnpicker');
560
//         btnpicker.nativeElement.click();
561
//
562
//         fixture.detectChanges();
563
//         let first = getElement('.caltable thead tr th:first-child');
564
//         expect(first).not.toBe(null);
565
//         expect(first.nativeElement.textContent).toBe('Tue');
566
//
567
//         let last = getElement('.caltable thead tr th:last-child');
568
//         expect(last).not.toBe(null);
569
//         expect(last.nativeElement.textContent).toBe('Mon');
570
//     });
571
//
572
//     it('options - sunday highlight', () => {
573
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
574
//         comp.options = {sunHighlight: true};
575
//
576
//         comp.parseOptions();
577
//
578
//         fixture.detectChanges();
579
//         let btnpicker = getElement('.btnpicker');
580
//         btnpicker.nativeElement.click();
581
//
582
//         fixture.detectChanges();
583
//         let sunday = getElement('.sunday');
584
//         expect(sunday).not.toBe(null);
585
//
586
//         btnpicker.nativeElement.click();
587
//
588
//         comp.options = {sunHighlight: false};
589
//
590
//         comp.parseOptions();
591
//
592
//         fixture.detectChanges();
593
//         btnpicker.nativeElement.click();
594
//
595
//         comp.parseOptions();
596
//
597
//         fixture.detectChanges();
598
//         sunday = getElement('.sunday');
599
//         expect(sunday).toBe(null);
600
//     });
601
//
602
//     it('options - current day marked', () => {
603
//         comp.options = {markCurrentDay: true};
604
//
605
//         comp.parseOptions();
606
//
607
//         fixture.detectChanges();
608
//         let btnpicker = getElement('.btnpicker');
609
//         btnpicker.nativeElement.click();
610
//
611
//         fixture.detectChanges();
612
//         let currday = getElement('.currday');
613
//         expect(currday).not.toBe(null);
614
//
615
//         btnpicker.nativeElement.click();
616
//
617
//         comp.options = {markCurrentDay: false};
618
//
619
//         comp.parseOptions();
620
//
621
//         fixture.detectChanges();
622
//         btnpicker.nativeElement.click();
623
//
624
//         comp.parseOptions();
625
//
626
//         fixture.detectChanges();
627
//         currday = getElement('.currday');
628
//         expect(currday).toBe(null);
629
//     });
630
//
631
//     it('options - editable month and year', () => {
632
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
633
//         comp.options = {editableMonthAndYear: true};
634
//
635
//         comp.parseOptions();
636
//
637
//         fixture.detectChanges();
638
//         let btnpicker = getElement('.btnpicker');
639
//         btnpicker.nativeElement.click();
640
//
641
//         fixture.detectChanges();
642
//         let montlabel = getElement('.headermonthtxt .headerlabelbtn');
643
//         expect(montlabel).not.toBe(null);
644
//         montlabel.nativeElement.click();
645
//
646
//         fixture.detectChanges();
647
//         let monthinput = getElement('.monthinput');
648
//         expect(monthinput).not.toBe(null);
649
//
650
//         comp.userMonthInput({target:{value:'jan'}});
651
//
652
//         fixture.detectChanges();
653
//         montlabel = getElement('.headermonthtxt .headerlabelbtn');
654
//         expect(montlabel).not.toBe(null);
655
//         expect(montlabel.nativeElement.textContent).toBe('Jan');
656
//
657
//
658
//         fixture.detectChanges();
659
//         let yearlabel = getElement('.headeryeartxt .headerlabelbtn');
660
//         expect(yearlabel).not.toBe(null);
661
//         yearlabel.nativeElement.click();
662
//
663
//         fixture.detectChanges();
664
//         let yearinput = getElement('.yearinput');
665
//         expect(yearinput).not.toBe(null);
666
//
667
//         comp.userYearInput({target:{value:'2019'}});
668
//
669
//         fixture.detectChanges();
670
//         yearlabel = getElement('.headeryeartxt .headerlabelbtn');
671
//         expect(yearlabel).not.toBe(null);
672
//         expect(yearlabel.nativeElement.textContent).toBe('2019');
673
//     });
674
//
675
//     it('options - disable header buttons', () => {
676
//         comp.selectedMonth = {monthTxt: '', monthNbr: 5, year: 2016};
677
//         comp.options = {
678
//             disableHeaderButtons: true,
679
//             disableUntil: {year: 2016, month: 4, day: 10}
680
//         };
681
//
682
//         comp.parseOptions();
683
//
684
//         fixture.detectChanges();
685
//         let btnpicker = getElement('.btnpicker');
686
//         btnpicker.nativeElement.click();
687
//
688
//         fixture.detectChanges();
689
//         let montlabel = getElement('.headermonthtxt .headerlabelbtn');
690
//         expect(montlabel).not.toBe(null);
691
//         expect(montlabel.nativeElement.textContent).toBe('May');
692
//
693
//         fixture.detectChanges();
694
//         let prevmonth = getElement(PREVMONTH);
695
//         expect(prevmonth).not.toBe(null);
696
//         prevmonth.nativeElement.click();
697
//
698
//         fixture.detectChanges();
699
//         montlabel = getElement('.headermonthtxt .headerlabelbtn');
700
//         expect(montlabel).not.toBe(null);
701
//         expect(montlabel.nativeElement.textContent).toBe('Apr');
702
//
703
//         fixture.detectChanges();
704
//         let headerbtndisabled = getElements('.headerbtndisabled');
705
//         expect(headerbtndisabled).not.toBe(null);
706
//         expect(headerbtndisabled.length).toBe(2);
707
//
708
//         prevmonth.nativeElement.click();
709
//
710
//         fixture.detectChanges();
711
//         montlabel = getElement('.headermonthtxt .headerlabelbtn');
712
//         expect(montlabel).not.toBe(null);
713
//         expect(montlabel.nativeElement.textContent).toBe('Apr');
714
//
715
//         fixture.detectChanges();
716
//         let prevyear = getElement(PREVYEAR);
717
//         expect(prevyear).not.toBe(null);
718
//         prevyear.nativeElement.click();
719
//
720
//         fixture.detectChanges();
721
//         let yearlabel = getElement('.headeryeartxt .headerlabelbtn');
722
//         expect(yearlabel).not.toBe(null);
723
//         expect(yearlabel.nativeElement.textContent).toBe('2016');
724
//
725
//         btnpicker.nativeElement.click();
726
//
727
//
728
//         comp.options = {
729
//             disableHeaderButtons: true,
730
//             disableSince: {year: 2016, month: 7, day: 10}
731
//         };
732
//
733
//         comp.parseOptions();
734
//
735
//         fixture.detectChanges();
736
//         btnpicker = getElement('.btnpicker');
737
//         btnpicker.nativeElement.click();
738
//
739
//         fixture.detectChanges();
740
//         montlabel = getElement('.headermonthtxt .headerlabelbtn');
741
//         expect(montlabel).not.toBe(null);
742
//         expect(montlabel.nativeElement.textContent).toBe('May');
743
//
744
//         fixture.detectChanges();
745
//         let nextmonth = getElement(NEXTMONTH);
746
//         expect(nextmonth).not.toBe(null);
747
//         nextmonth.nativeElement.click();
748
//
749
//         fixture.detectChanges();
750
//         montlabel = getElement('.headermonthtxt .headerlabelbtn');
751
//         expect(montlabel).not.toBe(null);
752
//         expect(montlabel.nativeElement.textContent).toBe('Jun');
753
//
754
//         fixture.detectChanges();
755
//         headerbtndisabled = getElements('.headerbtndisabled');
756
//         expect(headerbtndisabled).not.toBe(null);
757
//         expect(headerbtndisabled.length).toBe(2);
758
//
759
//         prevmonth.nativeElement.click();
760
//
761
//         fixture.detectChanges();
762
//         montlabel = getElement('.headermonthtxt .headerlabelbtn');
763
//         expect(montlabel).not.toBe(null);
764
//         expect(montlabel.nativeElement.textContent).toBe('Jun');
765
//
766
//         fixture.detectChanges();
767
//         let nextyear = getElement(NEXTYEAR);
768
//         expect(nextyear).not.toBe(null);
769
//         nextyear.nativeElement.click();
770
//
771
//         fixture.detectChanges();
772
//         yearlabel = getElement('.headeryeartxt .headerlabelbtn');
773
//         expect(yearlabel).not.toBe(null);
774
//         expect(yearlabel.nativeElement.textContent).toBe('2016');
775
//     });
776
//
777
//     it('options - min year', () => {
778
//         comp.visibleMonth = {monthTxt: 'May', monthNbr: 5, year: 2016};
779
//         comp.options = {minYear: 2000};
780
//
781
//         comp.parseOptions();
782
//
783
//         fixture.detectChanges();
784
//         let btnpicker = getElement('.btnpicker');
785
//         btnpicker.nativeElement.click();
786
//
787
//         fixture.detectChanges();
788
//         let yearlabel = getElement('.headeryeartxt .headerlabelbtn');
789
//         expect(yearlabel).not.toBe(null);
790
//         yearlabel.nativeElement.click();
791
//
792
//         fixture.detectChanges();
793
//         let yearinput = getElement('.yearinput');
794
//         expect(yearinput).not.toBe(null);
795
//
796
//         comp.userYearInput({target:{value:1999}});
797
//
798
//         fixture.detectChanges();
799
//         let invalidyear = getElement('.invalidyear');
800
//         expect(invalidyear).not.toBe(null);
801
//
802
//         comp.userYearInput({target:{value:2000}});
803
//
804
//         fixture.detectChanges();
805
//         yearlabel = getElement('.headeryeartxt .headerlabelbtn');
806
//         expect(yearlabel).not.toBe(null);
807
//         expect(yearlabel.nativeElement.textContent).toBe('2000');
808
//     });
809
//
810
//     it('options - max year', () => {
811
//         comp.visibleMonth = {monthTxt: 'May', monthNbr: 5, year: 2016};
812
//         comp.options = {maxYear: 2020};
813
//
814
//         comp.parseOptions();
815
//
816
//         fixture.detectChanges();
817
//         let btnpicker = getElement('.btnpicker');
818
//         btnpicker.nativeElement.click();
819
//
820
//         fixture.detectChanges();
821
//         let yearlabel = getElement('.headeryeartxt .headerlabelbtn');
822
//         expect(yearlabel).not.toBe(null);
823
//         yearlabel.nativeElement.click();
824
//
825
//         fixture.detectChanges();
826
//         let yearinput = getElement('.yearinput');
827
//         expect(yearinput).not.toBe(null);
828
//
829
//         comp.userYearInput({target:{value:2021}});
830
//
831
//         fixture.detectChanges();
832
//         let invalidyear = getElement('.invalidyear');
833
//         expect(invalidyear).not.toBe(null);
834
//
835
//         comp.userYearInput({target:{value:2020}});
836
//
837
//         fixture.detectChanges();
838
//         yearlabel = getElement('.headeryeartxt .headerlabelbtn');
839
//         expect(yearlabel).not.toBe(null);
840
//         expect(yearlabel.nativeElement.textContent).toBe('2020');
841
//     });
842
//
843
//     it('options - disable until', () => {
844
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
845
//         comp.options = {disableUntil: {year: 2016, month: 10, day: 5}};
846
//
847
//         comp.parseOptions();
848
//
849
//         fixture.detectChanges();
850
//         let btnpicker = getElement('.btnpicker');
851
//         btnpicker.nativeElement.click();
852
//
853
//         comp.generateCalendar(10, 2016, true);
854
//
855
//         fixture.detectChanges();
856
//         let disabled = getElements('tr .disabled');
857
//         expect(disabled).not.toBe(null);
858
//         expect(disabled.length).toBe(10);
859
//
860
//         let firstDisabled = disabled[0];
861
//         expect(firstDisabled.nativeElement.textContent.trim()).toBe('26');
862
//
863
//         let lastDisabled = disabled[disabled.length - 1];
864
//         expect(lastDisabled.nativeElement.textContent.trim()).toBe('5');
865
//
866
//         fixture.detectChanges();
867
//         lastDisabled.nativeElement.click();
868
//         let selection = getElement('.selection');
869
//         expect(selection.nativeElement.value).toBe('');
870
//
871
//         fixture.detectChanges();
872
//         let selectableDays = getElements('.tablesingleday');
873
//         expect(selectableDays).not.toBe(null);
874
//         expect(selectableDays.length).toBe(26);
875
//
876
//         selectableDays[0].nativeElement.click();
877
//         fixture.detectChanges();
878
//         selection = getElement('.selection');
879
//         expect(selection.nativeElement.value).toContain('2016-10-06');
880
//     });
881
//
882
//     it('options - disable since', () => {
883
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
884
//         comp.options = {disableSince: {year: 2016, month: 10, day: 30}};
885
//
886
//         comp.parseOptions();
887
//
888
//         fixture.detectChanges();
889
//         let btnpicker = getElement('.btnpicker');
890
//         btnpicker.nativeElement.click();
891
//
892
//         comp.generateCalendar(10, 2016, true);
893
//
894
//         fixture.detectChanges();
895
//         let disabled = getElements('tr .disabled');
896
//         expect(disabled).not.toBe(null);
897
//         expect(disabled.length).toBe(8);
898
//
899
//         let firstDisabled = disabled[0];
900
//         expect(firstDisabled.nativeElement.textContent.trim()).toBe('30');
901
//
902
//         let lastDisabled = disabled[disabled.length - 1];
903
//         expect(lastDisabled.nativeElement.textContent.trim()).toBe('6');
904
//
905
//         fixture.detectChanges();
906
//         lastDisabled.nativeElement.click();
907
//         let selection = getElement('.selection');
908
//         expect(selection.nativeElement.value).toBe('');
909
//
910
//         fixture.detectChanges();
911
//         let selectableDays = getElements('.tablesingleday');
912
//         expect(selectableDays).not.toBe(null);
913
//         expect(selectableDays.length).toBe(29);
914
//
915
//         selectableDays[5].nativeElement.click();
916
//
917
//         fixture.detectChanges();
918
//         selection = getElement('.selection');
919
//         expect(selection.nativeElement.value).toContain('2016-10-06');
920
//     });
921
//
922
//     it('options - disable days one by one', () => {
923
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
924
//         comp.options = {disableDays: [{year: 2016, month: 10, day: 5}, {year: 2016, month: 10, day: 10}]};
925
//
926
//         comp.parseOptions();
927
//
928
//         fixture.detectChanges();
929
//         let btnpicker = getElement('.btnpicker');
930
//         btnpicker.nativeElement.click();
931
//
932
//         comp.generateCalendar(10, 2016, true);
933
//
934
//         fixture.detectChanges();
935
//         let disabled = getElements('tr .disabled');
936
//         expect(disabled).not.toBe(null);
937
//         expect(disabled.length).toBe(2);
938
//
939
//         let firstDisabled = disabled[0];
940
//         expect(firstDisabled.nativeElement.textContent.trim()).toBe('5');
941
//
942
//         let lastDisabled = disabled[1];
943
//         expect(lastDisabled.nativeElement.textContent.trim()).toBe('10');
944
//     });
945
//
946
//     it('options - enable disabled days one by one', () => {
947
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2017};
948
//         comp.options = {
949
//             dateFormat: 'dd.mm.yyyy',
950
//             disableDateRange: {begin: {year: 2017, month: 1, day: 1}, end: {year: 2017, month: 1, day: 31}},
951
//             enableDays: [{year: 2017, month: 1, day: 5}, {year: 2017, month: 1, day: 6}, {year: 2017, month: 1, day: 7}, {year: 2017, month: 1, day: 8}]
952
//         };
953
//
954
//         comp.parseOptions();
955
//
956
//         fixture.detectChanges();
957
//         let btnpicker = getElement('.btnpicker');
958
//         btnpicker.nativeElement.click();
959
//
960
//         comp.generateCalendar(1, 2017, true);
961
//
962
//         fixture.detectChanges();
963
//         let disabled = getElements('tr .disabled');
964
//         expect(disabled).not.toBe(null);
965
//         expect(disabled.length).toBe(27);
966
//
967
//         let firstDisabled = disabled[0];
968
//         expect(firstDisabled.nativeElement.textContent.trim()).toBe('1');
969
//
970
//         let lastDisabled = disabled[disabled.length - 1];
971
//         expect(lastDisabled.nativeElement.textContent.trim()).toBe('31');
972
//
973
//         fixture.detectChanges();
974
//         let alldates = getElements('.caltable .daycell');
975
//         expect(alldates).not.toBe(null);
976
//         expect(alldates.length).toBe(42);
977
//
978
//         fixture.detectChanges();
979
//         let firstEnabled = alldates[10];
980
//         firstEnabled.nativeElement.click();
981
//
982
//         fixture.detectChanges();
983
//         let selection = getElement('.selection');
984
//         expect(selection).not.toBe(null);
985
//         expect(selection.nativeElement.value).toBe('05.01.2017');
986
//     });
987
//
988
//     it('options - disable range', () => {
989
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
990
//         comp.options = {disableDateRange: {begin: {year: 2016, month: 10, day: 5}, end: {year: 2016, month: 10, day: 10}}};
991
//
992
//         comp.parseOptions();
993
//
994
//         fixture.detectChanges();
995
//         let btnpicker = getElement('.btnpicker');
996
//         btnpicker.nativeElement.click();
997
//
998
//         comp.generateCalendar(10, 2016, true);
999
//
1000
//         fixture.detectChanges();
1001
//         let disabled = getElements('tr .disabled');
1002
//         expect(disabled).not.toBe(null);
1003
//         expect(disabled.length).toBe(6);
1004
//
1005
//         let firstDisabled = disabled[0];
1006
//         expect(firstDisabled.nativeElement.textContent.trim()).toBe('5');
1007
//
1008
//         let lastDisabled = disabled[disabled.length - 1];
1009
//         expect(lastDisabled.nativeElement.textContent.trim()).toBe('10');
1010
//         btnpicker.nativeElement.click();
1011
//
1012
//
1013
//         comp.options = {disableDateRange: {begin: {}, end: {}}};
1014
//
1015
//         comp.parseOptions();
1016
//
1017
//         fixture.detectChanges();
1018
//         btnpicker = getElement('.btnpicker');
1019
//         btnpicker.nativeElement.click();
1020
//
1021
//         comp.generateCalendar(10, 2016, true);
1022
//
1023
//         fixture.detectChanges();
1024
//         disabled = getElements('tr .disabled');
1025
//         expect(disabled).not.toBe(null);
1026
//         expect(disabled.length).toBe(0);
1027
//     });
1028
//
1029
//     it('options - disable today - today button disabled', () => {
1030
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1031
//
1032
//         let date = new Date();
1033
//         comp.options = {disableDays: [{year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate()}]};
1034
//
1035
//         comp.parseOptions();
1036
//
1037
//         fixture.detectChanges();
1038
//         let btnpicker = getElement('.btnpicker');
1039
//         btnpicker.nativeElement.click();
1040
//
1041
//         comp.generateCalendar(10, 2016, true);
1042
//
1043
//         fixture.detectChanges();
1044
//         let headertodaybtn = getElement('.headertodaybtn');
1045
//         expect(headertodaybtn).not.toBe(null);
1046
//         expect(headertodaybtn.properties['disabled']).toBe(true);
1047
//
1048
//         fixture.detectChanges();
1049
//         headertodaybtn.nativeElement.click();
1050
//         let selector = getElement('.selector');
1051
//         expect(selector).not.toBe(null);
1052
//
1053
//         btnpicker.nativeElement.click();
1054
//
1055
//         comp.options = {disableDays: []};
1056
//         comp.parseOptions();
1057
//
1058
//         fixture.detectChanges();
1059
//         btnpicker.nativeElement.click();
1060
//         comp.generateCalendar(10, 2016, true);
1061
//
1062
//         fixture.detectChanges();
1063
//         headertodaybtn = getElement('.headertodaybtn');
1064
//         expect(headertodaybtn).not.toBe(null);
1065
//         expect(headertodaybtn.properties['disabled']).toBe(false);
1066
//
1067
//         headertodaybtn.nativeElement.click();
1068
//
1069
//         fixture.detectChanges();
1070
//         let selection = getElement('.selection');
1071
//         expect(selection).not.toBe(null);
1072
//         expect(selection.nativeElement.value).toBe(getDateString(date));
1073
//     });
1074
//
1075
//     it('options - disable weekends', () => {
1076
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1077
//         comp.options = {firstDayOfWeek: 'mo', disableWeekends: true};
1078
//
1079
//         comp.parseOptions();
1080
//
1081
//         fixture.detectChanges();
1082
//         let btnpicker = getElement('.btnpicker');
1083
//         btnpicker.nativeElement.click();
1084
//
1085
//         comp.generateCalendar(10, 2016, true);
1086
//
1087
//         fixture.detectChanges();
1088
//         let disabled = getElements('tr .disabled');
1089
//         expect(disabled).not.toBe(null);
1090
//         expect(disabled.length).toBe(12);
1091
//
1092
//         let firstDisabled = disabled[0];
1093
//         expect(firstDisabled.nativeElement.textContent.trim()).toBe('1');
1094
//
1095
//         let secondDisabled = disabled[1];
1096
//         expect(secondDisabled.nativeElement.textContent.trim()).toBe('2');
1097
//
1098
//         let lastDisabled = disabled[disabled.length - 1];
1099
//         expect(lastDisabled.nativeElement.textContent.trim()).toBe('6');
1100
//
1101
//         fixture.detectChanges();
1102
//         firstDisabled.nativeElement.click();
1103
//         let selection = getElement('.selection');
1104
//         expect(selection.nativeElement.value).toBe('');
1105
//
1106
//         fixture.detectChanges();
1107
//         secondDisabled.nativeElement.click();
1108
//         selection = getElement('.selection');
1109
//         expect(selection.nativeElement.value).toBe('');
1110
//
1111
//         fixture.detectChanges();
1112
//         let selectableDays = getElements('.tablesingleday');
1113
//         expect(selectableDays).not.toBe(null);
1114
//         expect(selectableDays.length).toBe(21);
1115
//
1116
//         selectableDays[0].nativeElement.click();
1117
//
1118
//         fixture.detectChanges();
1119
//         selection = getElement('.selection');
1120
//         expect(selection.nativeElement.value).toContain('2016-10-03');
1121
//     });
1122
//
1123
//     it('options - inline', () => {
1124
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1125
//         comp.options = {inline: true};
1126
//
1127
//         comp.parseOptions();
1128
//
1129
//         fixture.detectChanges();
1130
//         let selector = getElement('.selector');
1131
//         expect(selector).not.toBe(null);
1132
//
1133
//         fixture.detectChanges();
1134
//         let selectiongroup = getElement('.selectiongroup');
1135
//         expect(selectiongroup).toBe(null);
1136
//     });
1137
//
1138
//     it('options - show clear date button', () => {
1139
//         let date = new Date();
1140
//         comp.selectedMonth = {monthTxt: '', monthNbr: date.getMonth() + 1, year: date.getFullYear()};
1141
//
1142
//         fixture.detectChanges();
1143
//         let btnpicker = getElement('.btnpicker');
1144
//         btnpicker.nativeElement.click();
1145
//
1146
//         fixture.detectChanges();
1147
//         let currday = getElement('.currday');
1148
//         expect(currday).not.toBe(null);
1149
//
1150
//         currday.nativeElement.click();
1151
//
1152
//         fixture.detectChanges();
1153
//         let btnclear = getElement('.btnclear');
1154
//         expect(btnclear).not.toBe(null);
1155
//
1156
//         btnclear.nativeElement.click();
1157
//
1158
//         comp.options = {showClearDateBtn: true};
1159
//         comp.parseOptions();
1160
//
1161
//         fixture.detectChanges();
1162
//         btnpicker = getElement('.btnpicker');
1163
//         btnpicker.nativeElement.click();
1164
//
1165
//         fixture.detectChanges();
1166
//         currday = getElement('.currday');
1167
//         expect(currday).not.toBe(null);
1168
//
1169
//         currday.nativeElement.click();
1170
//
1171
//         fixture.detectChanges();
1172
//         btnclear = getElement('.btnclear');
1173
//         expect(btnclear).not.toBe(null);
1174
//         btnclear.nativeElement.click();
1175
//
1176
//         btnclear.nativeElement.click();
1177
//
1178
//
1179
//         comp.options = {showClearDateBtn: false};
1180
//         comp.parseOptions();
1181
//
1182
//         fixture.detectChanges();
1183
//         btnpicker = getElement('.btnpicker');
1184
//         btnpicker.nativeElement.click();
1185
//
1186
//         fixture.detectChanges();
1187
//         currday = getElement('.currday');
1188
//         expect(currday).not.toBe(null);
1189
//
1190
//         currday.nativeElement.click();
1191
//
1192
//         fixture.detectChanges();
1193
//         btnclear = getElement('.btnclear');
1194
//         expect(btnclear).toBe(null);
1195
//     });
1196
//
1197
//     it('options - height', () => {
1198
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1199
//         comp.options = {height: '50px'};
1200
//
1201
//         comp.parseOptions();
1202
//
1203
//         fixture.detectChanges();
1204
//         let selection = getElement('.selection');
1205
//         expect(selection).not.toBe(null);
1206
//         expect(selection.styles['height']).toBe('50px');
1207
//     });
1208
//
1209
//     it('options - width', () => {
1210
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1211
//         comp.options = {width: '300px'};
1212
//
1213
//         comp.parseOptions();
1214
//
1215
//         fixture.detectChanges();
1216
//         expect(de).not.toBe(null);
1217
//         expect(de.styles['width']).toBe('300px');
1218
//
1219
//         comp.options = {width: '20%'};
1220
//
1221
//         comp.parseOptions();
1222
//
1223
//         fixture.detectChanges();
1224
//         expect(de).not.toBe(null);
1225
//         expect(de.styles['width']).toBe('20%');
1226
//     });
1227
//
1228
//     it('options - selection text font size', () => {
1229
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1230
//         comp.options = {selectionTxtFontSize: '10px'};
1231
//
1232
//         comp.parseOptions();
1233
//
1234
//         fixture.detectChanges();
1235
//         let selection = getElement('.selection');
1236
//         expect(selection).not.toBe(null);
1237
//         expect(selection.styles['font-size']).toBe('10px');
1238
//     });
1239
//
1240
//     it('options - align selector right', () => {
1241
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1242
//         comp.options = {alignSelectorRight: true};
1243
//
1244
//         fixture.detectChanges();
1245
//         let btnpicker = getElement('.btnpicker');
1246
//         btnpicker.nativeElement.click();
1247
//
1248
//         comp.parseOptions();
1249
//
1250
//         fixture.detectChanges();
1251
//         let alignselectorright = getElement('.alignselectorright');
1252
//         expect(alignselectorright).not.toBe(null);
1253
//
1254
//         comp.options = {alignSelectorRight: false};
1255
//
1256
//         comp.parseOptions();
1257
//
1258
//         fixture.detectChanges();
1259
//         alignselectorright = getElement('.alignselectorright');
1260
//         expect(alignselectorright).toBe(null);
1261
//     });
1262
//
1263
//     it('options - open selector top of input', () => {
1264
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1265
//         comp.options = {openSelectorTopOfInput: true, height: '30px'};
1266
//
1267
//         comp.parseOptions();
1268
//
1269
//         fixture.detectChanges();
1270
//         let btnpicker = getElement('.btnpicker');
1271
//         btnpicker.nativeElement.click();
1272
//
1273
//         let value: string = comp.getSelectorTopPosition();
1274
//         expect(value).not.toBe(null);
1275
//         expect(value).toBe('32px');
1276
//
1277
//         btnpicker.nativeElement.click();
1278
//
1279
//
1280
//         comp.options = {openSelectorTopOfInput: false};
1281
//
1282
//         comp.parseOptions();
1283
//
1284
//         fixture.detectChanges();
1285
//         btnpicker = getElement('.btnpicker');
1286
//         btnpicker.nativeElement.click();
1287
//
1288
//         value = comp.getSelectorTopPosition();
1289
//         expect(value).toBe(undefined);
1290
//
1291
//
1292
//         btnpicker.nativeElement.click();
1293
//
1294
//         comp.options = {};
1295
//
1296
//         comp.parseOptions();
1297
//
1298
//         fixture.detectChanges();
1299
//         btnpicker = getElement('.btnpicker');
1300
//         btnpicker.nativeElement.click();
1301
//
1302
//         value = comp.getSelectorTopPosition();
1303
//         expect(value).toBe(undefined);
1304
//     });
1305
//
1306
//     it('options - indicate invalid date', () => {
1307
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1308
//         comp.options = {indicateInvalidDate: true, dateFormat: 'dd.mm.yyyy'};
1309
//
1310
//         comp.parseOptions();
1311
//
1312
//         comp.userDateInput({target:{value:'2016-08-22'}});
1313
//         fixture.detectChanges();
1314
//         let invaliddate = getElement('.invaliddate');
1315
//         expect(invaliddate).not.toBe(null);
1316
//
1317
//         comp.userDateInput({target:{value:'2016-08-xx'}});
1318
//         fixture.detectChanges();
1319
//         invaliddate = getElement('.invaliddate');
1320
//         expect(invaliddate).not.toBe(null);
1321
//
1322
//         comp.userDateInput({target:{value:'2016-08-99'}});
1323
//         fixture.detectChanges();
1324
//         invaliddate = getElement('.invaliddate');
1325
//         expect(invaliddate).not.toBe(null);
1326
//
1327
//         comp.userDateInput({target:{value:'10.10.2016'}});
1328
//         fixture.detectChanges();
1329
//         invaliddate = getElement('.invaliddate');
1330
//         expect(invaliddate).toBe(null);
1331
//     });
1332
//
1333
//     it('options - disableUntil input dates validation', ()=> {
1334
//         comp.options = {
1335
//             indicateInvalidDate: true,
1336
//             dateFormat: 'dd.mm.yyyy',
1337
//             disableUntil:{year: 2016, month: 11, day: 4}
1338
//         };
1339
//
1340
//         comp.parseOptions();
1341
//
1342
//         comp.userDateInput({target:{value:'11.12.2015'}});
1343
//         fixture.detectChanges();
1344
//         let invaliddate = getElement('.invaliddate');
1345
//         expect(invaliddate).not.toBe(null);
1346
//
1347
//         comp.userDateInput({target:{value:'11.06.2016'}});
1348
//         fixture.detectChanges();
1349
//         invaliddate = getElement('.invaliddate');
1350
//         expect(invaliddate).not.toBe(null);
1351
//
1352
//         comp.userDateInput({target:{value:'04.11.2016'}});
1353
//         fixture.detectChanges();
1354
//         invaliddate = getElement('.invaliddate');
1355
//         expect(invaliddate).not.toBe(null);
1356
//
1357
//         comp.userDateInput({target:{value:'05.11.2016'}});
1358
//         fixture.detectChanges();
1359
//         invaliddate = getElement('.invaliddate');
1360
//         expect(invaliddate).toBe(null);
1361
//
1362
//         comp.options = {
1363
//             indicateInvalidDate: true,
1364
//             dateFormat: 'dd.mm.yyyy',
1365
//             disableUntil:{year: 0, month: 0, day: 0}
1366
//         };
1367
//
1368
//         comp.parseOptions();
1369
//
1370
//         comp.userDateInput({target:{value:'11.12.2015'}});
1371
//         fixture.detectChanges();
1372
//         invaliddate = getElement('.invaliddate');
1373
//         expect(invaliddate).toBe(null);
1374
//     });
1375
//
1376
//     it('options - disableSince input dates validation', ()=> {
1377
//         comp.options = {
1378
//             indicateInvalidDate: true,
1379
//             dateFormat: 'dd.mm.yyyy',
1380
//             disableSince:{year: 2016, month: 11, day: 22}
1381
//         };
1382
//
1383
//         comp.parseOptions();
1384
//
1385
//         comp.userDateInput({target:{value:'08.12.2017'}});
1386
//         fixture.detectChanges();
1387
//         let invaliddate = getElement('.invaliddate');
1388
//         expect(invaliddate).not.toBe(null);
1389
//
1390
//         comp.userDateInput({target:{value:'08.12.2016'}});
1391
//         fixture.detectChanges();
1392
//         invaliddate = getElement('.invaliddate');
1393
//         expect(invaliddate).not.toBe(null);
1394
//
1395
//         comp.userDateInput({target:{value:'23.11.2016'}});
1396
//         fixture.detectChanges();
1397
//         invaliddate = getElement('.invaliddate');
1398
//         expect(invaliddate).not.toBe(null);
1399
//
1400
//         comp.userDateInput({target:{value:'21.11.2016'}});
1401
//         fixture.detectChanges();
1402
//         invaliddate = getElement('.invaliddate');
1403
//         expect(invaliddate).toBe(null);
1404
//
1405
//         comp.options = {
1406
//             indicateInvalidDate: true,
1407
//             dateFormat: 'dd.mm.yyyy',
1408
//             disableSince:{year: 0, month: 0, day: 0}
1409
//         };
1410
//
1411
//         comp.parseOptions();
1412
//
1413
//         comp.userDateInput({target:{value:'11.12.2015'}});
1414
//         fixture.detectChanges();
1415
//         invaliddate = getElement('.invaliddate');
1416
//         expect(invaliddate).toBe(null);
1417
//     });
1418
//
1419
//     it('options - disable weekends input date validation', () => {
1420
//         comp.selectedMonth = {monthTxt: '', monthNbr: 11, year: 2016};
1421
//         comp.options = {
1422
//             indicateInvalidDate: true,
1423
//             dateFormat: 'dd.mm.yyyy',
1424
//             disableWeekends: true,
1425
//             firstDayOfWeek: 'mo'
1426
//         };
1427
//
1428
//         comp.parseOptions();
1429
//
1430
//         comp.userDateInput({target:{value:'05.11.2016'}});
1431
//         fixture.detectChanges();
1432
//         let invaliddate = getElement('.invaliddate');
1433
//         expect(invaliddate).not.toBe(null);
1434
//
1435
//         comp.userDateInput({target:{value:'06.11.2016'}});
1436
//         fixture.detectChanges();
1437
//         invaliddate = getElement('.invaliddate');
1438
//         expect(invaliddate).not.toBe(null);
1439
//
1440
//         comp.userDateInput({target:{value:'12.11.2016'}});
1441
//         fixture.detectChanges();
1442
//         invaliddate = getElement('.invaliddate');
1443
//         expect(invaliddate).not.toBe(null);
1444
//
1445
//         comp.userDateInput({target:{value:'13.11.2016'}});
1446
//         fixture.detectChanges();
1447
//         invaliddate = getElement('.invaliddate');
1448
//         expect(invaliddate).not.toBe(null);
1449
//
1450
//         comp.userDateInput({target:{value:'19.11.2016'}});
1451
//         fixture.detectChanges();
1452
//         invaliddate = getElement('.invaliddate');
1453
//         expect(invaliddate).not.toBe(null);
1454
//
1455
//         comp.userDateInput({target:{value:'20.11.2016'}});
1456
//         fixture.detectChanges();
1457
//         invaliddate = getElement('.invaliddate');
1458
//         expect(invaliddate).not.toBe(null);
1459
//
1460
//         comp.userDateInput({target:{value:'26.11.2016'}});
1461
//         fixture.detectChanges();
1462
//         invaliddate = getElement('.invaliddate');
1463
//         expect(invaliddate).not.toBe(null);
1464
//
1465
//         comp.userDateInput({target:{value:'27.11.2016'}});
1466
//         fixture.detectChanges();
1467
//         invaliddate = getElement('.invaliddate');
1468
//         expect(invaliddate).not.toBe(null);
1469
//
1470
//         comp.userDateInput({target:{value:'04.11.2016'}});
1471
//         fixture.detectChanges();
1472
//         invaliddate = getElement('.invaliddate');
1473
//         expect(invaliddate).toBe(null);
1474
//     });
1475
//
1476
//     it('options - disableDays input date validation', () => {
1477
//         comp.selectedMonth = {monthTxt: '', monthNbr: 11, year: 2016};
1478
//         comp.options = {
1479
//             indicateInvalidDate: true,
1480
//             dateFormat: 'dd.mm.yyyy',
1481
//             disableDays: [
1482
//                 {year: 2016, month: 11, day: 1},
1483
//                 {year: 2016, month: 11, day: 3},
1484
//                 {year: 2016, month: 11, day: 5},
1485
//                 {year: 2016, month: 11, day: 7}
1486
//             ],
1487
//             firstDayOfWeek: 'mo'
1488
//         };
1489
//
1490
//         comp.parseOptions();
1491
//
1492
//         comp.userDateInput({target:{value:'01.11.2016'}});
1493
//         fixture.detectChanges();
1494
//         let invaliddate = getElement('.invaliddate');
1495
//         expect(invaliddate).not.toBe(null);
1496
//
1497
//         comp.userDateInput({target:{value:'03.11.2016'}});
1498
//         fixture.detectChanges();
1499
//         invaliddate = getElement('.invaliddate');
1500
//         expect(invaliddate).not.toBe(null);
1501
//
1502
//         comp.userDateInput({target:{value:'05.11.2016'}});
1503
//         fixture.detectChanges();
1504
//         invaliddate = getElement('.invaliddate');
1505
//         expect(invaliddate).not.toBe(null);
1506
//
1507
//         comp.userDateInput({target:{value:'07.11.2016'}});
1508
//         fixture.detectChanges();
1509
//         invaliddate = getElement('.invaliddate');
1510
//         expect(invaliddate).not.toBe(null);
1511
//
1512
//         comp.userDateInput({target:{value:'02.11.2016'}});
1513
//         fixture.detectChanges();
1514
//         invaliddate = getElement('.invaliddate');
1515
//         expect(invaliddate).toBe(null);
1516
//     });
1517
//
1518
//     it('options - disable component', () => {
1519
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1520
//         comp.options = {componentDisabled: true};
1521
//         comp.parseOptions();
1522
//
1523
//         fixture.detectChanges();
1524
//         let btnpicker = getElement('.btnpicker');
1525
//
1526
//         btnpicker.nativeElement.click();
1527
//         fixture.detectChanges();
1528
//
1529
//         let selector = getElement('.selector');
1530
//         expect(selector).toBe(null);
1531
//
1532
//         fixture.detectChanges();
1533
//         let selection = getElement('.selection');
1534
//
1535
//         selection.nativeElement.value = '2016-11-14';
1536
//
1537
//         fixture.detectChanges();
1538
//         expect(selection.nativeElement.value).toContain('');
1539
//     });
1540
//
1541
//     it('options - editable date field', () => {
1542
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1543
//         comp.options = {editableDateField: false};
1544
//         comp.parseOptions();
1545
//
1546
//         fixture.detectChanges();
1547
//         let selection = getElement('.selection');
1548
//
1549
//         selection.nativeElement.value = '2016-11-14';
1550
//
1551
//         fixture.detectChanges();
1552
//         expect(selection.nativeElement.value).toContain('');
1553
//
1554
//         comp.options = {editableDateField: true};
1555
//         comp.parseOptions();
1556
//
1557
//         fixture.detectChanges();
1558
//         selection = getElement('.selection');
1559
//
1560
//         selection.nativeElement.value = '2016-11-14';
1561
//
1562
//         fixture.detectChanges();
1563
//         expect(selection.nativeElement.value).toContain('2016-11-14');
1564
//     });
1565
//
1566
//     it('options - click input to open selector', () => {
1567
//
1568
//         let selection: DebugElement,
1569
//             selector: DebugElement;
1570
//
1571
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1572
//         comp.options = {editableDateField: true};
1573
//         comp.parseOptions();
1574
//
1575
//         fixture.detectChanges();
1576
//         selection = getElement('.selection');
1577
//
1578
//         selection.nativeElement.click();
1579
//
1580
//         fixture.detectChanges();
1581
//         selector = getElement('.selector');
1582
//         expect(selector).toBe(null);
1583
//
1584
//         comp.options = {editableDateField: false, openSelectorOnInputClick: true};
1585
//         comp.parseOptions();
1586
//
1587
//         fixture.detectChanges();
1588
//         selection = getElement('.selection');
1589
//
1590
//         selection.nativeElement.click();
1591
//
1592
//         fixture.detectChanges();
1593
//         selector = getElement('.selector');
1594
//         expect(selector).not.toBe(null);
1595
//     });
1596
//
1597
//     it('options - input field value required', () => {
1598
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1599
//         comp.options = {};
1600
//         comp.parseOptions();
1601
//
1602
//         fixture.detectChanges();
1603
//         let selection = getElement('.selection');
1604
//         expect(selection).not.toBe(null);
1605
//         expect(selection.properties['required']).toBe(false);
1606
//
1607
//         comp.options = {inputValueRequired: true};
1608
//         comp.parseOptions();
1609
//
1610
//         fixture.detectChanges();
1611
//         selection = getElement('.selection');
1612
//         expect(selection).not.toBe(null);
1613
//         expect(selection.properties['required']).toBe(true);
1614
//
1615
//         comp.options = {inputValueRequired: false};
1616
//         comp.parseOptions();
1617
//
1618
//         fixture.detectChanges();
1619
//         selection = getElement('.selection');
1620
//         expect(selection).not.toBe(null);
1621
//         expect(selection.properties['required']).toBe(false);
1622
//     });
1623
//
1624
//     it('options - show selector arrow', () => {
1625
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1626
//         comp.options = {};
1627
//         comp.parseOptions();
1628
//
1629
//         fixture.detectChanges();
1630
//         let btnpicker = getElement('.btnpicker');
1631
//         btnpicker.nativeElement.click();
1632
//
1633
//         fixture.detectChanges();
1634
//         let selectorarrow = getElement('.selectorarrow');
1635
//         expect(selectorarrow).not.toBe(null);
1636
//         btnpicker.nativeElement.click();
1637
//
1638
//
1639
//         comp.options = {showSelectorArrow: false};
1640
//         comp.parseOptions();
1641
//
1642
//         fixture.detectChanges();
1643
//         btnpicker = getElement('.btnpicker');
1644
//         btnpicker.nativeElement.click();
1645
//
1646
//         fixture.detectChanges();
1647
//         selectorarrow = getElement('.selectorarrow');
1648
//         expect(selectorarrow).toBe(null);
1649
//         btnpicker.nativeElement.click();
1650
//
1651
//
1652
//         comp.options = {showSelectorArrow: true};
1653
//         comp.parseOptions();
1654
//
1655
//         fixture.detectChanges();
1656
//         btnpicker = getElement('.btnpicker');
1657
//         btnpicker.nativeElement.click();
1658
//
1659
//         fixture.detectChanges();
1660
//         selectorarrow = getElement('.selectorarrow');
1661
//         expect(selectorarrow).not.toBe(null);
1662
//         btnpicker.nativeElement.click();
1663
//     });
1664
//
1665
//     it('options - show input field', () => {
1666
//         comp.selectedMonth = {monthTxt: '', monthNbr: 10, year: 2016};
1667
//         comp.options = {};
1668
//         comp.parseOptions();
1669
//
1670
//         fixture.detectChanges();
1671
//         let selection = getElement('.selection');
1672
//         expect(selection).not.toBe(null);
1673
//
1674
//
1675
//         comp.options = {showInputField: false};
1676
//         comp.parseOptions();
1677
//
1678
//         fixture.detectChanges();
1679
//         selection = getElement('.selection');
1680
//         expect(selection).toBe(null);
1681
//
1682
//
1683
//         comp.options = {showInputField: true};
1684
//         comp.parseOptions();
1685
//
1686
//         fixture.detectChanges();
1687
//         selection = getElement('.selection');
1688
//         expect(selection).not.toBe(null);
1689
//     });
1690
//
1691
//     it('options - input auto fill', () => {
1692
//         comp.options = {inputAutoFill: false};
1693
//         comp.parseOptions();
1694
//
1695
//         fixture.detectChanges();
1696
//         let selection = getElement('.selection');
1697
//         expect(selection).not.toBe(null);
1698
//
1699
//         fixture.detectChanges();
1700
//         selection.nativeElement.value = '2016-2-1';
1701
//         fixture.nativeElement.querySelector('.selection').dispatchEvent(new Event('keyup'));
1702
//
1703
//         fixture.detectChanges();
1704
//         selection = getElement('.selection');
1705
//         expect(selection.nativeElement.value).toBe('2016-2-1');
1706
//
1707
//
1708
//         comp.options = {inputAutoFill: true};
1709
//         comp.parseOptions();
1710
//
1711
//         fixture.detectChanges();
1712
//         selection.nativeElement.value = '';
1713
//
1714
//         fixture.detectChanges();
1715
//         selection.nativeElement.value = '2016-1-';
1716
//         fixture.nativeElement.querySelector('.selection').dispatchEvent(new Event('keyup'));
1717
//
1718
//         fixture.detectChanges();
1719
//         selection = getElement('.selection');
1720
//         expect(selection.nativeElement.value).toBe('2016-01-');
1721
//
1722
//         fixture.detectChanges();
1723
//         selection.nativeElement.value = '2016-01-9';
1724
//         fixture.nativeElement.querySelector('.selection').dispatchEvent(new Event('keyup'));
1725
//
1726
//         fixture.detectChanges();
1727
//         selection = getElement('.selection');
1728
//         expect(selection.nativeElement.value).toBe('2016-01-09');
1729
//     });
1730
//
1731
//     it('options - show week numbers', () => {
1732
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2017};
1733
//         comp.options = {showWeekNumbers: false};
1734
//         comp.parseOptions();
1735
//
1736
//         fixture.detectChanges();
1737
//         let btnpicker = getElement('.btnpicker');
1738
//         btnpicker.nativeElement.click();
1739
//
1740
//         fixture.detectChanges();
1741
//         let weekdaytitleweeknbr = getElement('.weekdaytitleweeknbr');
1742
//         expect(weekdaytitleweeknbr).toBe(null);
1743
//
1744
//         fixture.detectChanges();
1745
//         let daycellweeknbr = getElements('.daycellweeknbr');
1746
//         expect(daycellweeknbr.length).toBe(0);
1747
//
1748
//         btnpicker.nativeElement.click();
1749
//
1750
//
1751
//         comp.options = {showWeekNumbers: true};
1752
//         comp.parseOptions();
1753
//
1754
//         fixture.detectChanges();
1755
//         btnpicker = getElement('.btnpicker');
1756
//         btnpicker.nativeElement.click();
1757
//
1758
//         fixture.detectChanges();
1759
//         weekdaytitleweeknbr = getElement('.weekdaytitleweeknbr');
1760
//         expect(weekdaytitleweeknbr).not.toBe(null);
1761
//
1762
//         fixture.detectChanges();
1763
//         daycellweeknbr = getElements('.daycellweeknbr');
1764
//         expect(daycellweeknbr.length).toBe(6);
1765
//
1766
//         expect(daycellweeknbr[0].nativeElement.textContent.trim()).toBe('52');
1767
//         expect(daycellweeknbr[1].nativeElement.textContent.trim()).toBe('1');
1768
//         expect(daycellweeknbr[2].nativeElement.textContent.trim()).toBe('2');
1769
//         expect(daycellweeknbr[3].nativeElement.textContent.trim()).toBe('3');
1770
//         expect(daycellweeknbr[4].nativeElement.textContent.trim()).toBe('4');
1771
//         expect(daycellweeknbr[5].nativeElement.textContent.trim()).toBe('5');
1772
//
1773
//         fixture.detectChanges();
1774
//         let prevyear = getElement(PREVYEAR);
1775
//         expect(prevyear).not.toBe(null);
1776
//         prevyear.nativeElement.click();
1777
//
1778
//         fixture.detectChanges();
1779
//         daycellweeknbr = getElements('.daycellweeknbr');
1780
//         expect(daycellweeknbr.length).toBe(6);
1781
//
1782
//         expect(daycellweeknbr[0].nativeElement.textContent.trim()).toBe('53');
1783
//         expect(daycellweeknbr[1].nativeElement.textContent.trim()).toBe('1');
1784
//         expect(daycellweeknbr[2].nativeElement.textContent.trim()).toBe('2');
1785
//         expect(daycellweeknbr[3].nativeElement.textContent.trim()).toBe('3');
1786
//         expect(daycellweeknbr[4].nativeElement.textContent.trim()).toBe('4');
1787
//         expect(daycellweeknbr[5].nativeElement.textContent.trim()).toBe('5');
1788
//
1789
//         prevyear.nativeElement.click();
1790
//
1791
//         fixture.detectChanges();
1792
//         daycellweeknbr = getElements('.daycellweeknbr');
1793
//         expect(daycellweeknbr.length).toBe(6);
1794
//
1795
//         expect(daycellweeknbr[0].nativeElement.textContent.trim()).toBe('1');
1796
//         expect(daycellweeknbr[1].nativeElement.textContent.trim()).toBe('2');
1797
//         expect(daycellweeknbr[2].nativeElement.textContent.trim()).toBe('3');
1798
//         expect(daycellweeknbr[3].nativeElement.textContent.trim()).toBe('4');
1799
//         expect(daycellweeknbr[4].nativeElement.textContent.trim()).toBe('5');
1800
//         expect(daycellweeknbr[5].nativeElement.textContent.trim()).toBe('6');
1801
//     });
1802
//
1803
//     it('options - aria label texts', () => {
1804
//         comp.selectedDate = comp.parseSelectedDate('2017-10-11');
1805
//         comp.parseOptions();
1806
//
1807
//         fixture.detectChanges();
1808
//         let btnpicker = getElement('.btnpicker');
1809
//         expect(btnpicker).not.toBe(null);
1810
//         expect(btnpicker.nativeElement.attributes['aria-label'].textContent).toBe('Open Calendar');
1811
//
1812
//         btnpicker.nativeElement.click();
1813
//
1814
//         fixture.detectChanges();
1815
//         let selection = getElement('.selection');
1816
//         expect(selection).not.toBe(null);
1817
//         expect(selection.nativeElement.attributes['aria-label'].textContent).toBe('Date input field');
1818
//
1819
//         fixture.detectChanges();
1820
//         let btnclear = getElement('.btnclear');
1821
//         expect(btnclear).not.toBe(null);
1822
//         expect(btnclear.nativeElement.attributes['aria-label'].textContent).toBe('Clear Date');
1823
//
1824
//
1825
//         fixture.detectChanges();
1826
//         let prevmonth = getElement(PREVMONTH);
1827
//         expect(prevmonth).not.toBe(null);
1828
//         expect(prevmonth.nativeElement.attributes['aria-label'].textContent).toBe('Previous Month');
1829
//
1830
//         fixture.detectChanges();
1831
//         let nextmonth = getElement(NEXTMONTH);
1832
//         expect(nextmonth).not.toBe(null);
1833
//         expect(nextmonth.nativeElement.attributes['aria-label'].textContent).toBe('Next Month');
1834
//
1835
//         fixture.detectChanges();
1836
//         let prevyear = getElement(PREVYEAR);
1837
//         expect(prevyear).not.toBe(null);
1838
//         expect(prevyear.nativeElement.attributes['aria-label'].textContent).toBe('Previous Year');
1839
//
1840
//         fixture.detectChanges();
1841
//         let nextyear = getElement(NEXTYEAR);
1842
//         expect(nextyear).not.toBe(null);
1843
//         expect(nextyear.nativeElement.attributes['aria-label'].textContent).toBe('Next Year');
1844
//
1845
//         btnpicker.nativeElement.click();
1846
//
1847
//         comp.options = {
1848
//             ariaLabelInputField: 'text 1',
1849
//             ariaLabelClearDate: 'text 2',
1850
//             ariaLabelOpenCalendar: 'text 3',
1851
//             ariaLabelPrevMonth: 'text 4',
1852
//             ariaLabelNextMonth: 'text 5',
1853
//             ariaLabelPrevYear: 'text 6',
1854
//             ariaLabelNextYear: 'text 7'
1855
//         };
1856
//         comp.parseOptions();
1857
//
1858
//         fixture.detectChanges();
1859
//         btnpicker = getElement('.btnpicker');
1860
//         expect(btnpicker).not.toBe(null);
1861
//         expect(btnpicker.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelOpenCalendar);
1862
//
1863
//         btnpicker.nativeElement.click();
1864
//
1865
//         fixture.detectChanges();
1866
//         selection = getElement('.selection');
1867
//         expect(selection).not.toBe(null);
1868
//         expect(selection.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelInputField);
1869
//
1870
//         fixture.detectChanges();
1871
//         btnclear = getElement('.btnclear');
1872
//         expect(btnclear).not.toBe(null);
1873
//         expect(btnclear.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelClearDate);
1874
//
1875
//
1876
//         fixture.detectChanges();
1877
//         prevmonth = getElement(PREVMONTH);
1878
//         expect(prevmonth).not.toBe(null);
1879
//         expect(prevmonth.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelPrevMonth);
1880
//
1881
//         fixture.detectChanges();
1882
//         nextmonth = getElement(NEXTMONTH);
1883
//         expect(nextmonth).not.toBe(null);
1884
//         expect(nextmonth.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelNextMonth);
1885
//
1886
//         fixture.detectChanges();
1887
//         prevyear = getElement(PREVYEAR);
1888
//         expect(prevyear).not.toBe(null);
1889
//         expect(prevyear.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelPrevYear);
1890
//
1891
//         fixture.detectChanges();
1892
//         nextyear = getElement(NEXTYEAR);
1893
//         expect(nextyear).not.toBe(null);
1894
//         expect(nextyear.nativeElement.attributes['aria-label'].textContent).toBe(comp.options.ariaLabelNextYear);
1895
//     });
1896
//
1897
//     it('locale - use fr locale', () => {
1898
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
1899
//         comp.locale = 'fr';
1900
//
1901
//         comp.parseOptions();
1902
//
1903
//         fixture.detectChanges();
1904
//         let btnpicker = getElement('.btnpicker');
1905
//         btnpicker.nativeElement.click();
1906
//
1907
//         fixture.detectChanges();
1908
//         let days = getElements('.caltable thead tr th');
1909
//         expect(days.length).toBe(7);
1910
//         expect(days[0].nativeElement.textContent).toBe('Lun');
1911
//         expect(days[1].nativeElement.textContent).toBe('Mar');
1912
//         expect(days[2].nativeElement.textContent).toBe('Mer');
1913
//         expect(days[3].nativeElement.textContent).toBe('Jeu');
1914
//         expect(days[4].nativeElement.textContent).toBe('Ven');
1915
//         expect(days[5].nativeElement.textContent).toBe('Sam');
1916
//         expect(days[6].nativeElement.textContent).toBe('Dim');
1917
//
1918
//         fixture.detectChanges();
1919
//         let nextmonth = getElement(NEXTMONTH);
1920
//         expect(nextmonth).not.toBe(null);
1921
//
1922
//         fixture.detectChanges();
1923
//         let monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1924
//         expect(monthLabel.nativeElement.textContent).toBe('Jan');
1925
//
1926
//         nextmonth.nativeElement.click();
1927
//         fixture.detectChanges();
1928
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1929
//         expect(monthLabel.nativeElement.textContent).toBe('Fév');
1930
//
1931
//         nextmonth.nativeElement.click();
1932
//         fixture.detectChanges();
1933
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1934
//         expect(monthLabel.nativeElement.textContent).toBe('Mar');
1935
//
1936
//         nextmonth.nativeElement.click();
1937
//         fixture.detectChanges();
1938
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1939
//         expect(monthLabel.nativeElement.textContent).toBe('Avr');
1940
//
1941
//         nextmonth.nativeElement.click();
1942
//         fixture.detectChanges();
1943
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1944
//         expect(monthLabel.nativeElement.textContent).toBe('Mai');
1945
//
1946
//         nextmonth.nativeElement.click();
1947
//         fixture.detectChanges();
1948
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1949
//         expect(monthLabel.nativeElement.textContent).toBe('Juin');
1950
//
1951
//         nextmonth.nativeElement.click();
1952
//         fixture.detectChanges();
1953
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1954
//         expect(monthLabel.nativeElement.textContent).toBe('Juil');
1955
//
1956
//         nextmonth.nativeElement.click();
1957
//         fixture.detectChanges();
1958
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1959
//         expect(monthLabel.nativeElement.textContent).toBe('Aoû');
1960
//
1961
//         nextmonth.nativeElement.click();
1962
//         fixture.detectChanges();
1963
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1964
//         expect(monthLabel.nativeElement.textContent).toBe('Sep');
1965
//
1966
//         nextmonth.nativeElement.click();
1967
//         fixture.detectChanges();
1968
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1969
//         expect(monthLabel.nativeElement.textContent).toBe('Oct');
1970
//
1971
//         nextmonth.nativeElement.click();
1972
//         fixture.detectChanges();
1973
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1974
//         expect(monthLabel.nativeElement.textContent).toBe('Nov');
1975
//
1976
//         nextmonth.nativeElement.click();
1977
//         fixture.detectChanges();
1978
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
1979
//         expect(monthLabel.nativeElement.textContent).toBe('Déc');
1980
//
1981
//         fixture.detectChanges();
1982
//         let headertodaybtn = getElement('.headertodaybtn');
1983
//         expect(headertodaybtn).not.toBe(null);
1984
//         expect(headertodaybtn.nativeElement.textContent).toBe('Aujourd\'hui');
1985
//
1986
//         fixture.detectChanges();
1987
//         let firstDayOfWeek = getElement('.caltable thead tr th:first-child');
1988
//         expect(firstDayOfWeek).not.toBe(null);
1989
//         expect(firstDayOfWeek.nativeElement.textContent).toBe('Lun');
1990
//
1991
//         fixture.detectChanges();
1992
//         let sunday = getElement('.sunday');
1993
//         expect(sunday).not.toBe(null);
1994
//
1995
//         comp.userDateInput({target:{value:'10/10/2016'}});
1996
//         expect(comp.invalidDate).toBe(false);
1997
//
1998
//         fixture.detectChanges();
1999
//         let invaliddate = getElement('.invaliddate');
2000
//         expect(invaliddate).toBe(null);
2001
//     });
2002
//
2003
//     it('selDate - initially selected date - string', () => {
2004
//         let date: string = '2017-10-11';
2005
//         comp.selectedDate = comp.parseSelectedDate(date);
2006
//
2007
//         comp.parseOptions();
2008
//
2009
//         fixture.detectChanges();
2010
//         let selection = getElement('.selection');
2011
//         expect(selection).not.toBe(null);
2012
//         expect(selection.nativeElement.value).toContain('2017-10-11');
2013
//
2014
//
2015
//         fixture.detectChanges();
2016
//         let btnpicker = getElement('.btnpicker');
2017
//         btnpicker.nativeElement.click();
2018
//
2019
//         fixture.detectChanges();
2020
//         let selectedday = getElement('.selectedday div span');
2021
//         expect(selectedday).not.toBe(null);
2022
//         expect(selectedday.nativeElement.textContent).toContain('11');
2023
//
2024
//         fixture.detectChanges();
2025
//         let monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2026
//         expect(monthLabel).not.toBe(null);
2027
//         expect(monthLabel.nativeElement.textContent).toBe('Oct');
2028
//
2029
//         fixture.detectChanges();
2030
//         let yearLabel = getElement('.headeryeartxt .headerlabelbtn');
2031
//         expect(yearLabel).not.toBe(null);
2032
//         expect(yearLabel.nativeElement.textContent).toBe('2017');
2033
//     });
2034
//
2035
//     it('selDate - initially selected date - object', () => {
2036
//         let date: Object = {year: 2017, month: 10, day: 11};
2037
//         comp.selectedDate = comp.parseSelectedDate(date);
2038
//
2039
//         comp.parseOptions();
2040
//
2041
//         fixture.detectChanges();
2042
//         let selection = getElement('.selection');
2043
//         expect(selection).not.toBe(null);
2044
//         expect(selection.nativeElement.value).toContain('2017-10-11');
2045
//         expect(comp.selectionDayTxt).toContain('2017-10-11');
2046
//
2047
//         fixture.detectChanges();
2048
//         let btnpicker = getElement('.btnpicker');
2049
//         btnpicker.nativeElement.click();
2050
//
2051
//         fixture.detectChanges();
2052
//         let selectedday = getElement('.selectedday div span');
2053
//         expect(selectedday).not.toBe(null);
2054
//         expect(selectedday.nativeElement.textContent).toContain('11');
2055
//
2056
//         fixture.detectChanges();
2057
//         let monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2058
//         expect(monthLabel).not.toBe(null);
2059
//         expect(monthLabel.nativeElement.textContent).toBe('Oct');
2060
//
2061
//         fixture.detectChanges();
2062
//         let yearLabel = getElement('.headeryeartxt .headerlabelbtn');
2063
//         expect(yearLabel).not.toBe(null);
2064
//         expect(yearLabel.nativeElement.textContent).toBe('2017');
2065
//     });
2066
//
2067
//     it('defaultMonth - initially selected month', () => {
2068
//         comp.selectedMonth = comp.parseSelectedMonth('2019-08');
2069
//
2070
//         fixture.detectChanges();
2071
//         let btnpicker = getElement('.btnpicker');
2072
//         btnpicker.nativeElement.click();
2073
//
2074
//         fixture.detectChanges();
2075
//         let monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2076
//         expect(monthLabel).not.toBe(null);
2077
//         expect(monthLabel.nativeElement.textContent).toBe('Aug');
2078
//
2079
//         fixture.detectChanges();
2080
//         let yearLabel = getElement('.headeryeartxt .headerlabelbtn');
2081
//         expect(yearLabel).not.toBe(null);
2082
//         expect(yearLabel.nativeElement.textContent).toBe('2019');
2083
//     });
2084
//
2085
//     it('placeholder - placeholder text', () => {
2086
//         comp.placeholder = '';
2087
//
2088
//         fixture.detectChanges();
2089
//         let selection = getElement('.selection');
2090
//         expect(selection).not.toBe(null);
2091
//         expect(selection.properties['placeholder']).toBe('');
2092
//
2093
//         comp.placeholder = 'Select date';
2094
//
2095
//         fixture.detectChanges();
2096
//         selection = getElement('.selection');
2097
//         expect(selection).not.toBe(null);
2098
//         expect(selection.properties['placeholder']).toBe(comp.placeholder);
2099
//
2100
//
2101
//     });
2102
//
2103
//     it('locale - use id locale', () => {
2104
//         comp.selectedMonth = {monthTxt: '', monthNbr: 1, year: 2016};
2105
//         comp.locale = 'id';
2106
//
2107
//         comp.parseOptions();
2108
//
2109
//         fixture.detectChanges();
2110
//         let btnpicker = getElement('.btnpicker');
2111
//         btnpicker.nativeElement.click();
2112
//
2113
//         fixture.detectChanges();
2114
//         let days = getElements('.caltable thead tr th');
2115
//         expect(days.length).toBe(7);
2116
//         expect(days[0].nativeElement.textContent).toBe('Min');
2117
//         expect(days[1].nativeElement.textContent).toBe('Sen');
2118
//         expect(days[2].nativeElement.textContent).toBe('Sel');
2119
//         expect(days[3].nativeElement.textContent).toBe('Rab');
2120
//         expect(days[4].nativeElement.textContent).toBe('Kam');
2121
//         expect(days[5].nativeElement.textContent).toBe('Jum');
2122
//         expect(days[6].nativeElement.textContent).toBe('Sab');
2123
//
2124
//         fixture.detectChanges();
2125
//         let nextmonth = getElement(NEXTMONTH);
2126
//         expect(nextmonth).not.toBe(null);
2127
//
2128
//         fixture.detectChanges();
2129
//         let monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2130
//         expect(monthLabel.nativeElement.textContent).toBe('Jan');
2131
//
2132
//         nextmonth.nativeElement.click();
2133
//         fixture.detectChanges();
2134
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2135
//         expect(monthLabel.nativeElement.textContent).toBe('Feb');
2136
//
2137
//         nextmonth.nativeElement.click();
2138
//         fixture.detectChanges();
2139
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2140
//         expect(monthLabel.nativeElement.textContent).toBe('Mar');
2141
//
2142
//         nextmonth.nativeElement.click();
2143
//         fixture.detectChanges();
2144
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2145
//         expect(monthLabel.nativeElement.textContent).toBe('Apr');
2146
//
2147
//         nextmonth.nativeElement.click();
2148
//         fixture.detectChanges();
2149
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2150
//         expect(monthLabel.nativeElement.textContent).toBe('Mei');
2151
//
2152
//         nextmonth.nativeElement.click();
2153
//         fixture.detectChanges();
2154
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2155
//         expect(monthLabel.nativeElement.textContent).toBe('Jun');
2156
//
2157
//         nextmonth.nativeElement.click();
2158
//         fixture.detectChanges();
2159
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2160
//         expect(monthLabel.nativeElement.textContent).toBe('Jul');
2161
//
2162
//         nextmonth.nativeElement.click();
2163
//         fixture.detectChanges();
2164
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2165
//         expect(monthLabel.nativeElement.textContent).toBe('Ags');
2166
//
2167
//         nextmonth.nativeElement.click();
2168
//         fixture.detectChanges();
2169
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2170
//         expect(monthLabel.nativeElement.textContent).toBe('Sep');
2171
//
2172
//         nextmonth.nativeElement.click();
2173
//         fixture.detectChanges();
2174
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2175
//         expect(monthLabel.nativeElement.textContent).toBe('Okt');
2176
//
2177
//         nextmonth.nativeElement.click();
2178
//         fixture.detectChanges();
2179
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2180
//         expect(monthLabel.nativeElement.textContent).toBe('Nov');
2181
//
2182
//         nextmonth.nativeElement.click();
2183
//         fixture.detectChanges();
2184
//         monthLabel = getElement('.headermonthtxt .headerlabelbtn');
2185
//         expect(monthLabel.nativeElement.textContent).toBe('Des');
2186
//
2187
//         fixture.detectChanges();
2188
//         let headertodaybtn = getElement('.headertodaybtn');
2189
//         expect(headertodaybtn).not.toBe(null);
2190
//         expect(headertodaybtn.nativeElement.textContent).toBe('Hari ini');
2191
//
2192
//         fixture.detectChanges();
2193
//         let firstDayOfWeek = getElement('.caltable thead tr th:first-child');
2194
//         expect(firstDayOfWeek).not.toBe(null);
2195
//         expect(firstDayOfWeek.nativeElement.textContent).toBe('Min');
2196
//
2197
//         fixture.detectChanges();
2198
//         let sunday = getElement('.sunday');
2199
//         expect(sunday).not.toBe(null);
2200
//
2201
//         comp.userDateInput({target:{value:'10-10-2016'}});
2202
//         expect(comp.invalidDate).toBe(false);
2203
//
2204
//         fixture.detectChanges();
2205
//         let invaliddate = getElement('.invaliddate');
2206
//         expect(invaliddate).toBe(null);
2207
//     });
2208
//
2209
// });