Fixes #8509. Makes URL regexp less overzealous and ensures it recognizes URL schemes...
[jquery.git] / test / unit / attributes.js
index a1ab581..8cf47be 100644 (file)
@@ -1,4 +1,4 @@
-module("attributes");
+module("attributes", { teardown: moduleTeardown });
 
 var bareObj = function(value) { return value; };
 var functionReturningObj = function(value) { return (function() { return value; }); };
@@ -546,6 +546,25 @@ test("val(Function) with incoming value", function() {
        equals( jQuery("#select1").val(), "4", "Should be possible to set the val() to a newly created option" );
 });
 
+// testing if a form.reset() breaks a subsequent call to a select element's .val() (in IE only)
+test("val(select) after form.reset() (Bug #2551)", function() {
+       expect(3);
+
+       jQuery('<form id="kk" name="kk"><select id="kkk"><option value="cf">cf</option><option  value="gf">gf</option></select></form>').appendTo("#main");
+
+       jQuery("#kkk").val( "gf" );
+
+       document.kk.reset();
+
+       equal( jQuery("#kkk")[0].value, "cf", "Check value of select after form reset." );
+       equal( jQuery("#kkk").val(), "cf", "Check value of select after form reset." );
+
+       // re-verify the multi-select is not broken (after form.reset) by our fix for single-select
+       same( jQuery('#select3').val(), ['1', '2'], 'Call val() on a multiple="multiple" select' );
+
+       jQuery("#kk").remove();
+}); 
+
 var testAddClass = function(valueObj) {
        expect(5);
        var div = jQuery("div");
@@ -703,12 +722,12 @@ var testToggleClass = function(valueObj) {
 
        // toggleClass storage
        e.toggleClass(true);
-       ok( e.get(0).className === "", "Assert class is empty (data was empty)" );
+       ok( e[0].className === "", "Assert class is empty (data was empty)" );
        e.addClass("testD testE");
        ok( e.is(".testD.testE"), "Assert class present" );
        e.toggleClass();
        ok( !e.is(".testD.testE"), "Assert class not present" );
-       ok( e.data('__className__') === 'testD testE', "Assert data was stored" );
+       ok( jQuery._data(e[0], '__className__') === 'testD testE', "Assert data was stored" );
        e.toggleClass();
        ok( e.is(".testD.testE"), "Assert class present (restored from data)" );
        e.toggleClass(false);
@@ -720,11 +739,9 @@ var testToggleClass = function(valueObj) {
        e.toggleClass();
        ok( e.is(".testD.testE"), "Assert class present (restored from data)" );
 
-
-
        // Cleanup
        e.removeClass("testD");
-       e.removeData('__className__');
+       jQuery.removeData(e[0], '__className__', true);
 };
 
 test("toggleClass(String|boolean|undefined[, boolean])", function() {
@@ -785,7 +802,7 @@ test("toggleClass(Fucntion[, boolean]) with incoming value", function() {
 
        // Cleanup
        e.removeClass("test");
-       e.removeData('__className__');
+       jQuery.removeData(e[0], '__className__', true);
 });
 
 test("addClass, removeClass, hasClass", function() {