aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
authorJörn Zaefferer <joern.zaefferer@gmail.com>2012-11-16 20:24:57 +0100
committerJörn Zaefferer <joern.zaefferer@gmail.com>2012-11-26 10:28:24 +0100
commitb27db7e3b9a857b8f0890e91ae9c8a2d33bf9919 (patch)
treed25bb8ce059b9a4926afa65ed20c14c18712b193 /tests/unit
parent299681e8f0896cd0448fa08003bb7b733adc489f (diff)
downloadjquery-ui-b27db7e3b9a857b8f0890e91ae9c8a2d33bf9919.tar.gz
jquery-ui-b27db7e3b9a857b8f0890e91ae9c8a2d33bf9919.zip
Dialog: Extend autofocus, starting with [autofocus], then :tabbable content, then buttonpane, then close button, then dialog. Fixes #4731 - Dialog: Add option to set which element gains focus on open
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/dialog/dialog_core.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js
index b36f6204f..31b245a61 100644
--- a/tests/unit/dialog/dialog_core.js
+++ b/tests/unit/dialog/dialog_core.js
@@ -17,6 +17,8 @@ test("title id", function() {
el.remove();
});
+// TODO test for aria-describedby
+// add only when the attribute isn't anywhere yet
test("ARIA", function() {
expect(4);
@@ -42,4 +44,44 @@ test("widget method", function() {
deepEqual(dialog.parent()[0], dialog.dialog("widget")[0]);
});
+test( "focus tabbable", function() {
+ expect( 5 );
+ var el,
+ options = {
+ buttons: [{
+ text: "Ok",
+ click: $.noop
+ }]
+ };
+
+ // 1. first element inside the dialog matching [autofocus]
+ el = $( "<div><input><input autofocus></div>" ).dialog( options );
+ equal( document.activeElement, el.find( "input" )[ 1 ] );
+ el.remove();
+
+ // 2. tabbable element inside the content element
+ el = $( "<div><input><input></div>" ).dialog( options );
+ equal( document.activeElement, el.find( "input" )[ 0 ] );
+ el.remove();
+
+ // 3. tabbable element inside the buttonpane
+ el = $( "<div>text</div>" ).dialog( options );
+ equal( document.activeElement, el.dialog( "widget" ).find( ".ui-dialog-buttonpane button" )[ 0 ] );
+ el.remove();
+
+ // 4. the close button
+ el = $( "<div>text</div>" ).dialog();
+ equal( document.activeElement, el.dialog( "widget" ).find( ".ui-dialog-titlebar .ui-dialog-titlebar-close" )[ 0 ] );
+ el.remove();
+
+ // 5. the dialog itself
+ el = $( "<div>text</div>" ).dialog({
+ autoOpen: false
+ });
+ el.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).hide();
+ el.dialog( "open" );
+ equal( document.activeElement, el.parent()[ 0 ] );
+ el.remove();
+});
+
})(jQuery);