jquery core: Closes #5189. Added a generic function to handle getting/setting key...
[jquery.git] / test / unit / attributes.js
index b834926..9b5411f 100644 (file)
@@ -2,7 +2,10 @@ module("attributes");
 
 test("attr(String)", function() {
        expect(27);
+       
+       // This one sometimes fails randomally ?!
        equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' );
+       
        equals( jQuery('#text1').attr('value', "Test2").attr('defaultValue'), "Test", 'Check for defaultValue attribute' );
        equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
        equals( jQuery('#radio1').attr('type'), "radio", 'Check for type attribute' );
@@ -68,12 +71,15 @@ test("attr(String, Function)", function() {
 });
 
 test("attr(Hash)", function() {
-       expect(1);
+       expect(3);
        var pass = true;
        jQuery("div").attr({foo: 'baz', zoo: 'ping'}).each(function(){
                if ( this.getAttribute('foo') != "baz" && this.getAttribute('zoo') != "ping" ) pass = false;
        });
        ok( pass, "Set Multiple Attributes" );
+       equals( jQuery('#text1').attr({'value': function() { return this.id; }})[0].value, "text1", "Set attribute to computed value #1" );
+       equals( jQuery('#text1').attr({'title': function(i) { return i; }}).attr('title'), "0", "Set attribute to computed value #2");
+
 });
 
 test("attr(String, Object)", function() {
@@ -269,6 +275,7 @@ test("removeClass(String) - simple", function() {
        ok( !$divs.is('.test'), "Remove Class" );
 
        reset();
+       $divs = jQuery('div');
 
        $divs.addClass("test").addClass("foo").addClass("bar");
        $divs.removeClass("test").removeClass("bar").removeClass("foo");
@@ -276,6 +283,7 @@ test("removeClass(String) - simple", function() {
        ok( !$divs.is('.test,.bar,.foo'), "Remove multiple classes" );
 
        reset();
+       $divs = jQuery('div');
 
        // Make sure that a null value doesn't cause problems
        $divs.eq(0).addClass("test").removeClass(null);
@@ -334,8 +342,8 @@ test("toggleClass(String|boolean|undefined[, boolean])", function() {
        e.toggleClass(false);
        e.toggleClass();
        ok( e.is(".testD.testE"), "Assert class present (restored from data)" );
-       
-       
+
+
 
        // Cleanup
        e.removeClass("testD");
@@ -347,19 +355,24 @@ test("removeAttr(String", function() {
        equals( jQuery('#mark').removeAttr("class")[0].className, "", "remove class" );
 });
 
-test("jQuery.className", function() {
+test("addClass, removeClass, hasClass", function() {
        expect(6);
-       var x = jQuery("<p>Hi</p>")[0];
-       var c = jQuery.className;
-       c.add(x, "hi");
+
+       var jq = jQuery("<p>Hi</p>"), x = jq[0];
+
+       jq.addClass("hi");
        equals( x.className, "hi", "Check single added class" );
-       c.add(x, "foo bar");
+
+       jq.addClass("foo bar");
        equals( x.className, "hi foo bar", "Check more added classes" );
-       c.remove(x);
+
+       jq.removeClass();
        equals( x.className, "", "Remove all classes" );
-       c.add(x, "hi foo bar");
-       c.remove(x, "foo");
+
+       jq.addClass("hi foo bar");
+       jq.removeClass("foo");
        equals( x.className, "hi bar", "Check removal of one class" );
-       ok( c.has(x, "hi"), "Check has1" );
-       ok( c.has(x, "bar"), "Check has2" );
+
+       ok( jq.hasClass("hi"), "Check has1" );
+       ok( jq.hasClass("bar"), "Check has2" );
 });