aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/datepicker/datepicker_methods.js
blob: c8f1b75b29417ad279d555b4008841cdfdca3dc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * datepicker_methods.js
 */
(function($) {

module("datepicker: methods");

test('destroy', function() {
	var inp = init('#inp');
	ok(inp.is('.hasDatepicker'), 'Default - marker class set');
	ok($.data(inp[0], PROP_NAME), 'Default - instance present');
	ok(inp.next().is('#alt'), 'Default - button absent');
	inp.datepicker('destroy');
	inp = $('#inp');
	ok(!inp.is('.hasDatepicker'), 'Default - marker class cleared');
	ok(!$.data(inp[0], PROP_NAME), 'Default - instance absent');
	ok(inp.next().is('#alt'), 'Default - button absent');
	// With button
	inp= init('#inp', {showOn: 'both'});
	ok(inp.is('.hasDatepicker'), 'Button - marker class set');
	ok($.data(inp[0], PROP_NAME), 'Button - instance present');
	ok(inp.next().text() == '...', 'Button - button added');
	inp.datepicker('destroy');
	inp = $('#inp');
	ok(!inp.is('.hasDatepicker'), 'Button - marker class cleared');
	ok(!$.data(inp[0], PROP_NAME), 'Button - instance absent');
	ok(inp.next().is('#alt'), 'Button - button removed');
	// With append text
	inp = init('#inp', {appendText: 'Testing'});
	ok(inp.is('.hasDatepicker'), 'Append - marker class set');
	ok($.data(inp[0], PROP_NAME), 'Append - instance present');
	ok(inp.next().text() == 'Testing', 'Append - append text added');
	inp.datepicker('destroy');
	inp = $('#inp');
	ok(!inp.is('.hasDatepicker'), 'Append - marker class cleared');
	ok(!$.data(inp[0], PROP_NAME), 'Append - instance absent');
	ok(inp.next().is('#alt'), 'Append - append text removed');
	// With both
	inp= init('#inp', {showOn: 'both', buttonImageOnly: true,
		buttonImage: 'img/calendar.gif', appendText: 'Testing'});
	ok(inp.is('.hasDatepicker'), 'Both - marker class set');
	ok($.data(inp[0], PROP_NAME), 'Both - instance present');
	ok(inp.next()[0].nodeName.toLowerCase() == 'img', 'Both - button added');
	ok(inp.next().next().text() == 'Testing', 'Both - append text added');
	inp.datepicker('destroy');
	inp = $('#inp');
	ok(!inp.is('.hasDatepicker'), 'Both - marker class cleared');
	ok(!$.data(inp[0], PROP_NAME), 'Both - instance absent');
	ok(inp.next().is('#alt'), 'Both - button and append text absent');
	// Inline
	var inl = init('#inl');
	ok(inl.is('.hasDatepicker'), 'Inline - marker class set');
	ok(inl.html() != '', 'Inline - datepicker present');
	ok($.data(inl[0], PROP_NAME), 'Inline - instance present');
	ok(inl.next().length == 0 || inl.next().is('p'), 'Inline - button absent');
	inl.datepicker('destroy');
	inl = $('#inl');
	ok(!inl.is('.hasDatepicker'), 'Inline - marker class cleared');
	ok(inl.html() == '', 'Inline - datepicker absent');
	ok(!$.data(inl[0], PROP_NAME), 'Inline - instance absent');
	ok(inl.next().length == 0 || inl.next().is('p'), 'Inline - button absent');
});

test('enableDisable', function() {
	var inp = init('#inp');
	ok(!inp.datepicker('isDisabled'), 'Enable/disable - initially marked as enabled');
	ok(!inp[0].disabled, 'Enable/disable - field initially enabled');
	inp.datepicker('disable');
	ok(inp.datepicker('isDisabled'), 'Enable/disable - now marked as disabled');
	ok(inp[0].disabled, 'Enable/disable - field now disabled');
	inp.datepicker('enable');
	ok(!inp.datepicker('isDisabled'), 'Enable/disable - now marked as enabled');
	ok(!inp[0].disabled, 'Enable/disable - field now enabled');
	inp.datepicker('destroy');
	// With a button
	inp = init('#inp', {showOn: 'button'});
	ok(!inp.datepicker('isDisabled'), 'Enable/disable button - initially marked as enabled');
	ok(!inp[0].disabled, 'Enable/disable button - field initially enabled');
	ok(!inp.next('button')[0].disabled, 'Enable/disable button - button initially enabled');
	inp.datepicker('disable');
	ok(inp.datepicker('isDisabled'), 'Enable/disable button - now marked as disabled');
	ok(inp[0].disabled, 'Enable/disable button - field now disabled');
	ok(inp.next('button')[0].disabled, 'Enable/disable button - button now disabled');
	inp.datepicker('enable');
	ok(!inp.datepicker('isDisabled'), 'Enable/disable button - now marked as enabled');
	ok(!inp[0].disabled, 'Enable/disable button - field now enabled');
	ok(!inp.next('button')[0].disabled, 'Enable/disable button - button now enabled');
	inp.datepicker('destroy');
	// With an image button
	inp = init('#inp', {showOn: 'button', buttonImageOnly: true,
		buttonImage: 'img/calendar.gif'});
	ok(!inp.datepicker('isDisabled'), 'Enable/disable image - initially marked as enabled');
	ok(!inp[0].disabled, 'Enable/disable image - field initially enabled');
	ok(inp.next('img').css('opacity') == 1, 'Enable/disable image - image initially enabled');
	inp.datepicker('disable');
	ok(inp.datepicker('isDisabled'), 'Enable/disable image - now marked as disabled');
	ok(inp[0].disabled, 'Enable/disable image - field now disabled');
	ok(inp.next('img').css('opacity') != 1, 'Enable/disable image - image now disabled');
	inp.datepicker('enable');
	ok(!inp.datepicker('isDisabled'), 'Enable/disable image - now marked as enabled');
	ok(!inp[0].disabled, 'Enable/disable image - field now enabled');
	ok(inp.next('img').css('opacity') == 1, 'Enable/disable image - image now enabled');
	inp.datepicker('destroy');
	// Inline
	var inl = init('#inl', {changeYear: true});
	var dp = $('.ui-datepicker-inline', inl);
	ok(!inl.datepicker('isDisabled'), 'Enable/disable inline - initially marked as enabled');
	ok(!dp.children().is('.ui-state-disabled'), 'Enable/disable inline - not visually disabled initially');
	ok(!dp.find('select').prop('disabled'), 'Enable/disable inline - form element enabled initially');
	inl.datepicker('disable');
	ok(inl.datepicker('isDisabled'), 'Enable/disable inline - now marked as disabled');
	ok(dp.children().is('.ui-state-disabled'), 'Enable/disable inline - visually disabled');
	ok(dp.find('select').prop('disabled'), 'Enable/disable inline - form element disabled');
	inl.datepicker('enable');
	ok(!inl.datepicker('isDisabled'), 'Enable/disable inline - now marked as enabled');
	ok(!dp.children().is('.ui-state-disabled'), 'Enable/disable inline - not visiually disabled');
	ok(!dp.find('select').prop('disabled'), 'Enable/disable inline - form element enabled');
	inl.datepicker('destroy');
});

})(jQuery);