aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJörn Zaefferer <joern.zaefferer@gmail.com>2013-11-16 12:25:21 +0100
committerJörn Zaefferer <joern.zaefferer@gmail.com>2013-11-16 12:25:21 +0100
commit43772f3e5bb531d917bec884bfbd0be196110fd8 (patch)
treed60d96a569eb47f901b8a800a8fc0f0f95e6c70e /tests
parent0be76bbcfd7a2092aca1b4b01b90dab4e4fe00da (diff)
parent9fd0e86820dcea532d5357e0b814653746d62889 (diff)
downloadjquery-ui-43772f3e5bb531d917bec884bfbd0be196110fd8.tar.gz
jquery-ui-43772f3e5bb531d917bec884bfbd0be196110fd8.zip
Merge branch 'master' into selectmenu
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/dialog/dialog.html2
-rw-r--r--tests/unit/dialog/dialog_core.js48
-rw-r--r--tests/unit/dialog/dialog_methods.js5
-rw-r--r--tests/unit/menu/menu_common.js2
-rw-r--r--tests/unit/menu/menu_events.js12
-rw-r--r--tests/unit/menu/menu_options.js9
6 files changed, 51 insertions, 27 deletions
diff --git a/tests/unit/dialog/dialog.html b/tests/unit/dialog/dialog.html
index 7943b425b..d8506a1bd 100644
--- a/tests/unit/dialog/dialog.html
+++ b/tests/unit/dialog/dialog.html
@@ -52,6 +52,8 @@
<div id="dialog1"></div>
<div id="dialog2"></div>
<div id="form-dialog" title="Profile Information">
+ <!-- create a spacer to ensure there's enough space to scroll -->
+ <div style="height: 250px;">...</div>
<fieldset>
<legend>Please share some personal information</legend>
<label for="favorite-animal">Your favorite animal</label><input id="favorite-animal">
diff --git a/tests/unit/dialog/dialog_core.js b/tests/unit/dialog/dialog_core.js
index e85759dc9..062d44576 100644
--- a/tests/unit/dialog/dialog_core.js
+++ b/tests/unit/dialog/dialog_core.js
@@ -40,7 +40,7 @@ test("widget method", function() {
});
asyncTest( "focus tabbable", function() {
- expect( 5 );
+ expect( 6 );
var element,
options = {
buttons: [{
@@ -50,6 +50,12 @@ asyncTest( "focus tabbable", function() {
};
function checkFocus( markup, options, testFn, next ) {
+
+ // Support: IE8
+ // For some reason the focus doesn't get set properly if we don't
+ // focus the body first.
+ $( "body" ).focus();
+
element = $( markup ).dialog( options );
setTimeout(function() {
testFn();
@@ -59,43 +65,57 @@ asyncTest( "focus tabbable", function() {
}
function step1() {
+ element = $( "<div><input><input></div>" ).dialog( options );
+ setTimeout(function() {
+ var input = element.find( "input:last" ).focus().blur();
+ element.dialog( "instance" )._focusTabbable();
+ setTimeout(function() {
+ equal( document.activeElement, input[ 0 ],
+ "1. an element that was focused previously." );
+ element.remove();
+ setTimeout( step2 );
+ });
+ });
+ }
+
+ function step2() {
checkFocus( "<div><input><input autofocus></div>", options, function() {
equal( document.activeElement, element.find( "input" )[ 1 ],
- "1. first element inside the dialog matching [autofocus]" );
- }, step2 );
+ "2. first element inside the dialog matching [autofocus]" );
+ }, step3 );
}
- function step2() {
+ function step3() {
checkFocus( "<div><input><input></div>", options, function() {
equal( document.activeElement, element.find( "input" )[ 0 ],
- "2. tabbable element inside the content element" );
- }, step3 );
+ "3. tabbable element inside the content element" );
+ }, step4 );
}
- function step3() {
+ function step4() {
checkFocus( "<div>text</div>", options, function() {
equal( document.activeElement,
element.dialog( "widget" ).find( ".ui-dialog-buttonpane button" )[ 0 ],
- "3. tabbable element inside the buttonpane" );
- }, step4 );
+ "4. tabbable element inside the buttonpane" );
+ }, step5 );
}
- function step4() {
+ function step5() {
checkFocus( "<div>text</div>", {}, function() {
equal( document.activeElement,
element.dialog( "widget" ).find( ".ui-dialog-titlebar .ui-dialog-titlebar-close" )[ 0 ],
- "4. the close button" );
- }, step5 );
+ "5. the close button" );
+ }, step6 );
}
- function step5() {
+ function step6() {
element = $( "<div>text</div>" ).dialog({
autoOpen: false
});
element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).hide();
element.dialog( "open" );
setTimeout(function() {
- equal( document.activeElement, element.parent()[ 0 ], "5. the dialog itself" );
+ equal( document.activeElement, element.parent()[ 0 ], "6. the dialog itself" );
element.remove();
start();
});
diff --git a/tests/unit/dialog/dialog_methods.js b/tests/unit/dialog/dialog_methods.js
index 8918e8d36..d315e5fc3 100644
--- a/tests/unit/dialog/dialog_methods.js
+++ b/tests/unit/dialog/dialog_methods.js
@@ -220,6 +220,11 @@ asyncTest( "#8958: dialog can be opened while opening", function() {
}
});
+ // Support: IE8
+ // For some reason the #favorite-color input doesn't get focus if we don't
+ // focus the body first, causing the test to hang.
+ $( "body" ).focus();
+
$( "#favorite-animal" )
// We focus the input to start the test. Once it receives focus, the
// dialog will open. Opening the dialog, will cause an element inside
diff --git a/tests/unit/menu/menu_common.js b/tests/unit/menu/menu_common.js
index 2404ebe02..099dd091e 100644
--- a/tests/unit/menu/menu_common.js
+++ b/tests/unit/menu/menu_common.js
@@ -7,7 +7,7 @@ TestHelpers.commonWidgetTests( "menu", {
items: "> *",
menus: "ul",
position: {
- my: "left top",
+ my: "left-1 top",
at: "right top"
},
role: "menu",
diff --git a/tests/unit/menu/menu_events.js b/tests/unit/menu/menu_events.js
index 0b89b86ac..9d74b4bbb 100644
--- a/tests/unit/menu/menu_events.js
+++ b/tests/unit/menu/menu_events.js
@@ -389,15 +389,15 @@ asyncTest( "handle keyboard navigation on menu with scroll and without submenus"
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
- equal( logOutput(), "keydown,10", "Keydown PAGE_DOWN" );
+ equal( logOutput(), "keydown,11", "Keydown PAGE_DOWN" );
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
- equal( logOutput(), "keydown,20", "Keydown PAGE_DOWN" );
+ equal( logOutput(), "keydown,22", "Keydown PAGE_DOWN" );
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
- equal( logOutput(), "keydown,10", "Keydown PAGE_UP" );
+ equal( logOutput(), "keydown,11", "Keydown PAGE_UP" );
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
@@ -484,15 +484,15 @@ asyncTest( "handle keyboard navigation on menu with scroll and with submenus", f
function menukeyboard3() {
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
- equal( logOutput(), "keydown,10", "Keydown PAGE_DOWN" );
+ equal( logOutput(), "keydown,11", "Keydown PAGE_DOWN" );
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_DOWN } );
- equal( logOutput(), "keydown,20", "Keydown PAGE_DOWN" );
+ equal( logOutput(), "keydown,22", "Keydown PAGE_DOWN" );
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
- equal( logOutput(), "keydown,10", "Keydown PAGE_UP" );
+ equal( logOutput(), "keydown,11", "Keydown PAGE_UP" );
log( "keydown", true );
element.simulate( "keydown", { keyCode: $.ui.keyCode.PAGE_UP } );
diff --git a/tests/unit/menu/menu_options.js b/tests/unit/menu/menu_options.js
index 527cc4784..c76673345 100644
--- a/tests/unit/menu/menu_options.js
+++ b/tests/unit/menu/menu_options.js
@@ -66,13 +66,12 @@ test( "{ icons: { submenu: 'custom' } }", function() {
test( "{ role: 'menu' } ", function() {
var element = $( "#menu1" ).menu(),
items = element.find( "li" );
- expect( 2 + 4 * items.length );
+ expect( 2 + 3 * items.length );
equal( element.attr( "role" ), "menu" );
ok( items.length > 0, "number of menu items" );
items.each(function( item ) {
ok( $( this ).hasClass( "ui-menu-item" ), "menu item ("+ item + ") class for item" );
equal( $( this ).attr( "role" ), "menuitem", "menu item ("+ item + ") role" );
- ok( $( this ).hasClass( "ui-corner-all" ), "class for menu item ("+ item + ")" );
equal( $( this ).attr( "tabindex" ), "-1", "tabindex for menu item ("+ item + ")" );
});
});
@@ -82,13 +81,12 @@ test( "{ role: 'listbox' } ", function() {
role: "listbox"
}),
items = element.find( "li" );
- expect( 2 + 4 * items.length );
+ expect( 2 + 3 * items.length );
equal( element.attr( "role" ), "listbox" );
ok( items.length > 0, "number of menu items" );
items.each(function( item ) {
ok( $( this ).hasClass( "ui-menu-item" ), "menu item ("+ item + ") class for item" );
equal( $( this ).attr( "role" ), "option", "menu item ("+ item + ") role" );
- ok( $( this ).hasClass( "ui-corner-all" ), "class for menu item ("+ item + ")" );
equal( $( this ).attr( "tabindex" ), "-1", "tabindex for menu item ("+ item + ")" );
});
});
@@ -98,13 +96,12 @@ test( "{ role: null }", function() {
role: null
}),
items = element.find( "li" );
- expect( 2 + 4 * items.length );
+ expect( 2 + 3 * items.length );
strictEqual( element.attr( "role" ), undefined );
ok( items.length > 0, "number of menu items" );
items.each(function( item ) {
ok( $( this ).hasClass( "ui-menu-item" ), "menu item ("+ item + ") class for item" );
equal( $( this ).attr( "role" ), undefined, "menu item ("+ item + ") role" );
- ok( $( this ).hasClass( "ui-corner-all" ), "class for menu item ("+ item + ")" );
equal( $( this ).attr( "tabindex" ), "-1", "tabindex for menu item ("+ item + ")" );
});
});