diff options
Diffstat (limited to '97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip')
7 files changed, 565 insertions, 0 deletions
| diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/all.html b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/all.html new file mode 100644 index 0000000..2b1ce50 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/all.html @@ -0,0 +1,30 @@ +<!doctype html> +<html lang="en"> +<head> +	<meta charset="utf-8"> +	<title>jQuery UI Tooltip Test Suite</title> + +	<script src="../../../jquery-1.9.1.js"></script> + +	<link rel="stylesheet" href="../../../external/qunit.css"> +	<link rel="stylesheet" href="../qunit-composite.css"> +	<script src="../../../external/qunit.js"></script> +	<script src="../qunit-composite.js"></script> +	<script src="../subsuite.js"></script> + +	<script> +	testAllVersions( "tooltip" ); +	</script> +</head> +<body> + +<h1 id="qunit-header">jQuery UI Tooltip Test Suite</h1> +<h2 id="qunit-banner"></h2> +<div id="qunit-testrunner-toolbar"></div> +<h2 id="qunit-userAgent"></h2> +<ol id="qunit-tests"></ol> +<div id="qunit-fixture"> + +</div> +</body> +</html> diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip.html b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip.html new file mode 100644 index 0000000..ec616be --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip.html @@ -0,0 +1,55 @@ +<!doctype html> +<html lang="en"> +<head> +	<meta charset="utf-8"> +	<title>jQuery UI Tooltip Test Suite</title> + +	<script src="../../jquery.js"></script> +	<link rel="stylesheet" href="../../../external/qunit.css"> +	<script src="../../../external/qunit.js"></script> +	<script src="../../jquery.simulate.js"></script> +	<script src="../testsuite.js"></script> +	<script> +	TestHelpers.loadResources({ +		css: [ "ui.core", "ui.tooltip" ], +		js: [ +			"ui/jquery.ui.core.js", +			"ui/jquery.ui.widget.js", +			"ui/jquery.ui.position.js", +			"ui/jquery.ui.tooltip.js" +		] +	}); +	</script> + +	<script src="tooltip_common.js"></script> +	<script src="tooltip_core.js"></script> +	<script src="tooltip_events.js"></script> +	<script src="tooltip_methods.js"></script> +	<script src="tooltip_options.js"></script> + +	<script src="../swarminject.js"></script> +</head> +<body> + +<h1 id="qunit-header">jQuery UI Tooltip Test Suite</h1> +<h2 id="qunit-banner"></h2> +<div id="qunit-testrunner-toolbar"></div> +<h2 id="qunit-userAgent"></h2> +<ol id="qunit-tests"></ol> +<div id="qunit-fixture"> + +<div> +	<a id="tooltipped1" href="#" title="anchortitle">anchor</a> +	<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/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_common.js b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_common.js new file mode 100644 index 0000000..2d6ea91 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_common.js @@ -0,0 +1,21 @@ +TestHelpers.commonWidgetTests( "tooltip", { +	defaults: { +		content: function() {}, +		disabled: false, +		hide: true, +		items: "[title]:not([disabled])", +		position: { +			my: "left top+15", +			at: "left bottom", +			collision: "flipfit flip" +		}, +		show: true, +		tooltipClass: null, +		track: false, + +		// callbacks +		close: null, +		create: null, +		open: null +	} +}); diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_core.js b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_core.js new file mode 100644 index 0000000..c3568bf --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_core.js @@ -0,0 +1,137 @@ +(function( $ ) { + +module( "tooltip: core" ); + +test( "markup structure", function() { +	expect( 7 ); +	var element = $( "#tooltipped1" ).tooltip(), +		tooltip = $( ".ui-tooltip" ); + +	equal( element.attr( "aria-describedby" ), undefined, "no aria-describedby on init" ); +	equal( tooltip.length, 0, "no tooltip on init" ); + +	element.tooltip( "open" ); +	tooltip = $( "#" + element.data( "ui-tooltip-id" ) ); +	equal( tooltip.length, 1, "tooltip exists" ); +	equal( element.attr( "aria-describedby"), tooltip.attr( "id" ), "aria-describedby" ); +	ok( tooltip.hasClass( "ui-tooltip" ), "tooltip is .ui-tooltip" ); +	equal( tooltip.length, 1, ".ui-tooltip exists" ); +	equal( tooltip.find( ".ui-tooltip-content" ).length, 1, +		".ui-tooltip-content exists" ); +}); + +test( "accessibility", function() { +	expect( 5 ); + +	var tooltipId, +		tooltip, +		element = $( "#multiple-describedby" ).tooltip(); + +	element.tooltip( "open" ); +	tooltipId = element.data( "ui-tooltip-id" ); +	tooltip = $( "#" + tooltipId ); +	equal( tooltip.attr( "role" ), "tooltip", "role" ); +	equal( element.attr( "aria-describedby" ), "fixture-span " + tooltipId, +		"multiple describedby when open" ); +	// strictEqual to distinguish between .removeAttr( "title" ) and .attr( "title", "" ) +	// support: jQuery <1.6.2 +	// support: IE <8 +	// We should use strictEqual( ..., undefined ) when dropping jQuery 1.6.1 support (or IE6/7) +	ok( !element.attr( "title" ), "no title when open" ); +	element.tooltip( "close" ); +	equal( element.attr( "aria-describedby" ), "fixture-span", +		"correct describedby when closed" ); +	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 ); +}); + +// http://bugs.jqueryui.com/ticket/8740 +asyncTest( "programmatic focus with async content", function() { +	expect( 2 ); +	var element = $( "#tooltipped1" ).tooltip({ +		content: function( response ) { +			setTimeout(function() { +				response( "test" ); +			}); +		} +	}); + +	element.bind( "tooltipopen", function( event ) { +		deepEqual( event.originalEvent.type, "focusin" ); + +		element.bind( "tooltipclose", function( event ) { +			deepEqual( event.originalEvent.type, "focusout" ); +			start(); +		}); + +		setTimeout(function() { +			element.blur(); +		}); +	}); + +	element.focus(); +}); + +}( jQuery ) ); diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_events.js b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_events.js new file mode 100644 index 0000000..de16471 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_events.js @@ -0,0 +1,57 @@ +(function( $ ) { + +module( "tooltip: events" ); + +test( "programmatic triggers", function() { +	expect( 4 ); +	var tooltip, +		element = $( "#tooltipped1" ).tooltip(); + +	element.one( "tooltipopen", function( event, ui ) { +		tooltip = ui.tooltip; +		ok( !( "originalEvent" in event ), "open" ); +		strictEqual( ui.tooltip[0], +			$( "#" + element.data( "ui-tooltip-id" ) )[0], "ui.tooltip" ); +	}); +	element.tooltip( "open" ); + +	element.one( "tooltipclose", function( event, ui ) { +		ok( !( "originalEvent" in event ), "close" ); +		strictEqual( ui.tooltip[0], tooltip[0], "ui.tooltip" ); +	}); +	element.tooltip( "close" ); +}); + +test( "mouse events", function() { +	expect( 2 ); +	var element = $( "#tooltipped1" ).tooltip(); + +	element.bind( "tooltipopen", function( event ) { +		deepEqual( event.originalEvent.type, "mouseover" ); +	}); +	element.trigger( "mouseover" ); + +	element.bind( "tooltipclose", function( event ) { +		deepEqual( event.originalEvent.type, "mouseleave" ); +	}); +	element.trigger( "focusout" ); +	element.trigger( "mouseleave" ); +}); + +test( "focus events", function() { +	expect( 2 ); +	var element = $( "#tooltipped1" ).tooltip(); + +	element.bind( "tooltipopen", function( event ) { +		deepEqual( event.originalEvent.type, "focusin" ); +	}); +	element.trigger( "focusin" ); + +	element.bind( "tooltipclose", function( event ) { +		deepEqual( event.originalEvent.type, "focusout" ); +	}); +	element.trigger( "mouseleave" ); +	element.trigger( "focusout" ); +}); + +}( jQuery ) ); diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_methods.js b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_methods.js new file mode 100644 index 0000000..c846d21 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_methods.js @@ -0,0 +1,94 @@ +(function( $ ) { + +module( "tooltip: methods" ); + +test( "destroy", function() { +	expect( 3 ); +	var element = $( "#tooltipped1" ); + +	domEqual( "#tooltipped1", function() { +		element.tooltip().tooltip( "destroy" ); +	}); + +	// make sure that open tooltips are removed on destroy +	domEqual( "#tooltipped1", function() { +		element +			.tooltip() +			.tooltip( "open", $.Event( "mouseover", { target: element[0] }) ) +			.tooltip( "destroy" ); +	}); +	equal( $( ".ui-tooltip" ).length, 0 ); +}); + +test( "open/close", function() { +	expect( 3 ); +	$.fx.off = true; +	var tooltip, +		element = $( "#tooltipped1" ).tooltip(); +	equal( $( ".ui-tooltip" ).length, 0, "no tooltip on init" ); + +	element.tooltip( "open" ); +	tooltip = $( "#" + element.data( "ui-tooltip-id" ) ); +	ok( tooltip.is( ":visible" ) ); + +	element.tooltip( "close" ); +	ok( tooltip.is( ":hidden" ) ); +	$.fx.off = false; +}); + +// #8626 - Calling open() without an event +test( "open/close with tracking", function() { +	expect( 3 ); +	$.fx.off = true; +	var tooltip, +		element = $( "#tooltipped1" ).tooltip({ track: true }); +	equal( $( ".ui-tooltip" ).length, 0, "no tooltip on init" ); + +	element.tooltip( "open" ); +	tooltip = $( "#" + element.data( "ui-tooltip-id" ) ); +	ok( tooltip.is( ":visible" ) ); + +	element.tooltip( "close" ); +	ok( tooltip.is( ":hidden" ) ); +	$.fx.off = false; +}); + +test( "enable/disable", function() { +	expect( 7 ); +	$.fx.off = true; +	var tooltip, +		element = $( "#tooltipped1" ).tooltip(); +	equal( $( ".ui-tooltip" ).length, 0, "no tooltip on init" ); + +	element.tooltip( "open" ); +	tooltip = $( "#" + element.data( "ui-tooltip-id" ) ); +	ok( tooltip.is( ":visible" ) ); + +	element.tooltip( "disable" ); +	equal( $( ".ui-tooltip" ).length, 0, "no tooltip when disabled" ); +	// support: jQuery <1.6.2 +	// support: IE <8 +	// We should use strictEqual( ..., undefined ) when dropping jQuery 1.6.1 support (or IE6/7) +	ok( !tooltip.attr( "title" ), "title removed on disable" ); + +	element.tooltip( "open" ); +	equal( $( ".ui-tooltip" ).length, 0, "open does nothing when disabled" ); + +	element.tooltip( "enable" ); +	equal( element.attr( "title" ), "anchortitle", "title restored on enable" ); + +	element.tooltip( "open" ); +	tooltip = $( "#" + element.data( "ui-tooltip-id" ) ); +	ok( tooltip.is( ":visible" ) ); +	$.fx.off = false; +}); + +test( "widget", function() { +	expect( 2 ); +	var element = $( "#tooltipped1" ).tooltip(), +		widgetElement = element.tooltip( "widget" ); +	equal( widgetElement.length, 1, "one element" ); +	strictEqual( widgetElement[ 0 ], element[ 0 ], "same element" ); +}); + +}( jQuery ) ); diff --git a/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_options.js b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_options.js new file mode 100644 index 0000000..01ac250 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/jquery-ui/tests/unit/tooltip/tooltip_options.js @@ -0,0 +1,171 @@ +(function( $ ) { + +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" ); +	deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), "anchortitle" ); +}); + +test( "content: default; HTML escaping", function() { +	expect( 2 ); +	var scriptText = "<script>$.ui.tooltip.hacked = true;</script>", +		element = $( "#tooltipped1" ); + +	$.ui.tooltip.hacked = false; +	element.attr( "title", scriptText ) +		.tooltip() +		.tooltip( "open" ); +	equal( $.ui.tooltip.hacked, false, "script did not execute" ); +	deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), scriptText, +		"correct tooltip text" ); +}); + +test( "content: return string", function() { +	expect( 1 ); +	var element = $( "#tooltipped1" ).tooltip({ +		content: function() { +			return "customstring"; +		} +	}).tooltip( "open" ); +	deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), "customstring" ); +}); + +test( "content: return jQuery", function() { +	expect( 1 ); +	var element = $( "#tooltipped1" ).tooltip({ +		content: function() { +			return $( "<div>" ).html( "cu<b>s</b>tomstring" ); +		} +	}).tooltip( "open" ); +	deepEqual( $( "#" + element.data( "ui-tooltip-id" ) ).text(), "customstring" ); +}); + +asyncTest( "content: sync + async callback", function() { +	expect( 2 ); +	var element = $( "#tooltipped1" ).tooltip({ +		content: function( response ) { +			setTimeout(function() { +				deepEqual( $( "#" + element.data("ui-tooltip-id") ).text(), "loading..." ); + +				response( "customstring2" ); +				setTimeout(function() { +					deepEqual( $( "#" + element.data("ui-tooltip-id") ).text(), "customstring2" ); +					start(); +				}, 13 ); +			}, 13 ); +			return "loading..."; +		} +	}).tooltip( "open" ); +}); + +test( "content: change while open", function() { +	expect( 2 ) ; +	var element = $( "#tooltipped1" ).tooltip({ +		content: function() { +			return "old"; +		} +	}); + +	element.one( "tooltipopen", function( event, ui ) { +		equal( ui.tooltip.text(), "old", "original content" ); +		element.tooltip( "option", "content", function() { +			return "new"; +		}); +		equal( ui.tooltip.text(), "new", "updated content" ); +	}); + +	element.tooltip( "open" ); +}); + +test( "content: string", function() { +	expect( 1 ); +	$( "#tooltipped1" ).tooltip({ +		content: "just a string", +		open: function( event, ui ) { +			equal( ui.tooltip.text(), "just a string" ); +		} +	}).tooltip( "open" ); +}); + +test( "items", function() { +	expect( 2 ); +	var event, +		element = $( "#qunit-fixture" ).tooltip({ +			items: "#fixture-span" +		}); + +	event = $.Event( "mouseenter" ); +	event.target = $( "#fixture-span" )[ 0 ]; +	element.tooltip( "open", event ); +	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 ); +	deepEqual( $( "#tooltipped1" ).data( "ui-tooltip-id" ), undefined ); + +	element.tooltip( "destroy" ); +}); + +test( "tooltipClass", function() { +	expect( 1 ); +	var element = $( "#tooltipped1" ).tooltip({ +		tooltipClass: "custom" +	}).tooltip( "open" ); +	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 ) ); | 
