aboutsummaryrefslogtreecommitdiffstats
path: root/test/unit/support.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/support.js')
-rw-r--r--test/unit/support.js219
1 files changed, 104 insertions, 115 deletions
diff --git a/test/unit/support.js b/test/unit/support.js
index 3edc92b48..fda26870b 100644
--- a/test/unit/support.js
+++ b/test/unit/support.js
@@ -1,5 +1,22 @@
module("support", { teardown: moduleTeardown });
+var computedSupport = getComputedSupport( jQuery.support );
+
+function getComputedSupport( support ) {
+ var prop,
+ result = {};
+
+ for ( prop in support ) {
+ if ( typeof support[ prop ] === "function" ) {
+ result[ prop ] = support[ prop ]();
+ } else {
+ result[ prop ] = support[ prop ];
+ }
+ }
+
+ return result;
+}
+
if ( jQuery.css ) {
testIframeWithCallback( "body background is not lost if set prior to loading jQuery (#9239)", "support/bodyBackground.html", function( color, support ) {
expect( 2 );
@@ -9,137 +26,109 @@ if ( jQuery.css ) {
};
ok( okValue[ color ], "color was not reset (" + color + ")" );
- stop();
- // Run doc ready tests as well
- jQuery(function() {
- deepEqual( jQuery.extend( {}, support ), jQuery.support, "Same support properties" );
- start();
- });
+ deepEqual( jQuery.extend( {}, support ), computedSupport, "Same support properties" );
});
}
-testIframeWithCallback( "A non-1 zoom on body doesn't cause WebKit to fail box-sizing test", "support/boxSizing.html", function( boxSizing ) {
- expect( 1 );
- equal( boxSizing, jQuery.support.boxSizing, "box-sizing properly detected on page with non-1 body zoom" );
-});
-
-testIframeWithCallback( "A background on the testElement does not cause IE8 to crash (#9823)", "support/testElementCrash.html", function() {
- expect( 1 );
- ok( true, "IE8 does not crash" );
-});
-
-testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlocks", "support/shrinkWrapBlocks.html", function( shrinkWrapBlocks ) {
- expect( 1 );
- strictEqual( shrinkWrapBlocks, jQuery.support.shrinkWrapBlocks, "jQuery.support.shrinkWrapBlocks properties are the same" );
-});
-
(function() {
- var expected, version,
+ var expected,
userAgent = window.navigator.userAgent;
if ( /chrome/i.test( userAgent ) ) {
- version = userAgent.match( /chrome\/(\d+)/i )[ 1 ];
expected = {
- "checkOn":true,
- "optSelected":true,
- "optDisabled":true,
- "focusinBubbles":false,
- "reliableMarginRight":true,
- "noCloneChecked":true,
- "radioValue":true,
- "checkClone":true,
- "ajax":true,
- "cors":true,
- "clearCloneStyle": true,
- "boxSizing": true,
+ "ajax": true,
"boxSizingReliable": true,
- "pixelPosition": version >= 28
+ "checkClone": true,
+ "checkOn": true,
+ "clearCloneStyle": true,
+ "cors": true,
+ "focusinBubbles": false,
+ "noCloneChecked": true,
+ "optDisabled": true,
+ "optSelected": true,
+ "pixelPosition": true,
+ "radioValue": true,
+ "reliableMarginRight": true
};
} 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,
- "ajax":true,
- "cors":true,
- "clearCloneStyle": true,
- "boxSizing": true,
+ "ajax": true,
"boxSizingReliable": true,
- "pixelPosition": true
+ "checkClone": true,
+ "checkOn": true,
+ "clearCloneStyle": true,
+ "cors": true,
+ "focusinBubbles": false,
+ "noCloneChecked": true,
+ "optDisabled": true,
+ "optSelected": true,
+ "pixelPosition": true,
+ "radioValue": false,
+ "reliableMarginRight": 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,
- "ajax":true,
- "cors":true,
- "clearCloneStyle": false,
- "boxSizing": true,
+ "ajax": true,
"boxSizingReliable": false,
- "pixelPosition": true
+ "checkClone": true,
+ "checkOn": true,
+ "clearCloneStyle": false,
+ "cors": true,
+ "focusinBubbles": true,
+ "noCloneChecked": false,
+ "optDisabled": true,
+ "optSelected": false,
+ "pixelPosition": true,
+ "radioValue": false,
+ "reliableMarginRight": 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,
- "ajax":true,
- "cors":false,
- "clearCloneStyle": false,
- "boxSizing": true,
+ "ajax": true,
"boxSizingReliable": false,
- "pixelPosition": true
+ "checkClone": true,
+ "checkOn": true,
+ "clearCloneStyle": false,
+ "cors": false,
+ "focusinBubbles": true,
+ "noCloneChecked": false,
+ "optDisabled": true,
+ "optSelected": false,
+ "pixelPosition": true,
+ "radioValue": false,
+ "reliableMarginRight": true
};
- } else if ( /5\.1\.\d+ safari/i.test( userAgent ) ) {
+ } else if ( /6\.0\.\d+ safari/i.test( userAgent ) ) {
expected = {
- "checkOn":false,
- "optSelected":true,
- "optDisabled":true,
- "focusinBubbles":false,
- "reliableMarginRight":true,
- "noCloneChecked":true,
- "radioValue":true,
- "checkClone":false,
- "ajax":true,
- "cors":true,
- "clearCloneStyle": true,
- "boxSizing": true,
+ "ajax": true,
"boxSizingReliable": true,
- "pixelPosition": false
+ "checkClone": true,
+ "checkOn": true,
+ "clearCloneStyle": true,
+ "cors": true,
+ "focusinBubbles": false,
+ "noCloneChecked": true,
+ "optDisabled": true,
+ "optSelected": true,
+ "pixelPosition": false,
+ "radioValue": true,
+ "reliableMarginRight": true
};
} else if ( /firefox/i.test( userAgent ) ) {
- version = userAgent.match( /firefox\/(\d+)/i )[ 1 ];
expected = {
- "checkOn":true,
- "optSelected":true,
- "optDisabled":true,
- "focusinBubbles":false,
- "reliableMarginRight":true,
- "noCloneChecked":true,
- "radioValue":true,
- "checkClone":true,
- "ajax":true,
- "cors":true,
+ "ajax": true,
+ "boxSizingReliable": true,
+ "checkClone": true,
+ "checkOn": true,
"clearCloneStyle": true,
- "boxSizing": true,
- "boxSizingReliable": version >= 23,
- "pixelPosition": true
+ "cors": true,
+ "focusinBubbles": false,
+ "noCloneChecked": true,
+ "optDisabled": true,
+ "optSelected": true,
+ "pixelPosition": true,
+ "radioValue": true,
+ "reliableMarginRight": true
};
}
@@ -148,17 +137,20 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
var i, prop,
j = 0;
- for ( prop in jQuery.support ) {
+ for ( prop in computedSupport ) {
j++;
}
expect( j );
for ( i in expected ) {
+ // TODO check for all modules containing support properties
if ( jQuery.ajax || i !== "ajax" && i !== "cors" ) {
- equal( jQuery.support[i], expected[i], "jQuery.support['" + i + "']: " + jQuery.support[i] + ", expected['" + i + "']: " + expected[i]);
+ equal( computedSupport[ i ], expected[ i ],
+ "jQuery.support['" + i + "']: " + computedSupport[ i ] +
+ ", expected['" + i + "']: " + expected[ i ]);
} else {
- ok( true, "no ajax; skipping jQuery.support['" + i + "']" );
+ ok( true, "no ajax; skipping jQuery.support[' " + i + " ']" );
}
}
});
@@ -166,13 +158,10 @@ testIframeWithCallback( "box-sizing does not affect jQuery.support.shrinkWrapBlo
})();
-// Support: Safari 5.1
-// Shameless browser-sniff, but Safari 5.1 mishandles CSP
-if ( !( typeof navigator !== "undefined" &&
- (/ AppleWebKit\/\d.*? Version\/(\d+)/.exec(navigator.userAgent) || [])[1] < 6 ) ) {
-
- testIframeWithCallback( "Check CSP (https://developer.mozilla.org/en-US/docs/Security/CSP) restrictions", "support/csp.php", function( support ) {
+testIframeWithCallback( "Check CSP (https://developer.mozilla.org/en-US/docs/Security/CSP) restrictions",
+ "support/csp.php",
+ function( support ) {
expect( 1 );
- deepEqual( jQuery.extend( {}, support ), jQuery.support, "No violations of CSP polices" );
- });
-}
+ deepEqual( jQuery.extend( {}, support ), computedSupport, "No violations of CSP polices" );
+ }
+);