]> source.dussan.org Git - jquery.git/commitdiff
Docs:Tests: Update IE/Edge-related support comments & tests
authorMichał Gołębiowski <m.goleb@gmail.com>
Mon, 15 May 2017 18:37:14 +0000 (20:37 +0200)
committerGitHub <noreply@github.com>
Mon, 15 May 2017 18:37:14 +0000 (20:37 +0200)
Closes gh-3661

src/ajax.js
src/core.js
src/effects.js
src/manipulation.js
test/unit/ajax.js
test/unit/css.js
test/unit/dimensions.js
test/unit/support.js

index 36f707d7d1dbd7bcf6e243523a45391c1dd3fd82..27e533955cdb2eb5dd9bdb47cfba249d5b67d1fe 100644 (file)
@@ -538,7 +538,7 @@ jQuery.extend( {
                if ( s.crossDomain == null ) {
                        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,
                        // e.g. http://example.com:80x/
                        try {
index 83d427c788384c68d7fe31b0be7d157089e23683..ce43d737e9490cc4bf81b85d824c0a3fca5a2a55 100644 (file)
@@ -288,7 +288,7 @@ jQuery.extend( {
        },
 
        // 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)
        camelCase: function( string ) {
                return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
index 879b36135f99813f1028e684e3f1d06764ee0f5f..b8da7ce3793840ed9e4e9852ca0780ef4785d5ae 100644 (file)
@@ -148,9 +148,10 @@ function defaultPrefilter( elem, props, opts ) {
        // Restrict "overflow" and "display" styles during box animations
        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
-               // 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 ];
 
                // Identify a display type, preferring old show/hide data over the CSS cascade
index cd225a6dbb1b3e8f017037836cb2eed20c0bac42..2db1cfe3fd9d40ef009624d5e4b531396af172a8 100644 (file)
@@ -38,7 +38,7 @@ var
 
        /* 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.
        // See https://connect.microsoft.com/IE/feedback/details/1736512/
        rnoInnerhtml = /<script|<style|<link/i,
index 681aa463bd2460f11a5aa971544232a3bfa407b2..07ff40783093041f041ba6afc85c30a5e0824732 100644 (file)
@@ -249,7 +249,7 @@ QUnit.module( "ajax", {
                                "Nullable": null,
                                "undefined": undefined
 
-                               // Support: IE 9 - 11, Edge 12 - 13+
+                               // Support: IE 9 - 11, Edge 12 - 14 only
                                // Not all browsers allow empty-string headers
                                //"Empty": ""
                        },
index b6bb9558470f9243e9009af29e166a332367f292..4533e46926c1260ce03e947348e2f566df1c3761 100644 (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 ) {
-       assert.expect( 2 );
+       assert.expect( 1 );
 
-       var el;
-       el = jQuery( "<div></div>" ).css( "position", "absolute" ).css( "position", "fake value" );
+       var 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" );
-       el = jQuery( "<div></div>" ).css( "position", "absolute" ).css( "position", " " );
-
-       // Support: Edge 14
-       // 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
-       // and hope for the better future.
-       if ( /edge\//i.test( navigator.userAgent ) ) {
-               assert.ok( true, "Skipped (Edge 14 handles whitespace-only values incorrectly)" );
-       } else {
-               assert.equal( el.css( "position" ), "absolute", "The old style is kept when setting to a space" );
-       }
+} );
+
+// Support: Edge 14 - 15
+// 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
+// and hope for the better future.
+QUnit[ /\bedge\//i.test( navigator.userAgent ) ? "skip" : "test" ](
+       "Keep the last style if the new one is a non-empty whitespace (gh-3204)",
+       function( assert ) {
+       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 ) {
index cba82118599c44eb69806cac0d9bdbc97e63ea7b..76850e9e2574b8d341ef8093c736471e7d425591 100644 (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( true ), $divNormal.outerWidth( true ), "child of a hidden element outerWidth( true ) is wrong see #9300" );
 
-       // Support: IE 10 - 11, Edge 12 - 13+
-       // Child height is not always decimal
-       assert.equal( $divChild.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "child of a hidden element height() 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().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" );
+       assert.equal( $divChild.height(), $divNormal.height(), "child of a hidden element height() is wrong see #9441" );
+       assert.equal( $divChild.innerHeight(), $divNormal.innerHeight(), "child of a hidden element innerHeight() is wrong see #9441" );
+       assert.equal( $divChild.outerHeight(), $divNormal.outerHeight(), "child of a hidden element outerHeight() is wrong see #9441" );
+       assert.equal( $divChild.outerHeight( true ), $divNormal.outerHeight( true ), "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
        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( true ), $divNormal.outerWidth( true ), "unconnected element outerWidth( true ) is wrong see #9300" );
 
-       // Support: IE 10 - 11, Edge 12 - 13+
-       // Child height is not always decimal
-       assert.equal( $divUnconnected.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "unconnected element height() 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().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" );
+       assert.equal( $divUnconnected.height(), $divNormal.height(), "unconnected element height() is wrong see #9441" );
+       assert.equal( $divUnconnected.innerHeight(), $divNormal.innerHeight(), "unconnected element innerHeight() is wrong see #9441" );
+       assert.equal( $divUnconnected.outerHeight(), $divNormal.outerHeight(), "unconnected element outerHeight() is wrong see #9441" );
+       assert.equal( $divUnconnected.outerHeight( true ), $divNormal.outerHeight( true ), "unconnected element outerHeight( true ) is wrong see #9300" );
 
        // teardown html
        $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( true ), $divNormal.outerWidth( true ), "child of a hidden element outerWidth( true ) is wrong see #10413" );
 
-       // Support: IE 10 - 11, Edge 12 - 13+
-       // Child height is not always decimal
-       assert.equal( $divChild.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "child of a hidden element height() 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().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" );
+       assert.equal( $divChild.height(), $divNormal.height(), "child of a hidden element height() is wrong see #10413" );
+       assert.equal( $divChild.innerHeight(), $divNormal.innerHeight(), "child of a hidden element innerHeight() is wrong see #10413" );
+       assert.equal( $divChild.outerHeight(), $divNormal.outerHeight(), "child of a hidden element outerHeight() is wrong see #10413" );
+       assert.equal( $divChild.outerHeight( true ), $divNormal.outerHeight( true ), "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
        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( true ), $divNormal.outerWidth( true ), "unconnected element outerWidth( true ) is wrong see #10413" );
 
-       // Support: IE 10 - 11, Edge 12 - 13+
-       // Child height is not always decimal
-       assert.equal( $divUnconnected.height().toFixed( 3 ), $divNormal.height().toFixed( 3 ), "unconnected element height() 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().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" );
+       assert.equal( $divUnconnected.height(), $divNormal.height(), "unconnected element height() is wrong see #10413" );
+       assert.equal( $divUnconnected.innerHeight(), $divNormal.innerHeight(), "unconnected element innerHeight() is wrong see #10413" );
+       assert.equal( $divUnconnected.outerHeight(), $divNormal.outerHeight(), "unconnected element outerHeight() is wrong see #10413" );
+       assert.equal( $divUnconnected.outerHeight( true ), $divNormal.outerHeight( true ), "unconnected element outerHeight( true ) is wrong see #10413" );
 
        // teardown html
        $divHiddenParent.remove();
index 5be7819421c63f664dee6a9e8addbe390b59f7fe..daa8dc6645015b4518fb673660d2beed8f9de860 100644 (file)
@@ -55,17 +55,16 @@ testIframe(
 );
 
 ( function() {
-       var expected, version,
+       var expected,
                userAgent = window.navigator.userAgent;
 
        if ( /edge\//i.test( userAgent ) ) {
-               version = userAgent.match( /edge\/(\d+)/i )[ 1 ];
                expected = {
                        "ajax": true,
                        "boxSizingReliable": true,
                        "checkClone": true,
                        "checkOn": true,
-                       "clearCloneStyle": version >= 13,
+                       "clearCloneStyle": true,
                        "cors": true,
                        "createHTMLDocument": true,
                        "focusin": false,