Skip to content
Permalink
Browse files

Follow-up for 22a4e5b, fix .checkOn, add support tests. Cloes gh-1199.

  • Loading branch information...
markelog authored and dmethvin committed Mar 7, 2013
1 parent 5aaa276 commit 6da5eb10337c29c61ebc09fb8e3975509f58f419
Showing with 138 additions and 1 deletion.
  1. +1 −1 src/support.js
  2. +137 −0 test/unit/support.js
@@ -13,7 +13,7 @@ jQuery.support = (function( support ) {
input.type = "checkbox";

// Check the default checkbox/radio value ("" on old WebKit; "on" elsewhere)
support.checkOn = input.value === "";
support.checkOn = input.value !== "";

// Must access the parent to make an option select properly
// Support: IE9, IE10
@@ -34,6 +34,143 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
strictEqual( shrinkWrapBlocks, jQuery.support.shrinkWrapBlocks, "jQuery.support.shrinkWrapBlocks properties are the same" );
});

(function() {
var expected,
userAgent = window.navigator.userAgent;

if ( /chrome/i.test( userAgent ) ) {
expected = {
"checkOn":true,
"optSelected":true,
"optDisabled":true,
"focusinBubbles":false,
"reliableMarginRight":true,
"noCloneChecked":true,
"radioValue":true,
"checkClone":true,
"boxModel":true,
"ajax":true,
"cors":true,
"clearCloneStyle": true,
"boxSizing": true,
"boxSizingReliable": true,
"pixelPosition": false
};
} else if ( /opera.*version\/12\.1/i.test( userAgent ) ) {
expected = {
"checkOn":true,
"optSelected":true,
"optDisabled":true,
"focusinBubbles":false,
"reliableMarginRight":true,
"noCloneChecked":true,
"radioValue":false,
"checkClone":true,
"boxModel":true,
"ajax":true,
"cors":true,
"clearCloneStyle": true,
"boxSizing": true,
"boxSizingReliable": true,
"pixelPosition": true
};
} else if ( /msie 10\.0/i.test( userAgent ) ) {
expected = {
"checkOn":true,
"optSelected":false,
"optDisabled":true,
"focusinBubbles":true,
"reliableMarginRight":true,
"noCloneChecked":false,
"radioValue":false,
"checkClone":true,
"boxModel":true,
"ajax":true,
"cors":true,
"clearCloneStyle": false,
"boxSizing": true,
"boxSizingReliable": false,
"pixelPosition": true
};
} else if ( /msie 9\.0/i.test( userAgent ) ) {
expected = {
"checkOn":true,
"optSelected":false,
"optDisabled":true,
"focusinBubbles":true,
"reliableMarginRight":true,
"noCloneChecked":false,
"radioValue":false,
"checkClone":true,
"boxModel":true,
"ajax":true,
"cors":false,
"clearCloneStyle": false,
"boxSizing": true,
"boxSizingReliable": false,
"pixelPosition": true
};
} else if ( /5\.1\.\d+ safari/i.test( userAgent ) ) {
expected = {
"checkOn":false,
"optSelected":true,
"optDisabled":true,
"focusinBubbles":false,
"reliableMarginRight":true,
"noCloneChecked":true,
"radioValue":true,
"checkClone":false,
"boxModel":true,
"ajax":true,
"cors":true,
"clearCloneStyle": true,
"boxSizing": true,
"boxSizingReliable": true,
"pixelPosition": false
};
} else if ( /firefox/i.test( userAgent ) ) {
expected = {
"checkOn":true,
"optSelected":true,
"optDisabled":true,
"focusinBubbles":false,
"reliableMarginRight":true,
"noCloneChecked":true,
"radioValue":true,
"checkClone":true,
"boxModel":true,
"ajax":true,
"cors":true,
"clearCloneStyle": true,
"boxSizing": true,
"boxSizingReliable": false,
"pixelPosition": true
};
}

if ( expected ) {
test("Verify that the support tests resolve as expected per browser", function() {
var i, prop,
j = 0;

for ( prop in jQuery.support ) {
j++;
}

expect( j );

for ( i in expected ) {
if ( jQuery.ajax || i !== "ajax" && i !== "cors" ) {
equal( jQuery.support[i], expected[i], "jQuery.support['" + i + "']: " + jQuery.support[i] + ", expected['" + i + "']: " + expected[i]);
} else {
ok( true, "no ajax; skipping jQuery.support['" + i + "']" );
}
}
});
}

})();

// Support: Safari 5.1
// Shameless browser-sniff, but Safari 5.1 mishandles CSP
if ( !( typeof navigator !== "undefined" &&

0 comments on commit 6da5eb1

Please sign in to comment.
You can’t perform that action at this time.