diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/advancedtooltip_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/ui/advancedtooltip_test.html | 296 |
1 files changed, 0 insertions, 296 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/advancedtooltip_test.html b/contexts/data/lib/closure-library/closure/goog/ui/advancedtooltip_test.html deleted file mode 100644 index 7e83357..0000000 --- a/contexts/data/lib/closure-library/closure/goog/ui/advancedtooltip_test.html +++ /dev/null @@ -1,296 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2008 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> - <title>Closure Unit Tests - goog.ui.AdvancedTooltip</title> - <script src="../base.js"></script> - <script> - goog.require('goog.dom'); - goog.require('goog.events.EventType'); - goog.require('goog.math.Box'); - goog.require('goog.math.Coordinate'); - goog.require('goog.style'); - goog.require('goog.testing.MockClock'); - goog.require('goog.testing.events'); - goog.require('goog.testing.jsunit'); - goog.require('goog.ui.AdvancedTooltip'); - goog.require('goog.userAgent'); - </script> -</head> -<body> - - -<p> - <span id="hovertarget">Hover Here For Popup - <span id="childtarget">Child of target</span> - </span> -</p> - -<p id="notpopup">Content</p> - -<script type="text/javascript"> - var att; - var clock; - var anchor; - var elsewhere; - var popup; - - var SHOWDELAY = 50; - var HIDEDELAY = 250; - var TRACKINGDELAY = 100; - - function isWindowTooSmall() { - // Firefox 3 fails if the window is too small. - return goog.userAgent.GECKO && - (window.innerWidth < 350 || window.innerHeight < 100); - } - - function setUp() { - popup = goog.dom.createDom('span', - {id: 'popup', style: 'position:absolute;top:300;left:300'}, 'Hello'); - att = new goog.ui.AdvancedTooltip('hovertarget'); - att.setElement(popup); - att.setCursorTracking(true); - att.setHotSpotPadding(new goog.math.Box(10, 10, 10, 10)); - att.setShowDelayMs(SHOWDELAY); - att.setHideDelayMs(HIDEDELAY); - att.setCursorTrackingHideDelayMs(TRACKINGDELAY); - att.setMargin(new goog.math.Box(300, 0, 0, 300)); - - clock = new goog.testing.MockClock(true); - - anchor = goog.dom.getElement('hovertarget'); - elsewhere = goog.dom.getElement('notpopup'); - } - - function tearDown() { - // tooltip needs to be hidden as well as disposed of so that it doesn't - // leave global state hanging around to trip up other tests. - if (att.isVisible()) { - att.onHide_(); - } - att.dispose(); - clock.uninstall(); - } - - function assertVisible(msg, element) { - if (element) { - assertEquals(msg, 'visible', element.style.visibility); - } else { - assertEquals('visible', msg.style.visibility); - } - } - - function assertHidden(msg, element) { - if (element) { - assertEquals(msg, 'hidden', element.style.visibility); - } else { - assertEquals('hidden', msg.style.visibility); - } - } - - /** - * Helper function to fire events related to moving a mouse from one element - * to another. Fires mouseout, mouseover, and mousemove event. - * @param {Element} from Element the mouse is moving from. - * @param {Element} to Element the mouse is moving to. - */ - function fireMouseEvents(from, to) { - goog.testing.events.fireMouseOutEvent(from, to); - goog.testing.events.fireMouseOverEvent(to, from); - var bounds = goog.style.getBounds(to); - goog.testing.events.fireMouseMoveEvent( - document, new goog.math.Coordinate(bounds.left + 1, bounds.top + 1)); - } - - function testCursorTracking() { - if (isWindowTooSmall()) { - return; - } - - var oneThirdOfTheWay, twoThirdsOfTheWay; - - oneThirdOfTheWay = new goog.math.Coordinate(100, 100); - twoThirdsOfTheWay = new goog.math.Coordinate(200, 200); - - goog.testing.events.fireMouseOverEvent(anchor, elsewhere); - clock.tick(SHOWDELAY); - assertVisible('Mouse over anchor should show popup', popup); - - goog.testing.events.fireMouseOutEvent(anchor, elsewhere); - goog.testing.events.fireMouseMoveEvent(document, oneThirdOfTheWay); - clock.tick(HIDEDELAY); - assertVisible("Moving mouse towards popup shouldn't hide it", popup); - - goog.testing.events.fireMouseMoveEvent(document, twoThirdsOfTheWay); - goog.testing.events.fireMouseMoveEvent(document, oneThirdOfTheWay); - clock.tick(TRACKINGDELAY); - assertHidden('Moving mouse away from popup should hide it', popup); - - goog.testing.events.fireMouseMoveEvent(document, twoThirdsOfTheWay); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, anchor)); - clock.tick(SHOWDELAY); - assertVisible('Set focus shows popup', popup); - goog.testing.events.fireMouseMoveEvent(document, oneThirdOfTheWay); - clock.tick(TRACKINGDELAY); - assertHidden('Mouse move after focus should hide popup', popup); - } - - function testPadding() { - if (isWindowTooSmall()) { - return; - } - - goog.testing.events.fireMouseOverEvent(anchor, elsewhere); - clock.tick(SHOWDELAY); - - var attBounds = goog.style.getBounds(popup); - var inPadding = new goog.math.Coordinate(attBounds.left - 5, - attBounds.top - 5); - var outOfPadding = new goog.math.Coordinate(attBounds.left - 15, - attBounds.top - 15); - - fireMouseEvents(anchor, popup); - goog.testing.events.fireMouseOutEvent(popup, elsewhere); - goog.testing.events.fireMouseMoveEvent(document, inPadding); - clock.tick(HIDEDELAY); - assertVisible("Mouse out of popup but within padding shouldn't hide it", - popup); - - goog.testing.events.fireMouseMoveEvent(document, outOfPadding); - clock.tick(HIDEDELAY); - assertHidden("Mouse move beyond popup padding should hide it", popup); - } - - - function testAnchorWithChild() { - var child = goog.dom.getElement('childtarget'); - - fireMouseEvents(elsewhere, anchor); - fireMouseEvents(anchor, child); - clock.tick(SHOWDELAY); - assertVisible('Mouse into child of anchor should still show popup', popup); - - fireMouseEvents(child, anchor); - clock.tick(HIDEDELAY); - assertVisible('Mouse from child to anchor should still show popup', popup); - } - - function testNestedTooltip() { - if (!isWindowTooSmall()) { - checkNestedTooltips(false); - } - } - - function testNestedAdvancedTooltip() { - if (!isWindowTooSmall()) { - checkNestedTooltips(true); - } - } - - function testResizingTooltipWhileShown() { - fireMouseEvents(elsewhere, anchor); - clock.tick(SHOWDELAY); - popup.style.height = '100px'; - var attBounds = goog.style.getBounds(popup); - var inPadding = new goog.math.Coordinate( - attBounds.left + 5, attBounds.top + attBounds.height + 5); - var outOfPadding = new goog.math.Coordinate( - attBounds.left + 5, attBounds.top + attBounds.height + 15); - - fireMouseEvents(anchor, popup); - goog.testing.events.fireMouseOutEvent(popup, elsewhere); - goog.testing.events.fireMouseMoveEvent(document, inPadding); - clock.tick(HIDEDELAY); - assertVisible("Mouse out of popup but within padding shouldn't hide it", - popup); - - goog.testing.events.fireMouseMoveEvent(document, outOfPadding); - clock.tick(HIDEDELAY); - assertHidden("Mouse move beyond popup padding should hide it", popup); - } - - function checkNestedTooltips(useAdvancedTooltip) { - popup.appendChild(goog.dom.createDom( - 'span', {id: 'nestedAnchor'}, 'Nested Anchor')); - var nestedAnchor = goog.dom.getElement('nestedAnchor'); - var nestedTooltip; - if (useAdvancedTooltip) { - nestedTooltip = new goog.ui.AdvancedTooltip(nestedAnchor, 'popup'); - } else { - nestedTooltip = new goog.ui.Tooltip(nestedAnchor, 'popup'); - } - var nestedPopup = nestedTooltip.getElement(); - nestedTooltip.setShowDelayMs(SHOWDELAY); - nestedTooltip.setHideDelayMs(HIDEDELAY); - - fireMouseEvents(elsewhere, anchor); - clock.tick(SHOWDELAY); - fireMouseEvents(anchor, popup); - fireMouseEvents(popup, nestedAnchor); - clock.tick(SHOWDELAY + HIDEDELAY); - assertVisible('Mouse into nested anchor should show popup', nestedPopup); - assertVisible('Mouse into nested anchor should not hide parent', popup); - fireMouseEvents(nestedAnchor, elsewhere); - clock.tick(HIDEDELAY); - assertHidden('Mouse out of nested popup should hide it', nestedPopup); - clock.tick(HIDEDELAY); - assertHidden('Mouse out of nested popup should eventually hide parent', - popup); - - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, anchor)); - clock.tick(SHOWDELAY); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.BLUR, anchor)); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, nestedAnchor)); - clock.tick(SHOWDELAY + HIDEDELAY); - assertVisible("Moving focus to child anchor doesn't hide parent", popup); - assertVisible('Set focus shows nested popup', nestedPopup); - - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.BLUR, nestedAnchor)); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, anchor)); - clock.tick(HIDEDELAY + HIDEDELAY); - assertHidden('Lose focus hides nested popup', nestedPopup); - assertVisible( - "Moving focus from nested anchor to parent doesn't hide parent", popup); - - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.BLUR, anchor)); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, nestedAnchor)); - clock.tick(SHOWDELAY); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.BLUR, nestedAnchor)); - clock.tick(HIDEDELAY); - assertHidden('Lose focus hides nested popup', nestedPopup); - clock.tick(HIDEDELAY); - assertHidden('Nested anchor losing focus hides parent', popup); - - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, anchor)); - clock.tick(SHOWDELAY); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.BLUR, anchor)); - goog.testing.events.fireBrowserEvent(new goog.events.Event( - goog.events.EventType.FOCUS, nestedAnchor)); - clock.tick(SHOWDELAY); - var coordElsewhere = new goog.math.Coordinate(1, 1); - goog.testing.events.fireMouseMoveEvent(document, coordElsewhere); - clock.tick(HIDEDELAY); - assertHidden('Mouse move should hide parent with active child', popup); - assertHidden('Mouse move should hide nested popup', nestedPopup); - } -</script> -</body> -</html> |