X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=8cd1aee9a91b66d31f65c5ffd75709f9031f483b;hb=77bb2c505f1d2c4437f4b52866408f8bd1a5020f;hp=a5a59c3a1c0f4de05f654a214bb0ab90f844cb8a;hpb=d0fae71464427d9b9e29a5e3fa27729675bef95a;p=jquery.git
diff --git a/test/unit/core.js b/test/unit/core.js
index a5a59c3..8cd1aee 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -955,11 +955,23 @@ test("find(String)", function() {
});
test("clone()", function() {
- expect(4);
+ expect(20);
ok( 'This is a normal link: Yahoo' == $('#en').text(), 'Assert text for #en' );
var clone = $('#yahoo').clone();
ok( 'Try them out:Yahoo' == $('#first').append(clone).text(), 'Check for clone' );
ok( 'This is a normal link: Yahoo' == $('#en').text(), 'Reassert text for #en' );
+
+ var cloneTags = [
+ "
", "
", " | ", "",
+ "", "", "
", "",
+ "", "", "", "",
+ "", "", "", ""
+ ];
+ for (var i = 0; i < cloneTags.length; i++) {
+ var j = $(cloneTags[i]);
+ equals( j[0].tagName, j.clone()[0].tagName, 'Clone a <' + cloneTags[i].substring(1));
+ }
+
// using contents will get comments regular, text, and comment nodes
var cl = $("#nonnodes").contents().clone();
ok( cl.length >= 2, "Check node,textnode,comment clone works (some browsers delete comments on clone)" );
@@ -1385,6 +1397,52 @@ test("$.data", function() {
ok( jQuery.data(div, "test") == "overwritten", "Check for overwritten data" );
});
+test(".data()", function() {
+ expect(16);
+ var div = $("#foo");
+ ok( div.data("test") == undefined, "Check for no data exists" );
+ div.data("test", "success");
+ ok( div.data("test") == "success", "Check for added data" );
+ div.data("test", "overwritten");
+ ok( div.data("test") == "overwritten", "Check for overwritten data" );
+
+ var hits = {test:0}, gets = {test:0};
+
+ div
+ .bind("setData",function(e,key,value){ hits[key] += value; })
+ .bind("setData.foo",function(e,key,value){ hits[key] += value; })
+ .bind("getData",function(e,key){ gets[key] += 1; })
+ .bind("getData.foo",function(e,key){ gets[key] += 3; });
+
+ div.data("test.foo", 2);
+ ok( div.data("test") == "overwritten", "Check for original data" );
+ ok( div.data("test.foo") == 2, "Check for namespaced data" );
+ ok( div.data("test.bar") == "overwritten", "Check for unmatched namespace" );
+ equals( hits.test, 2, "Check triggered setter functions" );
+ equals( gets.test, 5, "Check triggered getter functions" );
+
+ hits.test = 0;
+ gets.test = 0;
+
+ div.data("test", 1);
+ ok( div.data("test") == 1, "Check for original data" );
+ ok( div.data("test.foo") == 2, "Check for namespaced data" );
+ ok( div.data("test.bar") == 1, "Check for unmatched namespace" );
+ equals( hits.test, 1, "Check triggered setter functions" );
+ equals( gets.test, 5, "Check triggered getter functions" );
+
+ hits.test = 0;
+ gets.test = 0;
+
+ div
+ .bind("getData",function(e,key){ return key + "root"; })
+ .bind("getData.foo",function(e,key){ return key + "foo"; });
+
+ ok( div.data("test") == "testroot", "Check for original data" );
+ ok( div.data("test.foo") == "testfoo", "Check for namespaced data" );
+ ok( div.data("test.bar") == "testroot", "Check for unmatched namespace" );
+});
+
test("$.removeData", function() {
expect(1);
var div = $("#foo")[0];
@@ -1393,6 +1451,27 @@ test("$.removeData", function() {
ok( jQuery.data(div, "test") == undefined, "Check removal of data" );
});
+test(".removeData()", function() {
+ expect(6);
+ var div = $("#foo");
+ div.data("test", "testing");
+ div.removeData("test");
+ ok( div.data("test") == undefined, "Check removal of data" );
+
+ div.data("test", "testing");
+ div.data("test.foo", "testing2");
+ div.removeData("test.bar");
+ ok( div.data("test.foo") == "testing2", "Make sure data is intact" );
+ ok( div.data("test") == "testing", "Make sure data is intact" );
+
+ div.removeData("test");
+ ok( div.data("test.foo") == "testing2", "Make sure data is intact" );
+ ok( div.data("test") == undefined, "Make sure data is intact" );
+
+ div.removeData("test.foo");
+ ok( div.data("test.foo") == undefined, "Make sure data is intact" );
+});
+
test("remove()", function() {
expect(6);
$("#ap").children().remove();
@@ -1482,3 +1561,34 @@ test("contents()", function() {
equals( c.length, 1, "Check node,textnode,comment contents is just one" );
equals( c[0].nodeValue, "hi", "Check node,textnode,comment contents is just the one from span" );
});
+
+test("$.makeArray", function(){
+ expect(13);
+
+ equals( $.makeArray(document.getElementsByName("PWD")).slice(0,1)[0].name, "PWD", "Pass makeArray a nodelist" );
+
+ equals( (function(){ return $.makeArray(arguments); })(1,2).join(""), "12", "Pass makeArray an arguments array" );
+
+ equals( $.makeArray([1,2,3]).join(""), "123", "Pass makeArray a real array" );
+
+ equals( $.makeArray().length, 0, "Pass nothing to makeArray and expect an empty array" );
+
+ equals( $.makeArray( 0 )[0], 0 , "Pass makeArray a number" );
+
+ equals( $.makeArray( "foo" )[0], "foo", "Pass makeArray a string" );
+
+ equals( $.makeArray( true )[0].constructor, Boolean, "Pass makeArray a boolean" );
+
+ equals( $.makeArray( document.createElement("div") )[0].nodeName, "DIV", "Pass makeArray a single node" );
+
+ equals( $.makeArray( {length:2, 0:"a", 1:"b"} ).join(""), "ab", "Pass makeArray an array like map (with length)" );
+
+ equals( $.makeArray( document.documentElement.childNodes ).slice(0,1)[0].nodeName, "HEAD", "Pass makeArray a childNodes array" );
+
+ //function, is tricky as it has length
+ equals( $.makeArray( function(){ return 1;} )[0](), 1, "Pass makeArray a function" );
+ //window, also has length
+ equals( $.makeArray(window)[0], window, "Pass makeArray the window" );
+
+ equals( $.makeArray(/a/)[0].constructor, RegExp, "Pass makeArray a regex" );
+});
\ No newline at end of file