@@ -174,40 +174,53 @@ test(".data()", function() {
174174 deepEqual ( dataObj , { "foo" : "baz" } , "Retrieve data object from a wrapped JS object (#7524)" ) ;
175175} ) ;
176176
177- test ( ".data(String) and .data(String, Object)" , function ( ) {
178- expect ( 12 ) ;
177+ var testDataTypes = function ( $obj ) {
178+ jQuery . each ( {
179+ "null" : null ,
180+ "true" : true ,
181+ "false" : false ,
182+ "zero" : 0 ,
183+ "one" : 1 ,
184+ "empty string" : "" ,
185+ "empty array" : [ ] ,
186+ "array" : [ 1 ] ,
187+ "empty object" : { } ,
188+ "object" : { foo : "bar" } ,
189+ "date" : new Date ( ) ,
190+ "regex" : / t e s t / ,
191+ "function" : function ( ) { }
192+ } , function ( type , value ) {
193+ strictEqual ( $obj . data ( "test" , value ) . data ( "test" ) , value , "Data set to " + type ) ;
194+ } ) ;
195+ } ;
196+
197+ test ( "jQuery(Element).data(String, Object).data(String)" , function ( ) {
198+ expect ( 18 ) ;
179199 var parent = jQuery ( "<div><div></div></div>" ) ,
180200 div = parent . children ( ) ;
181201
182- ok ( div . data ( "test" ) === undefined , "Check for no data exists" ) ;
183-
184- div . data ( "test" , "success" ) ;
185- equal ( div . data ( "test" ) , "success" , "Check for added data" ) ;
186-
187- div . data ( "test" , "overwritten" ) ;
188- equal ( div . data ( "test" ) , "overwritten" , "Check for overwritten data" ) ;
189-
190- equal ( div . data ( "test" , undefined ) . data ( "test" ) , "overwritten" , "Check that .data('key',undefined) does nothing but is chainable (#5571)" ) ;
202+ strictEqual ( div . data ( "test" ) , undefined , "No data exists initially" ) ;
203+ strictEqual ( div . data ( "test" , "success" ) . data ( "test" ) , "success" , "Data added" ) ;
204+ strictEqual ( div . data ( "test" , "overwritten" ) . data ( "test" ) , "overwritten" , "Data overwritten" ) ;
205+ strictEqual ( div . data ( "test" , undefined ) . data ( "test" ) , "overwritten" , ".data(key,undefined) does nothing but is chainable (#5571)" ) ;
206+ strictEqual ( div . data ( "notexist" ) , undefined , "No data exists for unset key" ) ;
207+ testDataTypes ( div ) ;
191208
192- div . data ( "test" , null ) ;
193- ok ( div . data ( "test" ) === null , "Check for null data" ) ;
209+ parent . remove ( ) ;
210+ } ) ;
194211
195- ok ( div . data ( "notexist" ) === undefined , "Check for no data exists" ) ;
212+ test ( "jQuery(plain Object).data(String, Object).data(String)" , function ( ) {
213+ expect ( 16 ) ;
196214
197215 // #3748
198- var $elem = jQuery ( { exists :true } ) ;
199- equal ( $elem . data ( "nothing" ) , undefined , "Non-existent data returns undefined" ) ;
200- equal ( $elem . data ( "null" , null ) . data ( "null" ) , null , "null's are preserved" ) ;
201- equal ( $elem . data ( "emptyString" , "" ) . data ( "emptyString" ) , "" , "Empty strings are preserved" ) ;
202- equal ( $elem . data ( "false" , false ) . data ( "false" ) , false , "false's are preserved" ) ;
203- equal ( $elem . data ( "exists" ) , undefined , "Existing data is not returned" ) ;
216+ var $obj = jQuery ( { exists : true } ) ;
217+ strictEqual ( $obj . data ( "nothing" ) , undefined , "Non-existent data returns undefined" ) ;
218+ strictEqual ( $obj . data ( "exists" ) , undefined , "Object properties are not returned as data" ) ;
219+ testDataTypes ( $obj ) ;
204220
205221 // Clean up
206- $elem . removeData ( ) ;
207- deepEqual ( $elem [ 0 ] , { exists :true } , "removeData does not clear the object" ) ;
208-
209- // manually clean up detached elements
210- parent . remove ( ) ;
222+ $obj . removeData ( ) ;
223+ deepEqual ( $obj [ 0 ] , { exists : true } , "removeData does not clear the object" ) ;
211224} ) ;
212225
213226test ( "data-* attributes" , function ( ) {
0 commit comments