diff options
author | Scott González <scott.gonzalez@gmail.com> | 2015-03-10 16:10:43 -0400 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2015-03-11 08:43:17 -0400 |
commit | 8ea36f5e0cc389752fdecdd17f0a82a2d560d4bb (patch) | |
tree | f791fa19378faad974f6daa56464c1a495e25c5f /tests | |
parent | 1f9821c000adbf2ebeccacf9506a7df68956574b (diff) | |
download | jquery-ui-8ea36f5e0cc389752fdecdd17f0a82a2d560d4bb.tar.gz jquery-ui-8ea36f5e0cc389752fdecdd17f0a82a2d560d4bb.zip |
Accordion: Fix tests in IE 11 with jQuery 1.7-1.8
Closes gh-1482
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/accordion/accordion_core.js | 67 |
1 files changed, 55 insertions, 12 deletions
diff --git a/tests/unit/accordion/accordion_core.js b/tests/unit/accordion/accordion_core.js index dc0649b3b..721d15487 100644 --- a/tests/unit/accordion/accordion_core.js +++ b/tests/unit/accordion/accordion_core.js @@ -110,38 +110,81 @@ asyncTest( "keyboard support", function() { keyCode = $.ui.keyCode; equal( headers.filter( ".ui-state-focus" ).length, 0, "no headers focused on init" ); headers.eq( 0 ).simulate( "focus" ); - setTimeout(function() { + setTimeout( step1 ); + + function step1() { ok( headers.eq( 0 ).is( ".ui-state-focus" ), "first header has focus" ); headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.DOWN } ); + setTimeout( step2 ); + } + + // Support: IE 11 with jQuery 1.7 - 1.8 only + // All of the setTimeouts() from keydowns aren't necessary with newer jQuery. + // Only the explicit focus simulations require them. + function step2() { ok( headers.eq( 1 ).is( ".ui-state-focus" ), "DOWN moves focus to next header" ); headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.RIGHT } ); + setTimeout( step3 ); + } + + function step3() { ok( headers.eq( 2 ).is( ".ui-state-focus" ), "RIGHT moves focus to next header" ); headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.DOWN } ); - ok( headers.eq( 0 ).is( ".ui-state-focus" ), "DOWN wraps focus to first header" ); + setTimeout( step4 ); + } + function step4() { + ok( headers.eq( 0 ).is( ".ui-state-focus" ), "DOWN wraps focus to first header" ); headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.UP } ); + setTimeout( step5 ); + } + + function step5() { ok( headers.eq( 2 ).is( ".ui-state-focus" ), "UP wraps focus to last header" ); headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.LEFT } ); - ok( headers.eq( 1 ).is( ".ui-state-focus" ), "LEFT moves focus to previous header" ); + setTimeout( step6 ); + } + function step6() { + ok( headers.eq( 1 ).is( ".ui-state-focus" ), "LEFT moves focus to previous header" ); headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.HOME } ); + setTimeout( step7 ); + } + + function step7() { ok( headers.eq( 0 ).is( ".ui-state-focus" ), "HOME moves focus to first header" ); headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.END } ); - ok( headers.eq( 2 ).is( ".ui-state-focus" ), "END moves focus to last header" ); + setTimeout( step8 ); + } + function step8() { + ok( headers.eq( 2 ).is( ".ui-state-focus" ), "END moves focus to last header" ); headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.ENTER } ); + setTimeout( step9 ); + } + + function step9() { equal( element.accordion( "option", "active" ) , 2, "ENTER activates panel" ); headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.SPACE } ); - equal( element.accordion( "option", "active" ), 1, "SPACE activates panel" ); + setTimeout( step10 ); + } + function step10() { + equal( element.accordion( "option", "active" ), 1, "SPACE activates panel" ); anchor.simulate( "focus" ); - setTimeout(function() { - ok( !headers.eq( 1 ).is( ".ui-state-focus" ), "header loses focus when focusing inside the panel" ); - anchor.simulate( "keydown", { keyCode: keyCode.UP, ctrlKey: true } ); - ok( headers.eq( 1 ).is( ".ui-state-focus" ), "CTRL+UP moves focus to header" ); - start(); - }, 1 ); - }, 1 ); + setTimeout( step11 ); + } + + function step11() { + ok( !headers.eq( 1 ).is( ".ui-state-focus" ), "header loses focus when focusing inside the panel" ); + anchor.simulate( "keydown", { keyCode: keyCode.UP, ctrlKey: true } ); + setTimeout( step12 ); + } + + function step12() { + ok( headers.eq( 1 ).is( ".ui-state-focus" ), "CTRL+UP moves focus to header" ); + start(); + } }); }( jQuery ) ); |