aboutsummaryrefslogtreecommitdiffstats
path: root/tests
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>2015-03-11 08:43:17 -0400
commit8ea36f5e0cc389752fdecdd17f0a82a2d560d4bb (patch)
treef791fa19378faad974f6daa56464c1a495e25c5f /tests
parent1f9821c000adbf2ebeccacf9506a7df68956574b (diff)
downloadjquery-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.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 ) );