UnitTC: Additional unit testcases have been added
[platform/framework/web/web-ui-fw.git] / tests / additional-unit-tests / check / check-tests.js
1 /*
2  * Unit Test: Checkbox
3  *
4  * Hyunjung Kim <hjnim.kim@samsung.com>
5  */
6 /*jslint browser: true*/
7 /*global $, jQuery, test, equal, ok*/
8 $("#checkpage").live("pageinit", function ( event ) {
9
10         module("checkbox");
11
12         var unit_check = function ( widget, type ) {
13                 var checkbox,
14                         label,
15                         checkClass,
16                         classPrefix = "ui-checkbox";
17
18                 widget.checkboxradio( );
19                 checkbox = widget.parent( );
20                 ok( checkbox.hasClass( classPrefix ) , "Create - Checkbox");
21
22                 checkClass = classPrefix + "-on";
23                 if ( !widget.is(":checked") ) {
24                         checkClass = classPrefix + "-off";
25                 }
26                 if ( widget.hasClass("favorite") ) {
27                         ok( checkbox.hasClass("favorite"), "Style - Favorite");
28                 }
29
30                 // Text Trim, Cause jQueryMobile( JQM ) 1.1 forced to add -"\u00a0"in buttonIcon( ButtonMarkup )
31                 // JQM 1.1 buttonMarkup code :
32                 // - if ( buttonIcon ) buttonIcon.appendChild( document.createTextNode("\u00a0") );
33                 label = checkbox.children( ).last( );
34                 equal ( label.text( ).trim( ), type, "label, type string must be same");
35
36                 label.trigger("vclick");
37                 if ( !widget.is(":disabled") ) {
38                         checkClass = classPrefix + "-on";
39                         ok( label.hasClass( checkClass ) , "Click - Normal Checkbox On");
40
41                         checkClass = classPrefix + "-off";
42                         label.trigger("vclick");
43                         ok( label.hasClass( checkClass ) , "Click - Normal Checkbox Off");
44                 } else {
45                         ok( label.hasClass( checkClass ) , "Click - Disable Checkbox");
46                         label.trigger("vclick");
47                         ok( label.hasClass( checkClass ) , "Click - click event doesn't have effect");
48                 }
49
50                 /*markup check */
51                 ok( label.find('.ui-btn-hastxt'), "Markup check for text");
52                 ok( label.find('.ui-btn-text') , "Markup check for text");
53                 equal( label.find('.ui-btn-hastxt span.ui-btn-text').last( ).html( ), type , "Markup check for text value");
54
55
56                 /*API check*/
57                 widget.checkboxradio('disable') ;
58                 equal( widget.is(":disabled") , true, "API check disable") ;
59                 ok( checkbox.hasClass("ui-disabled") , "API disable - Disable Checkbox");
60
61                 widget.checkboxradio('enable') ;
62                 equal( widget.is(":disabled") , false, "API check enable") ;
63                 equal( checkbox.hasClass("ui-disabled") , false, "API enable - Disable Checkbox");
64
65
66         },
67
68                 unit_check_events = function ( widget, type ) {
69                         var createEvent = false,
70                                 changeEvent = false,
71                                 checkbox,
72                                 label;
73
74                         widget.checkboxradio({create: function ( ) {
75                                 createEvent = true ;
76                         }}  ) ;
77                         checkbox = widget.parent( );
78                         label = checkbox.children( ).last( );
79
80                         widget.bind("change", function ( ) {
81                                 changeEvent = true ;
82                         } ) ;
83
84                         $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
85                         ok( createEvent , "Checkbox Create Event");
86
87                         widget.trigger("click");
88                         ok( changeEvent , "Checkbox Change Event");
89                 };
90
91         test("checkbox - Normal", function ( ) {
92                 unit_check( $("#checkbox-1"), "Normal");
93         } );
94
95         test("checkbox - Checked, Disabled", function ( ) {
96                 unit_check( $("#checkbox-2"), "Checked, Disabled");
97         } );
98
99         test("checkbox - Disabled", function ( ) {
100                 unit_check( $("#checkbox-3"), "Disabled");
101         } );
102
103         test("Favorite - Favorite", function ( ) {
104                 unit_check( $("#checkbox-4"), "Favorite");
105         } );
106
107         test("Favorite - Favorite Checked, Disabled", function ( ) {
108                 unit_check( $("#checkbox-5"), "Favorite Checked, Disabled");
109         } );
110
111         test("Favorite - Favorite, Disabled", function ( ) {
112                 unit_check( $("#checkbox-6"), "Favorite, Disabled");
113         } );
114
115         test("checkbox - Normal Dynamic", function ( ) {
116
117                 var markup;
118                 //remove all controls form content
119                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
120
121                 markup = '<input type= "checkbox"name= "checkbox-1"id= "checkbox-1"/><label for= "checkbox-1">Normal Dynamic</label>';
122                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
123                 $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
124
125                 unit_check( $("#checkbox-1"), "Normal Dynamic");
126         } );
127
128
129         test("checkbox - Checked, Disabled Dynamic", function ( ) {
130
131                 var markup;
132                 //remove all controls form content
133                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
134
135                 markup = '<input type= "checkbox"name= "checkbox-2"id= "checkbox-2"checked= "checked"disabled= "true"/><label for= "checkbox-2">Checked, Disabled Dymanic</label>';
136                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
137                 $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
138                 unit_check( $("#checkbox-2"), "Checked, Disabled Dymanic");
139         } );
140
141         test("checkbox - Disabled Dynamic", function ( ) {
142                 var markup;
143                 //remove all controls form content
144                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
145
146                 markup = '<input type= "checkbox"name= "checkbox-3"id= "checkbox-3"disabled= "true"/><label for= "checkbox-3">Disabled Dynamic</label>';
147                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
148                 $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
149                 unit_check( $("#checkbox-3"), "Disabled Dynamic");
150         } );
151
152         test("Favorite - Favorite Dynamic", function ( ) {
153                 var markup;
154                 //remove all controls form content
155                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
156
157                 markup = '<input type= "checkbox"name= "checkbox-4"id= "checkbox-4"class= "favorite"/><label for= "checkbox-4">Favorite Dynamic</label>';
158                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
159                 $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
160                 unit_check( $("#checkbox-4"), "Favorite Dynamic");
161         } );
162
163         test("Favorite - Favorite Checked, Disabled Dynamic", function ( ) {
164                 var markup;
165                 //remove all controls form content
166                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
167
168                 markup = '<input type= "checkbox"name= "checkbox-5"id= "checkbox-5"checked= "checked"disabled= "true"class= "favorite"/><label for= "checkbox-5">Favorite Checked, Disabled Dynamic</label>';
169                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
170                 $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
171                 unit_check( $("#checkbox-5"), "Favorite Checked, Disabled Dynamic");
172         } );
173
174         test("Favorite - Favorite, Disabled Dynamic", function ( ) {
175                 var markup;
176                 //remove all controls form content
177                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
178
179                 markup = '<input type= "checkbox"name= "checkbox-6"id= "checkbox-6"disabled= "disabled"class= "favorite"/><label for= "checkbox-6">Favorite, Disabled Dynamic</label>';
180                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
181                 $('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
182                 unit_check( $("#checkbox-6"), "Favorite, Disabled Dynamic");
183         } );
184
185         test("Favorite - Favorite, Disabled Dynamic Events", function ( ) {
186                 var markup ;
187                 //remove all controls form content
188                 $('#checkpage').find(":jqmData(role=controlgroup)").empty( );
189
190                 markup = '<input type= "checkbox"name= "checkbox-6"id= "checkbox-6"disabled= "disabled"class= "favorite"/><label for= "checkbox-6">Favorite, Disabled Dynamic Events</label>';
191                 $('#checkpage').find(":jqmData(role=controlgroup)").append( markup ) ;
192                 //$('#checkpage').find(":jqmData(role=controlgroup)").trigger('create') ;
193                 unit_check_events( $("#checkbox-6"), "Favorite, Disabled Dynamic Events");
194         } );
195
196 } );