aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/hovercard_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/hovercard_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/hovercard_test.html360
1 files changed, 0 insertions, 360 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/hovercard_test.html b/contexts/data/lib/closure-library/closure/goog/ui/hovercard_test.html
deleted file mode 100644
index 7bc00c6..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/hovercard_test.html
+++ /dev/null
@@ -1,360 +0,0 @@
-<html>
-<!--
-Copyright 2010 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.HoverCard</title>
-
- <style type="text/css">
- .goog-tooltip {
- background: infobackground;
- color: infotext;
- border: 1px solid infotext;
- padding: 1px;
- font:menu;
- }
- </style>
-
- <script type="text/javascript" src="../base.js"></script>
- <script type="text/javascript">
- goog.require('goog.ui.HoverCard');
- goog.require('goog.dom');
- goog.require('goog.testing.MockClock');
- goog.require('goog.testing.events');
- goog.require('goog.testing.jsunit');
- </script>
-
- </head>
- <body>
- <p id="notpopup">Content</p>
- <span id="john" email="john@gmail.com">Span for John that can trigger a
- hovercard.</span><br>
- <span id="jane">Span for Jane that doesn't trigger a hovercard (no email
- attribute)</span><br>
- <span id="james" email="james@gmail.com">Span for James that can trigger a
- hovercard<span id="child">Child of james</span></span><br>
- <div id="bill" email="bill@gmail.com">Doesn't trigger for Bill because
- it's a div</div>
- <script type="text/javascript">
-
- var timer = new goog.testing.MockClock();
- var card;
-
- // Variables for mocks
- var triggeredElement;
- var cancelledElement;
- var showDelay;
- var shownCard;
- var hideDelay;
-
- // spans
- var john = goog.dom.getElement('john');
- var jane = goog.dom.getElement('jane');
- var james = goog.dom.getElement('james');
- var bill = goog.dom.getElement('bill');
- var child = goog.dom.getElement('child');
-
- // Inactive
- var elsewhere;
- var offAnchor;
-
- function setUp() {
- timer.install();
- triggeredElement = null;
- cancelledElement = null;
- showDelay = null;
- shownCard = null;
- hideDelay = null;
- elsewhere = goog.dom.getElement('notpopup');
- offAnchor = new goog.math.Coordinate(1, 1);
- }
-
- function initCard(opt_isAnchor, opt_checkChildren, opt_maxSearchSteps) {
- var isAnchor = opt_isAnchor || {SPAN: 'email'};
- card = new goog.ui.HoverCard(isAnchor, opt_checkChildren);
- card.setText('Test hovercard');
-
- if (opt_maxSearchSteps != null) {
- card.setMaxSearchSteps(opt_maxSearchSteps);
- }
-
- goog.events.listen(card, goog.ui.HoverCard.EventType.TRIGGER, onTrigger);
- goog.events.listen(card, goog.ui.HoverCard.EventType.CANCEL_TRIGGER,
- onCancel);
- goog.events.listen(card, goog.ui.HoverCard.EventType.BEFORE_SHOW,
- onBeforeShow);
-
- // This gets around the problem where AdvancedToolTip thinks it's
- // receiving a ghost event because cursor position hasn't moved off of
- // (0, 0).
- card.cursorPosition = new goog.math.Coordinate(1, 1);
- }
-
- // Event handlers
- function onTrigger(event) {
- triggeredElement = event.anchor;
- if (showDelay) {
- card.setShowDelayMs(showDelay);
- }
- return true;
- }
-
- function onCancel(event) {
- cancelledElement = event.anchor;
- }
-
- function onBeforeShow() {
- shownCard = card.getAnchorElement();
- if (hideDelay) {
- card.setHideDelayMs(hideDelay);
- }
- return true;
- }
-
- function tearDown() {
- card.dispose();
- timer.uninstall();
- }
-
- /**
- * Verify that hovercard displays and goes away under normal circumstances.
- */
- function testTrigger() {
- initCard();
-
- // Mouse over correct element fires trigger
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(john, elsewhere);
- assertEquals('Hovercard should have triggered', john,
- triggeredElement);
-
- // Show card after delay
- timer.tick(showDelay - 1);
- assertNull('Card should not have shown', shownCard);
- assertFalse(card.isVisible());
- hideDelay = 5000;
- timer.tick(1);
- assertEquals('Card should have shown', john, shownCard);
- assertTrue(card.isVisible());
-
- // Mouse out leads to hide delay
- goog.testing.events.fireMouseOutEvent(john, elsewhere);
- goog.testing.events.fireMouseMoveEvent(document, offAnchor);
- timer.tick(hideDelay - 1);
- assertTrue('Card should still be visible', card.isVisible());
- timer.tick(10);
- assertFalse('Card should be hidden', card.isVisible());
- }
-
- /**
- * Verify that CANCEL_TRIGGER event occurs when mouse goes out of
- * triggering element before hovercard is shown.
- */
- function testOnCancel() {
- initCard();
-
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(john, elsewhere);
- timer.tick(showDelay - 1);
- goog.testing.events.fireMouseOutEvent(john, elsewhere);
- goog.testing.events.fireMouseMoveEvent(document, offAnchor);
- timer.tick(10);
- assertFalse('Card should be hidden', card.isVisible());
- assertEquals('Should have cancelled trigger', john, cancelledElement);
- }
-
- /**
- * Verify that mousing over non-triggering elements don't interfere.
- */
- function testMouseOverNonTrigger() {
- initCard();
-
- // Mouse over correct element fires trigger
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(john, elsewhere);
- timer.tick(showDelay);
-
- // Mouse over and out other element does nothing
- triggeredElement = null;
- goog.testing.events.fireMouseOverEvent(jane, elsewhere);
- timer.tick(showDelay + 1);
- assertNull(triggeredElement);
- }
-
- /**
- * Verify that a mouse over event with no target will not break
- * hover card.
- */
- function testMouseOverNoTarget() {
- initCard();
- card.handleTriggerMouseOver_(new goog.testing.events.Event());
- }
-
- /**
- * Verify that mousing over a second trigger before the first one shows
- * will correctly cancel the first and show the second.
- */
- function testMultipleTriggers() {
- initCard();
-
- // Test second trigger when first one still pending
- showDelay = 500;
- hideDelay = 1000;
- goog.testing.events.fireMouseOverEvent(john, elsewhere);
- timer.tick(250);
- goog.testing.events.fireMouseOutEvent(john, james);
- goog.testing.events.fireMouseOverEvent(james, john);
- // First trigger should cancel because it isn't showing yet
- assertEquals('Should cancel first trigger', john, cancelledElement);
- timer.tick(300);
- assertFalse(card.isVisible());
- timer.tick(250);
- assertEquals('Should show second card', james, shownCard);
- assertTrue(card.isVisible());
-
- goog.testing.events.fireMouseOutEvent(james, john);
- goog.testing.events.fireMouseOverEvent(john, james);
- assertEquals('Should still show second card', james,
- card.getAnchorElement());
- assertTrue(card.isVisible());
-
- shownCard = null;
- timer.tick(501);
- assertEquals('Should show first card again', john, shownCard);
- assertTrue(card.isVisible());
-
- // Test that cancelling while another is showing gives correct cancel
- // information
- cancelledElement = null;
- goog.testing.events.fireMouseOutEvent(john, james);
- goog.testing.events.fireMouseOverEvent(james, john);
- goog.testing.events.fireMouseOutEvent(james, elsewhere);
- assertEquals('Should cancel second card', james, cancelledElement);
- }
-
- /**
- * Verify manual triggering.
- */
- function testManualTrigger() {
- initCard();
-
- // Doesn't normally trigger for div tag
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(bill, elsewhere);
- timer.tick(showDelay);
- assertFalse(card.isVisible());
-
- // Manually trigger element
- card.triggerForElement(bill);
- hideDelay = 600;
- timer.tick(showDelay);
- assertTrue(card.isVisible());
- goog.testing.events.fireMouseOutEvent(bill, elsewhere);
- goog.testing.events.fireMouseMoveEvent(document, offAnchor);
- timer.tick(hideDelay);
- assertFalse(card.isVisible());
- }
-
- /**
- * Verify creating with isAnchor function.
- */
- function testIsAnchor() {
- // Initialize card so only bill triggers it.
- initCard(function(element) {
- return element == bill;
- });
-
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(bill, elsewhere);
- timer.tick(showDelay);
- assertTrue('Should trigger card', card.isVisible());
-
- hideDelay = 300;
- goog.testing.events.fireMouseOutEvent(bill, elsewhere);
- goog.testing.events.fireMouseMoveEvent(document, offAnchor);
- timer.tick(hideDelay);
- assertFalse(card.isVisible());
-
- goog.testing.events.fireMouseOverEvent(john, elsewhere);
- timer.tick(showDelay);
- assertFalse('Should not trigger card', card.isVisible());
- }
-
- /**
- * Verify mouse over child of anchor triggers hovercard.
- */
- function testAnchorWithChildren() {
- initCard();
-
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(james, elsewhere);
- timer.tick(250);
-
- // Moving from an anchor to a child of that anchor shouldn't cancel
- // or retrigger.
- var childBounds = goog.style.getBounds(child);
- var inChild = new goog.math.Coordinate(childBounds.left + 1,
- childBounds.top + 1);
- goog.testing.events.fireMouseOutEvent(james, child);
- goog.testing.events.fireMouseMoveEvent(child, inChild);
- assertNull("Shouldn't cancel trigger", cancelledElement);
- triggeredElement = null;
- goog.testing.events.fireMouseOverEvent(child, james);
- assertNull("Shouldn't retrigger card", triggeredElement);
- timer.tick(250);
- assertTrue('Card should show with original delay', card.isVisible());
-
- hideDelay = 300;
- goog.testing.events.fireMouseOutEvent(child, elsewhere);
- goog.testing.events.fireMouseMoveEvent(child, offAnchor);
- timer.tick(hideDelay);
- assertFalse(card.isVisible());
-
- goog.testing.events.fireMouseOverEvent(child, elsewhere);
- timer.tick(showDelay);
- assertTrue('Mouse over child should trigger card', card.isVisible());
- }
-
- function testNoTriggerWithMaxSearchSteps() {
- initCard(undefined, true, 0);
-
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(child, elsewhere);
- timer.tick(showDelay);
- assertFalse('Should not trigger card', card.isVisible());
- }
-
- function testTriggerWithMaxSearchSteps() {
- initCard(undefined, true, 2);
-
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(child, elsewhere);
- timer.tick(showDelay);
- assertTrue('Should trigger card', card.isVisible());
- }
-
- function testPositionAfterSecondTriggerWithMaxSearchSteps() {
- initCard(undefined, true, 2);
-
- showDelay = 500;
- goog.testing.events.fireMouseOverEvent(john, elsewhere);
- timer.tick(showDelay);
- assertTrue('Should trigger card', card.isVisible());
- assertEquals('Card cursor x coordinate should be 1',
- card.position_.coordinate.x, 1);
- card.cursorPosition = new goog.math.Coordinate(2, 2);
- goog.testing.events.fireMouseOverEvent(child, elsewhere);
- timer.tick(showDelay);
- assertTrue('Should trigger card', card.isVisible());
- assertEquals('Card cursor x coordinate should be 2',
- card.position_.coordinate.x, 2);
- }
-
- </script>
- </body>
-</html>