]> source.dussan.org Git - jquery-ui.git/commitdiff
Tests: Workaround a jQuery 1.8 issue with one dialog test
authorMichał Gołębiowski-Owczarek <m.goleb@gmail.com>
Fri, 12 Apr 2024 13:22:05 +0000 (15:22 +0200)
committerGitHub <noreply@github.com>
Fri, 12 Apr 2024 13:22:05 +0000 (15:22 +0200)
The test "#8958: dialog can be opened while opening" had special behavior in
jQuery 1.8 and the patch from commit 7adb13ac7c30a7ba33f1db256952be77b9e7a310
broke those assumptions. Adjust the test so that it passes again.

Closes gh-2229

tests/unit/dialog/methods.js

index cfdc44bb2f21989e0d5ac6cb0711cbe3e7e97722..6b10b399f12b4d077cd222f7917b6d7babe083a2 100644 (file)
@@ -217,6 +217,8 @@ QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
        var ready = assert.async( 3 );
        assert.expect( 1 );
 
+       var jQuery1Dot8 = jQuery.fn.jquery.indexOf( "1.8" ) === 0;
+
        var element = $( "<div>" ).dialog( {
                autoOpen: false,
                modal: true,
@@ -246,6 +248,15 @@ QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
                // handle a call to the open() method during the process of the dialog
                // being opened.
                .on( "blur", function() {
+
+                       // Support: jQuery 1.8 only
+                       // The test never fully worked in jQuery 1.8 since the input's blur
+                       // handler never fired. It's only been uncovered when `ready()` calls
+                       // have been added to all handlers. Skip this handler in jQuery 1.8.
+                       if ( jQuery1Dot8 ) {
+                               return;
+                       }
+
                        element.dialog( "open" );
 
                        // Detach the handlers to avoid firing them outside of this
@@ -255,6 +266,13 @@ QUnit.test( "#8958: dialog can be opened while opening", function( assert ) {
                        ready();
                } )
                .trigger( "focus" );
+
+       // Support: jQuery 1.8 only
+       // Account for the skipped `ready()` call above. To make sure the count
+       // is constant, call it here instead.
+       if ( jQuery1Dot8 ) {
+               ready();
+       }
 } );
 
 QUnit.test( "#5531: dialog width should be at least minWidth on creation", function( assert ) {