aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOleg <markelog@gmail.com>2013-03-07 18:15:12 +0400
committerDave Methvin <dave.methvin@gmail.com>2013-04-03 22:27:16 -0400
commit6da5eb10337c29c61ebc09fb8e3975509f58f419 (patch)
tree1f7ccad951a89d89f79bbf95af4c32be9bc4649f
parent5aaa276e9e0041d099c954fc2744f0797e3893b0 (diff)
downloadjquery-6da5eb10337c29c61ebc09fb8e3975509f58f419.tar.gz
jquery-6da5eb10337c29c61ebc09fb8e3975509f58f419.zip
Follow-up for 22a4e5bd0a7c0a92b54b9965984b582fd42099f2, fix .checkOn, add support tests. Cloes gh-1199.
-rw-r--r--src/support.js2
-rw-r--r--test/unit/support.js137
2 files changed, 138 insertions, 1 deletions
diff --git a/src/support.js b/src/support.js
index 67ba005dc..52f832f42 100644
--- a/src/support.js
+++ b/src/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
diff --git a/test/unit/support.js b/test/unit/support.js
index 4754a68c9..f557a954b 100644
--- a/test/unit/support.js
+++ b/test/unit/support.js
@@ -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" &&