aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2012-03-27 16:49:05 -0400
committerScott González <scott.gonzalez@gmail.com>2012-03-27 16:49:05 -0400
commit6634e4005368ded31dce50de7095ed0f8835637c (patch)
tree97699ae373c51e12e1539cba09cbe213a9eaa5b5 /tests
parenta709943a8b6ce83ae258e1532c2dfc6a39d27fc2 (diff)
downloadjquery-ui-6634e4005368ded31dce50de7095ed0f8835637c.tar.gz
jquery-ui-6634e4005368ded31dce50de7095ed0f8835637c.zip
Accordion: Fixed post-init changes to event option and added tests for keyboard support.
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/accordion/accordion.html2
-rw-r--r--tests/unit/accordion/accordion_core.js42
-rw-r--r--tests/unit/accordion/accordion_deprecated.html2
3 files changed, 43 insertions, 3 deletions
diff --git a/tests/unit/accordion/accordion.html b/tests/unit/accordion/accordion.html
index 109b3094e..5c9169ea3 100644
--- a/tests/unit/accordion/accordion.html
+++ b/tests/unit/accordion/accordion.html
@@ -66,7 +66,7 @@
<p>
your bear, you have to admit it!
<br>
- No, we aren't selling bears.
+ No, we aren't <a href="#">selling bears</a>.
</p>
<p>
We could talk about renting one.
diff --git a/tests/unit/accordion/accordion_core.js b/tests/unit/accordion/accordion_core.js
index 0d756c97c..92d79c121 100644
--- a/tests/unit/accordion/accordion_core.js
+++ b/tests/unit/accordion/accordion_core.js
@@ -69,6 +69,46 @@ test( "accessibility", function () {
equal( headers.eq( 2 ).next().attr( "aria-hidden" ), "true", "active tabpanel has aria-hidden=true" );
});
-// TODO: keyboard support
+asyncTest( "keybaord support", function() {
+ expect( 13 );
+ var element = $( "#list1" ).accordion(),
+ headers = element.find( ".ui-accordion-header" ),
+ anchor = headers.eq( 1 ).next().find( "a" ).eq( 0 ),
+ keyCode = $.ui.keyCode;
+ equal( headers.filter( ".ui-state-focus" ).length, 0, "no headers focused on init" );
+ headers.eq( 0 ).simulate( "focus" );
+ setTimeout(function() {
+ ok( headers.eq( 0 ).is( ".ui-state-focus" ), "first header has focus" );
+ headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.DOWN } );
+ ok( headers.eq( 1 ).is( ".ui-state-focus" ), "DOWN moves focus to next header" );
+ headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.RIGHT } );
+ 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" );
+
+ headers.eq( 0 ).simulate( "keydown", { keyCode: keyCode.UP } );
+ 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" );
+
+ headers.eq( 1 ).simulate( "keydown", { keyCode: keyCode.HOME } );
+ 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" );
+
+ headers.eq( 2 ).simulate( "keydown", { keyCode: keyCode.ENTER } );
+ 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" );
+
+ 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 );
+});
}( jQuery ) );
diff --git a/tests/unit/accordion/accordion_deprecated.html b/tests/unit/accordion/accordion_deprecated.html
index 583c1adcd..116eb43b5 100644
--- a/tests/unit/accordion/accordion_deprecated.html
+++ b/tests/unit/accordion/accordion_deprecated.html
@@ -64,7 +64,7 @@
<p>
your bear, you have to admit it!
<br>
- No, we aren't selling bears.
+ No, we aren't <a href="#">selling bears</a>.
</p>
<p>
We could talk about renting one.