Skip to content

Commit

Permalink
Tests: Accept delayed focusout in IE with jQuery 1.8
Browse files Browse the repository at this point in the history
In IE with jQuery 1.8 focusout may not happen immediately so some checks
need to be done later.

Closes jquerygh-1952
  • Loading branch information
mgol authored Apr 16, 2021
1 parent dff0dc0 commit 9380d27
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions tests/unit/tabs/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,13 @@ QUnit.test( "keyboard support - LEFT, RIGHT, UP, DOWN, HOME, END, SPACE, ENTER",
} ),
tabs = element.find( ".ui-tabs-nav li" ),
panels = element.find( ".ui-tabs-panel" ),
keyCode = $.ui.keyCode;
keyCode = $.ui.keyCode,

// Support: IE 11 with jQuery 1.8.
// In IE with jQuery 1.8 focusout may not happen immediately so some checks
// need to be done later.
isFocusoutImmediate = !( document.documentMode &&
jQuery.fn.jquery.indexOf( "1.8." ) === 0 );

element.tabs( "instance" ).delay = 1;

Expand All @@ -202,7 +208,9 @@ QUnit.test( "keyboard support - LEFT, RIGHT, UP, DOWN, HOME, END, SPACE, ENTER",

tabs.eq( 0 ).simulate( "keydown", { keyCode: keyCode.DOWN } );
assert.hasClasses( tabs.eq( 1 ), "ui-state-focus", "DOWN moves focus to next tab" );
assert.lacksClasses( tabs.eq( 0 ), "ui-state-focus", "first tab is no longer focused" );
if ( isFocusoutImmediate ) {
assert.lacksClasses( tabs.eq( 0 ), "ui-state-focus", "first tab is no longer focused" );
}
assert.equal( tabs.eq( 1 ).attr( "aria-selected" ), "true", "second tab has aria-selected=true" );
assert.equal( tabs.eq( 0 ).attr( "aria-selected" ), "false", "first tab has aria-selected=false" );
assert.ok( panels.eq( 1 ).is( ":hidden" ), "second panel is still hidden" );
Expand Down Expand Up @@ -247,6 +255,9 @@ QUnit.test( "keyboard support - LEFT, RIGHT, UP, DOWN, HOME, END, SPACE, ENTER",

// Left, home, space
function step2() {
if ( !isFocusoutImmediate ) {
assert.lacksClasses( tabs.eq( 0 ), "ui-state-focus", "first tab is no longer focused" );
}
assert.equal( tabs.eq( 2 ).attr( "aria-selected" ), "true", "third tab has aria-selected=true" );
assert.equal( tabs.eq( 0 ).attr( "aria-selected" ), "false", "first tab has aria-selected=false" );
assert.ok( panels.eq( 2 ).is( ":visible" ), "third panel is visible" );
Expand Down

0 comments on commit 9380d27

Please sign in to comment.