aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2015-03-10 16:10:43 -0400
committerScott González <scott.gonzalez@gmail.com>2016-06-09 12:07:27 -0400
commitb2aa641c04fb00901c7de9acf1bdc59f65bbed25 (patch)
tree6f37a878b2a3fb6ed75dbaea6164f219fab42aab /tests/unit
parent82d4e6045952569e2f37981a33c8a2fa442e104f (diff)
downloadjquery-ui-b2aa641c04fb00901c7de9acf1bdc59f65bbed25.tar.gz
jquery-ui-b2aa641c04fb00901c7de9acf1bdc59f65bbed25.zip
Accordion: Fix tests in IE 11 with jQuery 1.7-1.8
Closes gh-1482 (cherry picked from commit 8ea36f5e0cc389752fdecdd17f0a82a2d560d4bb)
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/accordion/accordion_core.js67
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 ) );