fix for #3688, setting type attribute on button causes IE to throw error
[jquery.git] / test / unit / core.js
index 69a0676..289a8ba 100644 (file)
@@ -463,7 +463,7 @@ test("attr(Hash)", function() {
 });
 
 test("attr(String, Object)", function() {
-       expect(19);
+       expect(21);
        var div = jQuery("div").attr("foo", "bar"),
                fail = false;
        for ( var i = 0; i < div.size(); i++ ) {
@@ -537,6 +537,16 @@ test("attr(String, Object)", function() {
        }
        ok( thrown, "Exception thrown when trying to change type property" );
        equals( "checkbox", check.attr('type'), "Verify that you can change the type of an input element that isn't in the DOM" );
+       
+       var button = jQuery("#button");
+       var thrown = false;
+       try {
+               button.attr('type','submit');
+       } catch(e) {
+               thrown = true;
+       }
+       ok( thrown, "Exception thrown when trying to change type property" );
+       equals( "button", button.attr('type'), "Verify that you can't change the type of a button element" );
 });
 
 if ( !isLocal ) {
@@ -1688,13 +1698,6 @@ test("jQuery.each(Object,Function)", function() {
         equals( total, 3, "Looping over an object, with break" );
 });
 
-test("jQuery.prop", function() {
-       expect(2);
-       var handle = function() { return this.id };
-       equals( jQuery.prop(jQuery("#ap")[0], handle), "ap", "Check with Function argument" );
-       equals( jQuery.prop(jQuery("#ap")[0], "value"), "value", "Check with value argument" );
-});
-
 test("jQuery.className", function() {
        expect(6);
        var x = jQuery("<p>Hi</p>")[0];
@@ -1713,7 +1716,7 @@ test("jQuery.className", function() {
 });
 
 test("remove()", function() {
-       expect(6);
+       expect(7);
        jQuery("#ap").children().remove();
        ok( jQuery("#ap").text().length > 10, "Check text is not removed" );
        equals( jQuery("#ap").children().length, 0, "Check remove" );
@@ -1723,6 +1726,9 @@ test("remove()", function() {
        ok( jQuery("#ap").text().length > 10, "Check text is not removed" );
        equals( jQuery("#ap").children().length, 1, "Check filtered remove" );
 
+       jQuery("#ap").children().remove("a, code");
+       equals( jQuery("#ap").children().length, 0, "Check multi-filtered remove" );
+
        // using contents will get comments regular, text, and comment nodes
        equals( jQuery("#nonnodes").contents().length, 3, "Check node,textnode,comment remove works" );
        jQuery("#nonnodes").contents().remove();