define( [ "qunit", "jquery", "./helper", "ui/widgets/tooltip" ], function( QUnit, $, testHelper ) { "use strict"; var beforeAfterEach = testHelper.beforeAfterEach; QUnit.module( "tooltip: options", beforeAfterEach() ); QUnit.test( "disabled: true", function( assert ) { assert.expect( 1 ); $( "#tooltipped1" ).tooltip( { disabled: true } ).tooltip( "open" ); assert.equal( $( ".ui-tooltip" ).length, 0 ); } ); QUnit.test( "content: default", function( assert ) { assert.expect( 1 ); var element = $( "#tooltipped1" ).tooltip().tooltip( "open" ); assert.deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), "anchortitle" ); } ); QUnit.test( "content: default; HTML escaping", function( assert ) { assert.expect( 2 ); var scriptText = "", element = $( "#tooltipped1" ); $.ui.tooltip.hacked = false; element.attr( "title", scriptText ) .tooltip() .tooltip( "open" ); assert.equal( $.ui.tooltip.hacked, false, "script did not execute" ); assert.deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), scriptText, "correct tooltip text" ); } ); QUnit.test( "content: return string", function( assert ) { assert.expect( 1 ); var element = $( "#tooltipped1" ).tooltip( { content: function() { return "customstring"; } } ).tooltip( "open" ); assert.deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), "customstring" ); } ); QUnit.test( "content: return jQuery", function( assert ) { assert.expect( 2 ); var element = $( "#tooltipped1" ).tooltip( { content: function() { return $( "
this is a test of the emergency broadcast system.
", element = $( content )[ 0 ]; $( "#tooltipped1" ).tooltip( { content: element, open: function( event, ui ) { assert.equal( ui.tooltip.children().html().toLowerCase(), content ); } } ).tooltip( "open" ); } ); QUnit.test( "content: jQuery", function( assert ) { assert.expect( 1 ); var content = "this is a test of the emergency broadcast system.
", element = $( content ); $( "#tooltipped1" ).tooltip( { content: element, open: function( event, ui ) { assert.equal( ui.tooltip.children().html().toLowerCase(), content ); } } ).tooltip( "open" ); } ); QUnit.test( "items", function( assert ) { assert.expect( 2 ); var event, element = $( "#qunit-fixture" ).tooltip( { items: "#fixture-span" } ); event = $.Event( "mouseenter" ); event.target = $( "#fixture-span" )[ 0 ]; element.tooltip( "open", event ); assert.deepEqual( $( "#" + $( "#fixture-span" ).data( "ui-tooltip-id" ) ).text(), "title-text" ); // Make sure default [title] doesn't get used event.target = $( "#tooltipped1" )[ 0 ]; element.tooltip( "open", event ); assert.deepEqual( $( "#tooltipped1" ).data( "ui-tooltip-id" ), undefined ); element.tooltip( "destroy" ); } ); QUnit.test( "track + show delay", function( assert ) { assert.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 ); assert.close( parseFloat( $( ".ui-tooltip" ).css( "left" ) ), leftVal + offsetVal, 0.5, "left position" ); assert.close( parseFloat( $( ".ui-tooltip" ).css( "top" ) ), topVal + offsetVal, 0.5, "top position" ); } ); QUnit.test( "track and programmatic focus", function( assert ) { assert.expect( 1 ); $( "#qunit-fixture div input" ).tooltip( { track: true } ).trigger( "focus" ); assert.equal( "inputtitle", $( ".ui-tooltip" ).text() ); } ); } );