aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/editor/bubble_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/editor/bubble_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/editor/bubble_test.html264
1 files changed, 0 insertions, 264 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/editor/bubble_test.html b/contexts/data/lib/closure-library/closure/goog/ui/editor/bubble_test.html
deleted file mode 100644
index c26c23a..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/editor/bubble_test.html
+++ /dev/null
@@ -1,264 +0,0 @@
-<!DOCTYPE html>
-<!--
- All Rights Reserved.
-
- @author tildahl@google.com (Michael Tildahl)
- @author robbyw@google.com (Robby Walker)
--->
-<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.editor.Bubble</title>
-<script src="../../base.js"></script>
-<script>
- goog.require('goog.dom');
- goog.require('goog.dom.TagName');
- goog.require('goog.events.BrowserEvent');
- goog.require('goog.events.EventType');
- goog.require('goog.events.KeyCodes');
- goog.require('goog.string');
- goog.require('goog.style');
- goog.require('goog.testing.editor.TestHelper');
- goog.require('goog.testing.editor.FieldMock');
- goog.require('goog.testing.events');
- goog.require('goog.testing.jsunit');
- goog.require('goog.testing.LooseMock');
- goog.require('goog.ui.editor.Bubble');
- goog.require('goog.userAgent');
-</script>
-<link rel="stylesheet" type="text/css" href="../../css/editor/bubble.css">
-</head>
-<body>
-
-<div id="field"></div>
-
-<script>
-
-var testHelper;
-var fieldDiv = goog.dom.getElement('field');
-var bubble;
-var link;
-var link2;
-var panelId;
-
-function setUpPage() {
- var viewportSize = goog.dom.getViewportSize();
- // Some tests depends on enough size of viewport.
- if (viewportSize.width < 600 || viewportSize.height < 440) {
- window.moveTo(0, 0);
- window.resizeTo(640, 480);
- }
-};
-
-function setUp() {
- testHelper = new goog.testing.editor.TestHelper(fieldDiv);
- testHelper.setUpEditableElement();
-
- bubble = new goog.ui.editor.Bubble(document.body, 999);
-
- fieldDiv.innerHTML = '<a href="http://www.google.com">Google</a>' +
- '<a href="http://www.google.com">Google2</a>';
- link = fieldDiv.firstChild;
- link2 = fieldDiv.lastChild;
-
- window.scrollTo(0, 0);
- goog.style.setStyle(document.body, 'direction', 'ltr');
- goog.style.setStyle(document.getElementById('field'), 'position', 'static');
-}
-
-function tearDown() {
- if (panelId) {
- bubble.removePanel(panelId);
- }
- testHelper.tearDownEditableElement();
-}
-
-/**
- * This is a helper function for setting up the target element with a
- * given direction.
- *
- * @param {string} dir The direction of the target element, 'ltr' or 'rtl'.
- * @param {boolean=} opt_preferTopPosition Whether to prefer placing the bubble
- * above the element instead of below it. Defaults to preferring below.
- */
-function prepareTargetWithGivenDirection(dir, opt_preferTopPosition) {
- goog.style.setStyle(document.body, 'direction', dir);
-
- fieldDiv.style.direction = dir;
- fieldDiv.innerHTML = '<a href="http://www.google.com">Google</a>';
- link = fieldDiv.firstChild;
-
- panelId = bubble.addPanel('A', 'Link', link, function(el) {
- el.innerHTML = '<div style="border:1px solid blue;">B</div>';
- }, opt_preferTopPosition);
-}
-
-/**
- * This is a helper function for getting the expected position of the bubble.
- * (align to the right or the left of the target element). Align left by
- * default and align right if opt_alignRight is true. The expected Y is
- * unaffected by alignment.
- *
- * @param {boolean=} opt_alignRight Sets the expected alignment to be right.
- */
-function getExpectedBubblePositionWithGivenAlignment(opt_alignRight) {
- var targetPosition = goog.style.getFramedPageOffset(link, window);
- var targetWidth = link.offsetWidth;
- var bubbleSize = goog.style.getSize(bubble.bubbleContainer_);
- var expectedBubbleX = opt_alignRight ?
- targetPosition.x + targetWidth - bubbleSize.width : targetPosition.x;
- var expectedBubbleY = link.offsetHeight + targetPosition.y +
- goog.ui.editor.Bubble.VERTICAL_CLEARANCE_;
-
- return {
- x: expectedBubbleX,
- y: expectedBubbleY
- };
-}
-
-function testCreateBubbleWithLinkPanel() {
- var id = goog.string.createUniqueString();
- panelId = bubble.addPanel("A", "Link", link, function(container) {
- container.innerHTML = '<span id="' + id + '">Test</span>';
- });
- assertNotNull('Bubble should be created', bubble.bubbleContents_);
- assertNotNull('Added element should be present', goog.dom.getElement(id));
- assertTrue('Bubble should be visible', bubble.isVisible());
-}
-
-function testCloseBubble() {
- testCreateBubbleWithLinkPanel();
-
- var count = 0;
- goog.events.listen(bubble, goog.ui.Component.EventType.HIDE, function() {
- count++;
- });
-
- bubble.removePanel(panelId);
- panelId = null;
-
- assertFalse('Bubble should not be visible', bubble.isVisible());
- assertEquals('Hide event should be dispatched', 1, count);
-}
-
-function testCloseBox() {
- testCreateBubbleWithLinkPanel();
-
- var count = 0;
- goog.events.listen(bubble, goog.ui.Component.EventType.HIDE, function() {
- count++;
- });
-
- var closeBox = goog.dom.getElementsByTagNameAndClass(
- goog.dom.TagName.DIV, 'tr_bubble_closebox', bubble.bubbleContainer_)[0];
- goog.testing.events.fireClickSequence(closeBox);
- panelId = null;
-
- assertFalse('Bubble should not be visible', bubble.isVisible());
- assertEquals('Hide event should be dispatched', 1, count);
-}
-
-function testViewPortSizeMonitorEvent() {
- testCreateBubbleWithLinkPanel();
-
- var numCalled = 0;
- bubble.reposition = function() {
- numCalled++;
- };
-
- assertNotUndefined('viewPortSizeMonitor_ should not be undefined',
- bubble.viewPortSizeMonitor_);
- bubble.viewPortSizeMonitor_.dispatchEvent(goog.events.EventType.RESIZE);
-
- assertEquals('reposition not called', 1, numCalled);
-}
-
-function testBubblePositionPreferTop() {
- called = false;
- bubble.positionAtAnchor_ = function(targetCorner, bubbleCorner, overflow) {
- called = true;
-
- // Assert that the bubble is positioned below the target.
- assertEquals(goog.positioning.Corner.TOP_START, targetCorner);
- assertEquals(goog.positioning.Corner.BOTTOM_START, bubbleCorner);
-
- return goog.positioning.OverflowStatus.NONE;
- };
- prepareTargetWithGivenDirection('ltr', true);
- assertTrue(called);
-}
-
-function testBubblePosition() {
- panelId = bubble.addPanel('A', 'Link', link, goog.nullFunction);
- var CLEARANCE = goog.ui.editor.Bubble.VERTICAL_CLEARANCE_;
- var bubbleContainer = bubble.bubbleContainer_;
-
- // The field is at a normal place, alomost the top of the viewport, and
- // there is enough space at the bottom of the field.
- var targetPos = goog.style.getFramedPageOffset(link, window);
- var targetSize = goog.style.getSize(link);
- var pos = goog.style.getFramedPageOffset(bubbleContainer);
- assertEquals(targetPos.y + targetSize.height + CLEARANCE, pos.y);
- assertEquals(targetPos.x, pos.x);
-
- // Move the target to the bottom of the viewport.
- var field = document.getElementById('field');
- var fieldPos = goog.style.getFramedPageOffset(field, window);
- fieldPos.y += bubble.dom_.getViewportSize().height -
- (targetPos.y + targetSize.height);
- goog.style.setStyle(field, 'position', 'absolute');
- goog.style.setPosition(field, fieldPos);
- bubble.reposition();
- var bubbleSize = goog.style.getSize(bubbleContainer);
- targetPosition = goog.style.getFramedPageOffset(link, window);
- pos = goog.style.getFramedPageOffset(bubbleContainer);
- assertEquals(targetPosition.y - CLEARANCE - bubbleSize.height, pos.y);
-}
-
-function testBubblePositionRightAligned() {
- prepareTargetWithGivenDirection('rtl');
-
- var expectedPos = getExpectedBubblePositionWithGivenAlignment(true);
- var pos = goog.style.getFramedPageOffset(bubble.bubbleContainer_);
- assertEquals(expectedPos.x, pos.x);
- assertEquals(expectedPos.y, pos.y);
-}
-
-/**
- * Test for bug 1955511, the bubble should align to the right side
- * of the target element when the bubble is RTL, regardless of the
- * target element's directionality.
- */
-function testBubblePositionLeftToRight() {
- goog.style.setStyle(bubble.bubbleContainer_, 'direction', 'ltr');
- prepareTargetWithGivenDirection('rtl');
-
- var expectedPos = getExpectedBubblePositionWithGivenAlignment();
- var pos = goog.style.getFramedPageOffset(bubble.bubbleContainer_);
- assertEquals(expectedPos.x, pos.x);
- assertEquals(expectedPos.y, pos.y);
-}
-
-/**
- * Test for bug 1955511, the bubble should align to the left side
- * of the target element when the bubble is LTR, regardless of the
- * target element's directionality.
- */
-function testBubblePositionRightToLeft() {
- goog.style.setStyle(bubble.bubbleContainer_, 'direction', 'rtl');
- prepareTargetWithGivenDirection('ltr');
-
- var expectedPos = getExpectedBubblePositionWithGivenAlignment(true);
- var pos = goog.style.getFramedPageOffset(bubble.bubbleContainer_);
- assertEquals(expectedPos.x, pos.x);
- assertEquals(expectedPos.y, pos.y);
-}
-</script>
-</body>
-</html>