aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/tooltip
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/tooltip')
-rw-r--r--tests/unit/tooltip/tooltip.html5
-rw-r--r--tests/unit/tooltip/tooltip_common.js8
-rw-r--r--tests/unit/tooltip/tooltip_core.js63
-rw-r--r--tests/unit/tooltip/tooltip_events.js38
-rw-r--r--tests/unit/tooltip/tooltip_options.js53
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 ) );