X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=test%2Funit%2Fcore.js;h=6da62be9ad8385aecd43ac63ac0bfe898d1e6aa2;hb=a720bb31ab32c5629607a471e4674fd11e05b97c;hp=7942548692b0bce7ce9f94426a54aa01238b5288;hpb=96152559e0e2fa1afc70f8994e664f5805aebad5;p=jquery.git
diff --git a/test/unit/core.js b/test/unit/core.js
index 7942548..6da62be 100644
--- a/test/unit/core.js
+++ b/test/unit/core.js
@@ -53,7 +53,7 @@ test("jQuery()", function() {
});
test("selector state", function() {
- expect(28);
+ expect(30);
var test;
@@ -72,6 +72,10 @@ test("selector state", function() {
test = jQuery("#main");
equals( test.selector, "#main", "#main Selector" );
equals( test.context, document, "#main Context" );
+
+ test = jQuery("#notfoundnono");
+ equals( test.selector, "#notfoundnono", "#notfoundnono Selector" );
+ equals( test.context, document, "#notfoundnono Context" );
test = jQuery("#main", document);
equals( test.selector, "#main", "#main Selector" );
@@ -401,8 +405,8 @@ test("attr(String)", function() {
equals( jQuery('#text1').attr('maxLength'), '30', 'Check for maxLength attribute' );
equals( jQuery('#area1').attr('maxLength'), '30', 'Check for maxLength attribute' );
equals( jQuery('#select2').attr('selectedIndex'), 3, 'Check for selectedIndex attribute' );
- equals( jQuery('#foo').attr('nodeName'), 'DIV', 'Check for nodeName attribute' );
- equals( jQuery('#foo').attr('tagName'), 'DIV', 'Check for tagName attribute' );
+ equals( jQuery('#foo').attr('nodeName').toUpperCase(), 'DIV', 'Check for nodeName attribute' );
+ equals( jQuery('#foo').attr('tagName').toUpperCase(), 'DIV', 'Check for tagName attribute' );
jQuery('').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path
equals( jQuery('#tAnchor5').attr('href'), "#5", 'Check for non-absolute href (an anchor)' );
@@ -778,8 +782,8 @@ test("wrap(String|Element)", function() {
// Try wrapping a disconnected node
j = jQuery("").wrap("
");
- equals( j[0].nodeName, "LABEL", "Element is a label" );
- equals( j[0].parentNode.nodeName, "LI", "Element has been wrapped" );
+ equals( j[0].nodeName.toUpperCase(), "LABEL", "Element is a label" );
+ equals( j[0].parentNode.nodeName.toUpperCase(), "LI", "Element has been wrapped" );
});
test("wrapAll(String|Element)", function() {
@@ -1152,7 +1156,7 @@ test("find(String)", function() {
});
test("clone()", function() {
- expect(20);
+ expect(28);
equals( 'This is a normal link: Yahoo', jQuery('#en').text(), 'Assert text for #en' );
var clone = jQuery('#yahoo').clone();
equals( 'Try them out:Yahoo', jQuery('#first').append(clone).text(), 'Check for clone' );
@@ -1172,6 +1176,31 @@ test("clone()", function() {
// using contents will get comments regular, text, and comment nodes
var cl = jQuery("#nonnodes").contents().clone();
ok( cl.length >= 2, "Check node,textnode,comment clone works (some browsers delete comments on clone)" );
+
+ var div = jQuery("
test
").click(function(){
+ ok( true, "Bound event still exists." );
+ });
+
+ div = div.clone(true).clone(true);
+ equals( div.length, 1, "One element cloned" );
+ equals( div[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" );
+ div.trigger("click");
+
+ div = jQuery("").append([ document.createElement("table"), document.createElement("table") ]);
+ div.find("table").click(function(){
+ ok( true, "Bound event still exists." );
+ });
+
+ div = div.clone(true);
+ equals( div.length, 1, "One element cloned" );
+ equals( div[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" );
+ div.find("table:last").trigger("click");
+
+ div = jQuery("").html('');
+
+ div = div.clone(true);
+ equals( div.length, 1, "One element cloned" );
+ equals( div[0].nodeName.toUpperCase(), "DIV", "DIV element cloned" );
});
if (!isLocal) {
@@ -1377,7 +1406,7 @@ test("html(String)", function() {
// this is needed, or the expando added by jQuery unique will yield a different html
j.find('b').removeData();
- equals( j.html().toLowerCase(), "bold", "Check node,textnode,comment with html()" );
+ equals( j.html().replace(/ xmlns="[^"]+"/g, "").toLowerCase(), "bold", "Check node,textnode,comment with html()" );
jQuery("#main").html("");
jQuery("#main select").html("");
@@ -1553,7 +1582,7 @@ test("addClass(String)", function() {
});
test("removeClass(String) - simple", function() {
- expect(4);
+ expect(5);
var $divs = jQuery('div');
@@ -1562,13 +1591,17 @@ test("removeClass(String) - simple", function() {
ok( !$divs.is('.test'), "Remove Class" );
reset();
-
+
$divs.addClass("test").addClass("foo").addClass("bar");
$divs.removeClass("test").removeClass("bar").removeClass("foo");
ok( !$divs.is('.test,.bar,.foo'), "Remove multiple classes" );
reset();
+
+ // Make sure that a null value doesn't cause problems
+ $divs.eq(0).addClass("test").removeClass(null);
+ ok( $divs.eq(0).is('.test'), "Null value passed to removeClass" );
$divs.eq(0).addClass("test").removeClass("");
ok( $divs.eq(0).is('.test'), "Empty string passed to removeClass" );
@@ -1791,7 +1824,7 @@ test("contents()", function() {
test("jQuery.makeArray", function(){
expect(15);
- equals( jQuery.makeArray(jQuery('html>*'))[0].nodeName, "HEAD", "Pass makeArray a jQuery object" );
+ equals( jQuery.makeArray(jQuery('html>*'))[0].nodeName.toUpperCase(), "HEAD", "Pass makeArray a jQuery object" );
equals( jQuery.makeArray(document.getElementsByName("PWD")).slice(0,1)[0].name, "PWD", "Pass makeArray a nodelist" );
@@ -1807,7 +1840,7 @@ test("jQuery.makeArray", function(){
equals( jQuery.makeArray( true )[0].constructor, Boolean, "Pass makeArray a boolean" );
- equals( jQuery.makeArray( document.createElement("div") )[0].nodeName, "DIV", "Pass makeArray a single node" );
+ equals( jQuery.makeArray( document.createElement("div") )[0].nodeName.toUpperCase(), "DIV", "Pass makeArray a single node" );
equals( jQuery.makeArray( {length:2, 0:"a", 1:"b"} ).join(""), "ab", "Pass makeArray an array like map (with length)" );