Docs:Tests: Update IE/Edge-related support comments & tests

Closes gh-3661
This commit is contained in:
Michał Gołębiowski 2017-05-15 20:37:14 +02:00 committed by GitHub
parent bbf334282b
commit 731c501155
8 changed files with 39 additions and 46 deletions

View File

@ -538,7 +538,7 @@ jQuery.extend( {
if ( s.crossDomain == null ) { if ( s.crossDomain == null ) {
urlAnchor = document.createElement( "a" ); urlAnchor = document.createElement( "a" );
// Support: IE <=8 - 11, Edge 12 - 13 // Support: IE <=8 - 11, Edge 12 - 15
// IE throws exception on accessing the href property if url is malformed, // IE throws exception on accessing the href property if url is malformed,
// e.g. http://example.com:80x/ // e.g. http://example.com:80x/
try { try {

View File

@ -288,7 +288,7 @@ jQuery.extend( {
}, },
// Convert dashed to camelCase; used by the css and data modules // Convert dashed to camelCase; used by the css and data modules
// Support: IE <=9 - 11, Edge 12 - 13 // Support: IE <=9 - 11, Edge 12 - 15
// Microsoft forgot to hump their vendor prefix (#9572) // Microsoft forgot to hump their vendor prefix (#9572)
camelCase: function( string ) { camelCase: function( string ) {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );

5
src/effects.js vendored
View File

@ -148,9 +148,10 @@ function defaultPrefilter( elem, props, opts ) {
// Restrict "overflow" and "display" styles during box animations // Restrict "overflow" and "display" styles during box animations
if ( isBox && elem.nodeType === 1 ) { if ( isBox && elem.nodeType === 1 ) {
// Support: IE <=9 - 11, Edge 12 - 13 // Support: IE <=9 - 11, Edge 12 - 15
// Record all 3 overflow attributes because IE does not infer the shorthand // Record all 3 overflow attributes because IE does not infer the shorthand
// from identically-valued overflowX and overflowY // from identically-valued overflowX and overflowY and Edge just mirrors
// the overflowX value there.
opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
// Identify a display type, preferring old show/hide data over the CSS cascade // Identify a display type, preferring old show/hide data over the CSS cascade

View File

@ -38,7 +38,7 @@ var
/* eslint-enable */ /* eslint-enable */
// Support: IE <=10 - 11, Edge 12 - 13 // Support: IE <=10 - 11, Edge 12 - 13 only
// In IE/Edge using regex groups here causes severe slowdowns. // In IE/Edge using regex groups here causes severe slowdowns.
// See https://connect.microsoft.com/IE/feedback/details/1736512/ // See https://connect.microsoft.com/IE/feedback/details/1736512/
rnoInnerhtml = /<script|<style|<link/i, rnoInnerhtml = /<script|<style|<link/i,

View File

@ -249,7 +249,7 @@ QUnit.module( "ajax", {
"Nullable": null, "Nullable": null,
"undefined": undefined "undefined": undefined
// Support: IE 9 - 11, Edge 12 - 13+ // Support: IE 9 - 11, Edge 12 - 14 only
// Not all browsers allow empty-string headers // Not all browsers allow empty-string headers
//"Empty": "" //"Empty": ""
}, },

View File

@ -1316,22 +1316,23 @@ QUnit[ jQuery.find.compile ? "test" : "skip" ]( ":visible/:hidden selectors", fu
} ); } );
QUnit.test( "Keep the last style if the new one isn't recognized by the browser (#14836)", function( assert ) { QUnit.test( "Keep the last style if the new one isn't recognized by the browser (#14836)", function( assert ) {
assert.expect( 2 ); assert.expect( 1 );
var el; var el = jQuery( "<div></div>" ).css( "position", "absolute" ).css( "position", "fake value" );
el = jQuery( "<div></div>" ).css( "position", "absolute" ).css( "position", "fake value" );
assert.equal( el.css( "position" ), "absolute", "The old style is kept when setting an unrecognized value" ); assert.equal( el.css( "position" ), "absolute", "The old style is kept when setting an unrecognized value" );
el = jQuery( "<div></div>" ).css( "position", "absolute" ).css( "position", " " ); } );
// Support: Edge 14 // Support: Edge 14 - 15
// Edge collapses whitespace-only values when setting a style property and // Edge collapses whitespace-only values when setting a style property and
// there is no easy way for us to work around it. Just skip the test there // there is no easy way for us to work around it. Just skip the test there
// and hope for the better future. // and hope for the better future.
if ( /edge\//i.test( navigator.userAgent ) ) { QUnit[ /\bedge\//i.test( navigator.userAgent ) ? "skip" : "test" ](
assert.ok( true, "Skipped (Edge 14 handles whitespace-only values incorrectly)" ); "Keep the last style if the new one is a non-empty whitespace (gh-3204)",
} else { function( assert ) {
assert.equal( el.css( "position" ), "absolute", "The old style is kept when setting to a space" ); assert.expect( 1 );
}
var el = jQuery( "<div></div>" ).css( "position", "absolute" ).css( "position", " " );
assert.equal( el.css( "position" ), "absolute", "The old style is kept when setting to a space" );
} ); } );
QUnit.test( "Reset the style if set to an empty string", function( assert ) { QUnit.test( "Reset the style if set to an empty string", function( assert ) {

View File

@ -295,12 +295,10 @@ QUnit.test( "child of a hidden elem (or unconnected node) has accurate inner/out
assert.equal( $divChild.outerWidth(), $divNormal.outerWidth(), "child of a hidden element outerWidth() is wrong see #9441" ); assert.equal( $divChild.outerWidth(), $divNormal.outerWidth(), "child of a hidden element outerWidth() is wrong see #9441" );
assert.equal( $divChild.outerWidth( true ), $divNormal.outerWidth( true ), "child of a hidden element outerWidth( true ) is wrong see #9300" ); assert.equal( $divChild.outerWidth( true ), $divNormal.outerWidth( true ), "child of a hidden element outerWidth( true ) is wrong see #9300" );
// Support: IE 10 - 11, Edge 12 - 13+ assert.equal( $divChild.height(), $divNormal.height(), "child of a hidden element height() is wrong see #9441" );
// Child height is not always decimal assert.equal( $divChild.innerHeight(), $divNormal.innerHeight(), "child of a hidden element innerHeight() is wrong see #9441" );
assert.equal( $divChild.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "child of a hidden element height() is wrong see #9441" ); assert.equal( $divChild.outerHeight(), $divNormal.outerHeight(), "child of a hidden element outerHeight() is wrong see #9441" );
assert.equal( $divChild.innerHeight().toFixed( 3 ), $divNormal.innerHeight().toFixed( 3 ), "child of a hidden element innerHeight() is wrong see #9441" ); assert.equal( $divChild.outerHeight( true ), $divNormal.outerHeight( true ), "child of a hidden element outerHeight( true ) is wrong see #9300" );
assert.equal( $divChild.outerHeight().toFixed( 3 ), $divNormal.outerHeight().toFixed( 3 ), "child of a hidden element outerHeight() is wrong see #9441" );
assert.equal( $divChild.outerHeight( true ).toFixed( 3 ), $divNormal.outerHeight( true ).toFixed( 3 ), "child of a hidden element outerHeight( true ) is wrong see #9300" );
// tests that child div of an unconnected div works the same as a normal div // tests that child div of an unconnected div works the same as a normal div
assert.equal( $divUnconnected.width(), $divNormal.width(), "unconnected element width() is wrong see #9441" ); assert.equal( $divUnconnected.width(), $divNormal.width(), "unconnected element width() is wrong see #9441" );
@ -308,12 +306,10 @@ QUnit.test( "child of a hidden elem (or unconnected node) has accurate inner/out
assert.equal( $divUnconnected.outerWidth(), $divNormal.outerWidth(), "unconnected element outerWidth() is wrong see #9441" ); assert.equal( $divUnconnected.outerWidth(), $divNormal.outerWidth(), "unconnected element outerWidth() is wrong see #9441" );
assert.equal( $divUnconnected.outerWidth( true ), $divNormal.outerWidth( true ), "unconnected element outerWidth( true ) is wrong see #9300" ); assert.equal( $divUnconnected.outerWidth( true ), $divNormal.outerWidth( true ), "unconnected element outerWidth( true ) is wrong see #9300" );
// Support: IE 10 - 11, Edge 12 - 13+ assert.equal( $divUnconnected.height(), $divNormal.height(), "unconnected element height() is wrong see #9441" );
// Child height is not always decimal assert.equal( $divUnconnected.innerHeight(), $divNormal.innerHeight(), "unconnected element innerHeight() is wrong see #9441" );
assert.equal( $divUnconnected.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "unconnected element height() is wrong see #9441" ); assert.equal( $divUnconnected.outerHeight(), $divNormal.outerHeight(), "unconnected element outerHeight() is wrong see #9441" );
assert.equal( $divUnconnected.innerHeight().toFixed( 3 ), $divNormal.innerHeight().toFixed( 3 ), "unconnected element innerHeight() is wrong see #9441" ); assert.equal( $divUnconnected.outerHeight( true ), $divNormal.outerHeight( true ), "unconnected element outerHeight( true ) is wrong see #9300" );
assert.equal( $divUnconnected.outerHeight().toFixed( 3 ), $divNormal.outerHeight().toFixed( 3 ), "unconnected element outerHeight() is wrong see #9441" );
assert.equal( $divUnconnected.outerHeight( true ).toFixed( 3 ), $divNormal.outerHeight( true ).toFixed( 3 ), "unconnected element outerHeight( true ) is wrong see #9300" );
// teardown html // teardown html
$divHiddenParent.remove(); $divHiddenParent.remove();
@ -372,12 +368,10 @@ QUnit.test( "box-sizing:border-box child of a hidden elem (or unconnected node)
assert.equal( $divChild.outerWidth(), $divNormal.outerWidth(), "child of a hidden element outerWidth() is wrong see #10413" ); assert.equal( $divChild.outerWidth(), $divNormal.outerWidth(), "child of a hidden element outerWidth() is wrong see #10413" );
assert.equal( $divChild.outerWidth( true ), $divNormal.outerWidth( true ), "child of a hidden element outerWidth( true ) is wrong see #10413" ); assert.equal( $divChild.outerWidth( true ), $divNormal.outerWidth( true ), "child of a hidden element outerWidth( true ) is wrong see #10413" );
// Support: IE 10 - 11, Edge 12 - 13+ assert.equal( $divChild.height(), $divNormal.height(), "child of a hidden element height() is wrong see #10413" );
// Child height is not always decimal assert.equal( $divChild.innerHeight(), $divNormal.innerHeight(), "child of a hidden element innerHeight() is wrong see #10413" );
assert.equal( $divChild.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "child of a hidden element height() is wrong see #10413" ); assert.equal( $divChild.outerHeight(), $divNormal.outerHeight(), "child of a hidden element outerHeight() is wrong see #10413" );
assert.equal( $divChild.innerHeight().toFixed( 3 ), $divNormal.innerHeight().toFixed( 3 ), "child of a hidden element innerHeight() is wrong see #10413" ); assert.equal( $divChild.outerHeight( true ), $divNormal.outerHeight( true ), "child of a hidden element outerHeight( true ) is wrong see #10413" );
assert.equal( $divChild.outerHeight().toFixed( 3 ), $divNormal.outerHeight().toFixed( 3 ), "child of a hidden element outerHeight() is wrong see #10413" );
assert.equal( $divChild.outerHeight( true ).toFixed( 3 ), $divNormal.outerHeight( true ).toFixed( 3 ), "child of a hidden element outerHeight( true ) is wrong see #10413" );
// tests that child div of an unconnected div works the same as a normal div // tests that child div of an unconnected div works the same as a normal div
assert.equal( $divUnconnected.width(), $divNormal.width(), "unconnected element width() is wrong see #10413" ); assert.equal( $divUnconnected.width(), $divNormal.width(), "unconnected element width() is wrong see #10413" );
@ -385,12 +379,10 @@ QUnit.test( "box-sizing:border-box child of a hidden elem (or unconnected node)
assert.equal( $divUnconnected.outerWidth(), $divNormal.outerWidth(), "unconnected element outerWidth() is wrong see #10413" ); assert.equal( $divUnconnected.outerWidth(), $divNormal.outerWidth(), "unconnected element outerWidth() is wrong see #10413" );
assert.equal( $divUnconnected.outerWidth( true ), $divNormal.outerWidth( true ), "unconnected element outerWidth( true ) is wrong see #10413" ); assert.equal( $divUnconnected.outerWidth( true ), $divNormal.outerWidth( true ), "unconnected element outerWidth( true ) is wrong see #10413" );
// Support: IE 10 - 11, Edge 12 - 13+ assert.equal( $divUnconnected.height(), $divNormal.height(), "unconnected element height() is wrong see #10413" );
// Child height is not always decimal assert.equal( $divUnconnected.innerHeight(), $divNormal.innerHeight(), "unconnected element innerHeight() is wrong see #10413" );
assert.equal( $divUnconnected.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "unconnected element height() is wrong see #10413" ); assert.equal( $divUnconnected.outerHeight(), $divNormal.outerHeight(), "unconnected element outerHeight() is wrong see #10413" );
assert.equal( $divUnconnected.innerHeight().toFixed( 3 ), $divNormal.innerHeight().toFixed( 3 ), "unconnected element innerHeight() is wrong see #10413" ); assert.equal( $divUnconnected.outerHeight( true ), $divNormal.outerHeight( true ), "unconnected element outerHeight( true ) is wrong see #10413" );
assert.equal( $divUnconnected.outerHeight().toFixed( 3 ), $divNormal.outerHeight().toFixed( 3 ), "unconnected element outerHeight() is wrong see #10413" );
assert.equal( $divUnconnected.outerHeight( true ).toFixed( 3 ), $divNormal.outerHeight( true ).toFixed( 3 ), "unconnected element outerHeight( true ) is wrong see #10413" );
// teardown html // teardown html
$divHiddenParent.remove(); $divHiddenParent.remove();

View File

@ -55,17 +55,16 @@ testIframe(
); );
( function() { ( function() {
var expected, version, var expected,
userAgent = window.navigator.userAgent; userAgent = window.navigator.userAgent;
if ( /edge\//i.test( userAgent ) ) { if ( /edge\//i.test( userAgent ) ) {
version = userAgent.match( /edge\/(\d+)/i )[ 1 ];
expected = { expected = {
"ajax": true, "ajax": true,
"boxSizingReliable": true, "boxSizingReliable": true,
"checkClone": true, "checkClone": true,
"checkOn": true, "checkOn": true,
"clearCloneStyle": version >= 13, "clearCloneStyle": true,
"cors": true, "cors": true,
"createHTMLDocument": true, "createHTMLDocument": true,
"focusin": false, "focusin": false,