diff options
Diffstat (limited to 'tests/unit/tooltip')
-rw-r--r-- | tests/unit/tooltip/tooltip.html | 5 | ||||
-rw-r--r-- | tests/unit/tooltip/tooltip_common.js | 8 | ||||
-rw-r--r-- | tests/unit/tooltip/tooltip_core.js | 63 | ||||
-rw-r--r-- | tests/unit/tooltip/tooltip_events.js | 38 | ||||
-rw-r--r-- | tests/unit/tooltip/tooltip_options.js | 53 |
5 files changed, 130 insertions, 37 deletions
diff --git a/tests/unit/tooltip/tooltip.html b/tests/unit/tooltip/tooltip.html index f6e60b367..ec616be13 100644 --- a/tests/unit/tooltip/tooltip.html +++ b/tests/unit/tooltip/tooltip.html @@ -43,8 +43,13 @@ <input title="inputtitle"> <span id="multiple-describedby" aria-describedby="fixture-span" title="...">aria-describedby</span> <span id="fixture-span" title="title-text">span</span> + <span id="contains-tooltipped" title="parent"><span id="contained-tooltipped" title="child">baz</span></span> </div> +<form id="tooltip-form"> + <input name="title" title="attroperties"> +</form> + </div> </body> </html> diff --git a/tests/unit/tooltip/tooltip_common.js b/tests/unit/tooltip/tooltip_common.js index 6d503aecd..2d6ea91ec 100644 --- a/tests/unit/tooltip/tooltip_common.js +++ b/tests/unit/tooltip/tooltip_common.js @@ -3,11 +3,11 @@ TestHelpers.commonWidgetTests( "tooltip", { content: function() {}, disabled: false, hide: true, - items: "[title]", + items: "[title]:not([disabled])", position: { - my: "left+15 center", - at: "right center", - collision: "flipfit flipfit" + my: "left top+15", + at: "left bottom", + collision: "flipfit flip" }, show: true, tooltipClass: null, diff --git a/tests/unit/tooltip/tooltip_core.js b/tests/unit/tooltip/tooltip_core.js index 2b39253a2..69936dba2 100644 --- a/tests/unit/tooltip/tooltip_core.js +++ b/tests/unit/tooltip/tooltip_core.js @@ -44,4 +44,67 @@ test( "accessibility", function() { equal( element.attr( "title" ), "...", "title restored when closed" ); }); +test( "delegated removal", function() { + expect( 2 ); + + var container = $( "#contains-tooltipped" ).tooltip(), + element = $( "#contained-tooltipped" ); + + element.trigger( "mouseover" ); + equal( $( ".ui-tooltip" ).length, 1 ); + + container.empty(); + equal( $( ".ui-tooltip" ).length, 0 ); +}); + +test( "nested tooltips", function() { + expect( 2 ); + + var child = $( "#contained-tooltipped" ), + parent = $( "#contains-tooltipped" ).tooltip({ + show: null, + hide: null + }); + + parent.trigger( "mouseover" ); + equal( $( ".ui-tooltip:visible" ).text(), "parent" ); + + child.trigger( "mouseover" ); + equal( $( ".ui-tooltip" ).text(), "child" ); +}); + +// #8742 +test( "form containing an input with name title", function() { + expect( 4 ); + + var form = $( "#tooltip-form" ).tooltip({ + show: null, + hide: null + }), + input = form.find( "[name=title]" ); + + equal( $( ".ui-tooltip" ).length, 0, "no tooltips on init" ); + + input.trigger( "mouseover" ); + equal( $( ".ui-tooltip" ).length, 1, "tooltip for input" ); + input.trigger( "mouseleave" ); + equal( $( ".ui-tooltip" ).length, 0, "tooltip for input closed" ); + + form.trigger( "mouseover" ); + equal( $( ".ui-tooltip" ).length, 0, "no tooltip for form" ); +}); + +test( "tooltip on .ui-state-disabled element", function() { + expect( 2 ); + + var container = $( "#contains-tooltipped" ).tooltip(), + element = $( "#contained-tooltipped" ).addClass( "ui-state-disabled" ); + + element.trigger( "mouseover" ); + equal( $( ".ui-tooltip" ).length, 1 ); + + container.empty(); + equal( $( ".ui-tooltip" ).length, 0 ); +}); + }( jQuery ) ); diff --git a/tests/unit/tooltip/tooltip_events.js b/tests/unit/tooltip/tooltip_events.js index fc5f1acc5..de16471ae 100644 --- a/tests/unit/tooltip/tooltip_events.js +++ b/tests/unit/tooltip/tooltip_events.js @@ -26,14 +26,15 @@ test( "mouse events", function() { expect( 2 ); var element = $( "#tooltipped1" ).tooltip(); - element.one( "tooltipopen", function( event ) { + element.bind( "tooltipopen", function( event ) { deepEqual( event.originalEvent.type, "mouseover" ); }); element.trigger( "mouseover" ); - element.one( "tooltipclose", function( event ) { + element.bind( "tooltipclose", function( event ) { deepEqual( event.originalEvent.type, "mouseleave" ); }); + element.trigger( "focusout" ); element.trigger( "mouseleave" ); }); @@ -41,43 +42,16 @@ test( "focus events", function() { expect( 2 ); var element = $( "#tooltipped1" ).tooltip(); - element.one( "tooltipopen", function( event ) { + element.bind( "tooltipopen", function( event ) { deepEqual( event.originalEvent.type, "focusin" ); }); element.trigger( "focusin" ); - element.one( "tooltipclose", function( event ) { - deepEqual( event.originalEvent.type, "focusout" ); - }); - element.trigger( "focusout" ); -}); - -asyncTest( "mixed events", function() { - expect( 2 ); - var element = $( "#tooltipped1" ).tooltip(); - - element.one( "tooltipopen", function( event ) { - deepEqual( event.originalEvent.type, "focusin" ); - }); - element.simulate( "focus" ); - - element.one( "tooltipopen", function() { - ok( false, "open triggered while already open" ); - }); - element.trigger( "mouseover" ); - element.bind( "tooltipclose", function( event ) { - ok( false, "close triggered while still focused" ); - }); - element.trigger( "mouseleave" ); - element.unbind( "tooltipclose" ); - - // blurring is async in IE - element.one( "tooltipclose", function( event ) { deepEqual( event.originalEvent.type, "focusout" ); - start(); }); - element.simulate( "blur" ); + element.trigger( "mouseleave" ); + element.trigger( "focusout" ); }); }( jQuery ) ); diff --git a/tests/unit/tooltip/tooltip_options.js b/tests/unit/tooltip/tooltip_options.js index db193e8fa..f9da27fb7 100644 --- a/tests/unit/tooltip/tooltip_options.js +++ b/tests/unit/tooltip/tooltip_options.js @@ -2,6 +2,14 @@ module( "tooltip: options" ); +test( "disabled: true", function() { + expect( 1 ); + $( "#tooltipped1" ).tooltip({ + disabled: true + }).tooltip( "open" ); + equal( $( ".ui-tooltip" ).length, 0 ); +}); + test( "content: default", function() { expect( 1 ); var element = $( "#tooltipped1" ).tooltip().tooltip( "open" ); @@ -67,7 +75,7 @@ test( "content: change while open", function() { test( "content: string", function() { expect( 1 ); - var element = $( "#tooltipped1" ).tooltip({ + $( "#tooltipped1" ).tooltip({ content: "just a string", open: function( event, ui ) { equal( ui.tooltip.text(), "just a string" ); @@ -103,4 +111,47 @@ test( "tooltipClass", function() { ok( $( "#" + element.data( "ui-tooltip-id" ) ).hasClass( "custom" ) ); }); +test( "track + show delay", function() { + expect( 2 ); + var event, + leftVal = 314, + topVal = 159, + offsetVal = 26, + element = $( "#tooltipped1" ).tooltip({ + track: true, + show: { + delay: 1 + }, + position: { + my: "left+" + offsetVal + " top+" + offsetVal, + at: "right bottom" + } + }); + + event = $.Event( "mouseover" ); + event.target = $( "#tooltipped1" )[ 0 ]; + event.originalEvent = { type: "mouseover" }; + event.pageX = leftVal; + event.pageY = topVal; + element.trigger( event ); + + event = $.Event( "mousemove" ); + event.target = $( "#tooltipped1" )[ 0 ]; + event.originalEvent = { type: "mousemove" }; + event.pageX = leftVal; + event.pageY = topVal; + element.trigger( event ); + + equal( $( ".ui-tooltip" ).css( "left" ), leftVal + offsetVal + "px" ); + equal( $( ".ui-tooltip" ).css( "top" ), topVal + offsetVal + "px" ); +}); + +test( "track and programmatic focus", function() { + expect( 1 ); + $( "#qunit-fixture div input" ).tooltip({ + track: true + }).focus(); + equal( "inputtitle", $( ".ui-tooltip" ).text() ); +}); + }( jQuery ) ); |