aboutsummaryrefslogtreecommitdiff
path: root/contexts/data/lib/closure-library/closure/goog/ui/editor/linkdialog_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/ui/editor/linkdialog_test.html')
-rw-r--r--contexts/data/lib/closure-library/closure/goog/ui/editor/linkdialog_test.html604
1 files changed, 0 insertions, 604 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/ui/editor/linkdialog_test.html b/contexts/data/lib/closure-library/closure/goog/ui/editor/linkdialog_test.html
deleted file mode 100644
index 80e6571..0000000
--- a/contexts/data/lib/closure-library/closure/goog/ui/editor/linkdialog_test.html
+++ /dev/null
@@ -1,604 +0,0 @@
-<!DOCTYPE html>
-<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>goog.ui.editor.LinkDialog Tests</title>
-<script src="../../base.js"></script>
-<script>
- goog.require('goog.dom');
- goog.require('goog.dom.DomHelper');
- goog.require('goog.editor.BrowserFeature');
- goog.require('goog.editor.Link');
- goog.require('goog.events.Event');
- goog.require('goog.events.EventHandler');
- goog.require('goog.math.Size');
- goog.require('goog.testing.MockControl');
- goog.require('goog.testing.PropertyReplacer');
- goog.require('goog.testing.dom');
- goog.require('goog.testing.events');
- goog.require('goog.testing.jsunit');
- goog.require('goog.testing.mockmatchers');
- goog.require('goog.testing.mockmatchers.ArgumentMatcher');
- goog.require('goog.ui.editor.AbstractDialog.EventType');
- goog.require('goog.ui.editor.LinkDialog');
- goog.require('goog.ui.editor.LinkDialog.OkEvent');
- goog.require('goog.ui.editor.messages');
-</script>
-<link rel="stylesheet" href="../../css/dialog.css"/>
-<link rel="stylesheet" href="../../css/linkbutton.css"/>
-<link rel="stylesheet" href="../../css/editor/dialog.css"/>
-<link rel="stylesheet" href="../../css/editor/linkdialog.css"/>
-</head>
-<body>
- <iframe id="appWindowIframe" src="javascript:''"></iframe>
-<script>
-
- var dialog;
- var mockCtrl;
- var mockLink;
- var mockOkHandler;
- var mockGetViewportSize;
- var mockWindowOpen;
- var isNew;
- var anchorElem;
- var stubs = new goog.testing.PropertyReplacer();
-
- var ANCHOR_TEXT = 'anchor text';
- var ANCHOR_URL = 'http://www.google.com/';
- var ANCHOR_EMAIL = 'm@r.cos';
- var ANCHOR_MAILTO = 'mailto:' + ANCHOR_EMAIL;
-
- function setUp() {
- anchorElem = goog.dom.createElement(goog.dom.TagName.A);
- goog.dom.appendChild(goog.dom.getDocument().body, anchorElem);
-
- mockCtrl = new goog.testing.MockControl();
- mockLink = mockCtrl.createLooseMock(goog.editor.Link);
- mockOkHandler = mockCtrl.createLooseMock(goog.events.EventHandler);
-
- isNew = false;
- mockLink.isNew();
- mockLink.$anyTimes();
- mockLink.$does(function() {
- return isNew;
- });
- mockLink.getCurrentText();
- mockLink.$anyTimes();
- mockLink.$does(function() {
- return anchorElem.innerHTML;
- });
- mockLink.setTextAndUrl(goog.testing.mockmatchers.isString,
- goog.testing.mockmatchers.isString);
- mockLink.$anyTimes();
- mockLink.$does(function(text, url) {
- anchorElem.innerHTML = text;
- anchorElem.href = url;
- });
- mockLink.$registerArgumentListVerifier('placeCursorRightOf', function() {
- return true;
- });
- mockLink.placeCursorRightOf(goog.testing.mockmatchers.iBoolean);
- mockLink.$anyTimes();
- mockLink.getAnchor();
- mockLink.$anyTimes();
- mockLink.$returns(anchorElem);
-
- mockWindowOpen = mockCtrl.createFunctionMock('open');
- stubs.set(window, 'open', mockWindowOpen);
- }
-
- function tearDown() {
- dialog.dispose();
- goog.dom.removeNode(anchorElem);
- stubs.reset();
- }
-
- function setUpAnchor(href, text, opt_isNew, opt_target, opt_rel) {
- anchorElem.href = href;
- anchorElem.innerHTML = text;
- isNew = !!opt_isNew;
- if (opt_target) {
- anchorElem.target = opt_target;
- }
- if (opt_rel) {
- anchorElem.rel = opt_rel;
- }
- }
-
- /**
- * Creates and shows the dialog to be tested.
- * @param {Document=} opt_document Document to render the dialog into.
- * Defaults to the main window's document.
- * @param {boolean=} opt_openInNewWindow Whether the open in new window
- * checkbox should be shown.
- * @param {boolean=} opt_noFollow Whether rel=nofollow checkbox should be
- * shown.
- */
- function createAndShow(opt_document, opt_openInNewWindow, opt_noFollow) {
- dialog = new goog.ui.editor.LinkDialog(new goog.dom.DomHelper(opt_document),
- mockLink);
- if (opt_openInNewWindow) {
- dialog.showOpenLinkInNewWindow(false);
- }
- if (opt_noFollow) {
- dialog.showRelNoFollow();
- }
- dialog.addEventListener(goog.ui.editor.AbstractDialog.EventType.OK,
- mockOkHandler);
- dialog.show();
- }
-
- /**
- * Sets up the mock event handler to expect an OK event with the given text
- * and url.
- */
- function expectOk(linkText, linkUrl, opt_openInNewWindow, opt_noFollow) {
- mockOkHandler.handleEvent(new goog.testing.mockmatchers.ArgumentMatcher(
- function(arg) {
- return arg.type == goog.ui.editor.AbstractDialog.EventType.OK &&
- arg.linkText == linkText &&
- arg.linkUrl == linkUrl &&
- arg.openInNewWindow == !!opt_openInNewWindow &&
- arg.noFollow == !!opt_noFollow;
- },
- '{linkText: ' + linkText + ', linkUrl: ' + linkUrl +
- ', openInNewWindow: ' + opt_openInNewWindow +
- ', noFollow: ' + opt_noFollow + '}'));
- }
-
- /**
- * Tests that when you show the dialog for a new link, the input fields are
- * empty, the web tab is selected and focus is in the url input field.
- * @param {Document=} opt_document Document to render the dialog into.
- * Defaults to the main window's document.
- */
- function testShowForNewLink(opt_document) {
- mockCtrl.$replayAll();
- setUpAnchor('', '', true); // Must be done before creating the dialog.
- createAndShow(opt_document);
-
- assertEquals('Display text input field should be empty',
- '',
- getDisplayInputText());
- assertEquals('Url input field should be empty',
- '',
- getUrlInputText());
- assertEquals('On the web tab should be selected',
- goog.ui.editor.LinkDialog.Id_.ON_WEB,
- dialog.curTabId_);
- if (goog.editor.BrowserFeature.HAS_ACTIVE_ELEMENT) {
- assertEquals('Focus should be on url input',
- getUrlInput(),
- dialog.dom.getDocument().activeElement);
- }
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Fakes that the mock field is using an iframe and does the same test as
- * testShowForNewLink().
- */
- function testShowForNewLinkWithDiffAppWindow() {
- testShowForNewLink(goog.dom.getElement('appWindowIframe').contentDocument);
- }
-
- /**
- * Tests that when you show the dialog for a url link, the input fields are
- * filled in, the web tab is selected and focus is in the url input field.
- */
- function testShowForUrlLink() {
- mockCtrl.$replayAll();
- setUpAnchor(ANCHOR_URL, ANCHOR_TEXT);
- createAndShow();
-
- assertEquals('Display text input field should be filled in',
- ANCHOR_TEXT,
- getDisplayInputText());
- assertEquals('Url input field should be filled in',
- ANCHOR_URL,
- getUrlInputText());
- assertEquals('On the web tab should be selected',
- goog.ui.editor.LinkDialog.Id_.ON_WEB,
- dialog.curTabId_);
- if (goog.editor.BrowserFeature.HAS_ACTIVE_ELEMENT) {
- assertEquals('Focus should be on url input',
- getUrlInput(),
- dialog.dom.getDocument().activeElement);
- }
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Tests that when you show the dialog for a mailto link, the input fields are
- * filled in, the email tab is selected and focus is in the email input field.
- */
- function testShowForMailtoLink() {
- mockCtrl.$replayAll();
- setUpAnchor(ANCHOR_MAILTO, ANCHOR_TEXT);
- createAndShow();
-
- assertEquals('Display text input field should be filled in',
- ANCHOR_TEXT,
- getDisplayInputText());
- assertEquals('Email input field should be filled in',
- ANCHOR_EMAIL, // The 'mailto:' is not in the input!
- getEmailInputText());
- assertEquals('Email tab should be selected',
- goog.ui.editor.LinkDialog.Id_.EMAIL_ADDRESS,
- dialog.curTabId_);
- if (goog.editor.BrowserFeature.HAS_ACTIVE_ELEMENT) {
- assertEquals('Focus should be on email input',
- getEmailInput(),
- dialog.dom.getDocument().activeElement);
- }
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Tests that the display text is autogenerated from the url input in the
- * right situations (and not generated when appropriate too).
- */
- function testAutogeneration() {
- mockCtrl.$replayAll();
- setUpAnchor('', '', true);
- createAndShow();
-
- // Simulate typing a url when everything is empty, should autogen.
- setUrlInputText(ANCHOR_URL);
- assertEquals('Display text should have been autogenerated',
- ANCHOR_URL,
- getDisplayInputText());
-
- // Simulate typing text when url is set, afterwards should not autogen.
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_MAILTO);
- assertNotEquals('Display text should not have been autogenerated',
- ANCHOR_MAILTO,
- getDisplayInputText());
- assertEquals('Display text should have remained the same',
- ANCHOR_TEXT,
- getDisplayInputText());
-
- // Simulate typing text equal to existing url, afterwards should autogen.
- setDisplayInputText(ANCHOR_MAILTO);
- setUrlInputText(ANCHOR_URL);
- assertEquals('Display text should have been autogenerated',
- ANCHOR_URL,
- getDisplayInputText());
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Tests that the display text is not autogenerated from the url input in all
- * situations when the autogeneration feature is turned off.
- */
- function testAutogenerationOff() {
- mockCtrl.$replayAll();
-
- setUpAnchor('', '', true);
- createAndShow();
-
- // Disable the autogen feature
- dialog.setAutogenFeatureEnabled(false);
-
- // Simulate typing a url when everything is empty, should not autogen.
- setUrlInputText(ANCHOR_URL);
- assertEquals('Display text should not have been autogenerated',
- '',
- getDisplayInputText());
-
- // Simulate typing text when url is set, afterwards should not autogen.
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_MAILTO);
- assertNotEquals('Display text should not have been autogenerated',
- ANCHOR_MAILTO,
- getDisplayInputText());
- assertEquals('Display text should have remained the same',
- ANCHOR_TEXT,
- getDisplayInputText());
-
- // Simulate typing text equal to existing url, afterwards should not
- // autogen.
- setDisplayInputText(ANCHOR_MAILTO);
- setUrlInputText(ANCHOR_URL);
- assertEquals('Display text should not have been autogenerated',
- ANCHOR_MAILTO,
- getDisplayInputText());
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Tests that clicking OK with the url tab selected dispatches an event with
- * the proper link data.
- */
- function testOkForUrl() {
- expectOk(ANCHOR_TEXT, ANCHOR_URL);
- mockCtrl.$replayAll();
- setUpAnchor('', '', true);
- createAndShow();
-
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_URL);
- goog.testing.events.fireClickSequence(dialog.getOkButtonElement());
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Tests that clicking OK with the url tab selected but with an email address
- * in the url field dispatches an event with the proper link data.
- */
- function testOkForUrlWithEmail() {
- expectOk(ANCHOR_TEXT, ANCHOR_MAILTO);
- mockCtrl.$replayAll();
- setUpAnchor('', '', true);
- createAndShow();
-
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_EMAIL);
- goog.testing.events.fireClickSequence(dialog.getOkButtonElement());
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Tests that clicking OK with the email tab selected dispatches an event with
- * the proper link data.
- */
- function testOkForEmail() {
- expectOk(ANCHOR_TEXT, ANCHOR_MAILTO);
- mockCtrl.$replayAll();
- setUpAnchor('', '', true);
- createAndShow();
-
- dialog.tabPane_.setSelectedTabId(
- goog.ui.editor.LinkDialog.Id_.EMAIL_ADDRESS_TAB);
-
- setDisplayInputText(ANCHOR_TEXT);
- setEmailInputText(ANCHOR_EMAIL);
- goog.testing.events.fireClickSequence(dialog.getOkButtonElement());
-
- mockCtrl.$verifyAll();
- }
-
- function testOpenLinkInNewWindowNewLink() {
- expectOk(ANCHOR_TEXT, ANCHOR_URL, true);
- expectOk(ANCHOR_TEXT, ANCHOR_URL, false);
- mockCtrl.$replayAll();
-
- setUpAnchor('', '', true);
- createAndShow(undefined, true);
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_URL);
-
- assertFalse('"Open in new window" should start unchecked',
- getOpenInNewWindowCheckboxChecked());
- setOpenInNewWindowCheckboxChecked(true);
- assertTrue('"Open in new window" should have gotten checked',
- getOpenInNewWindowCheckboxChecked());
- goog.testing.events.fireClickSequence(dialog.getOkButtonElement());
-
- // Reopen same dialog
- dialog.show();
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_URL);
-
- assertTrue('"Open in new window" should remember it was checked',
- getOpenInNewWindowCheckboxChecked());
- setOpenInNewWindowCheckboxChecked(false);
- assertFalse('"Open in new window" should have gotten unchecked',
- getOpenInNewWindowCheckboxChecked());
- goog.testing.events.fireClickSequence(dialog.getOkButtonElement());
- }
-
- function testOpenLinkInNewWindowExistingLink() {
- mockCtrl.$replayAll();
-
- // Edit an existing link that already opens in a new window.
- setUpAnchor('', '', false, '_blank');
- createAndShow(undefined, true);
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_URL);
-
- assertTrue('"Open in new window" should start checked for existing link',
- getOpenInNewWindowCheckboxChecked());
-
- mockCtrl.$verifyAll();
- }
-
- function testRelNoFollowNewLink() {
- expectOk(ANCHOR_TEXT, ANCHOR_URL, null, true);
- expectOk(ANCHOR_TEXT, ANCHOR_URL, null, false);
- mockCtrl.$replayAll();
-
- setUpAnchor('', '', true, true);
- createAndShow(null, null, true);
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_URL);
- assertFalse('rel=nofollow should start unchecked',
- dialog.relNoFollowCheckbox_.checked);
-
- // Check rel=nofollow and close the dialog.
- dialog.relNoFollowCheckbox_.checked = true;
- goog.testing.events.fireClickSequence(dialog.getOkButtonElement());
-
- // Reopen the same dialog.
- anchorElem.rel = 'foo nofollow bar';
- dialog.show();
- dialog.tabPane_.setSelectedTabId(goog.ui.editor.LinkDialog.Id_.ON_WEB_TAB);
- setDisplayInputText(ANCHOR_TEXT);
- setUrlInputText(ANCHOR_URL);
- assertTrue('rel=nofollow should start checked when reopening the dialog',
- dialog.relNoFollowCheckbox_.checked);
- }
-
- function testRelNoFollowExistingLink() {
- mockCtrl.$replayAll();
-
- setUpAnchor('', '', null, null, 'foo nofollow bar');
- createAndShow(null, null, true);
- assertTrue('rel=nofollow should start checked for existing link',
- dialog.relNoFollowCheckbox_.checked);
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Test that clicking on the test button opens a new window with the correct
- * options.
- */
- function testWebTestButton() {
- if (goog.userAgent.GECKO) {
- // TODO(robbyw): Figure out why this is flaky and fix it.
- return;
- }
-
- var width, height;
- mockWindowOpen(ANCHOR_URL, '_blank',
- new goog.testing.mockmatchers.ArgumentMatcher(function(str) {
- return str == 'width=' + width + ',height=' + height +
- ',toolbar=1,scrollbars=1,location=1,statusbar=0,' +
- 'menubar=1,resizable=1'
- }, "3rd arg: (string) window.open() options"));
-
- mockCtrl.$replayAll();
- setUpAnchor(ANCHOR_URL, ANCHOR_TEXT);
- createAndShow();
-
- // Measure viewport after opening dialog because that might cause scrollbars
- // to appear and reduce the viewport size.
- var size = goog.dom.getViewportSize(window);
- width = Math.max(size.width - 50, 50);
- height = Math.max(size.height - 50, 50);
-
- var testLink = goog.testing.dom.findTextNode(
- goog.ui.editor.messages.MSG_TEST_THIS_LINK,
- dialog.dialogInternal_.getElement());
- goog.testing.events.fireClickSequence(testLink.parentNode);
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Test that clicking on the test button does not open a new window when
- * the event is canceled.
- */
- function testWebTestButtonPreventDefault() {
- mockCtrl.$replayAll();
- setUpAnchor(ANCHOR_URL, ANCHOR_TEXT);
- createAndShow();
-
- goog.events.listen(dialog,
- goog.ui.editor.LinkDialog.EventType.BEFORE_TEST_LINK,
- function(e) {
- assertEquals(e.url, ANCHOR_URL);
- e.preventDefault();
- });
- var testLink = goog.testing.dom.findTextNode(
- goog.ui.editor.messages.MSG_TEST_THIS_LINK,
- dialog.dialogInternal_.getElement());
- goog.testing.events.fireClickSequence(testLink.parentNode);
-
- mockCtrl.$verifyAll();
- }
-
- /**
- * Test that the setTextToDisplayVisible() correctly works.
- * options.
- */
- function testSetTextToDisplayVisible() {
- mockCtrl.$replayAll();
- setUpAnchor('', '', true);
- createAndShow();
-
- assertNotEquals('none',
- goog.style.getStyle(dialog.textToDisplayDiv_, 'display'));
- dialog.setTextToDisplayVisible(false);
- assertEquals('none',
- goog.style.getStyle(dialog.textToDisplayDiv_, 'display'));
- dialog.setTextToDisplayVisible(true);
- assertNotEquals('none',
- goog.style.getStyle(dialog.textToDisplayDiv_, 'display'));
-
- mockCtrl.$verifyAll();
- }
-
- function getDisplayInput() {
- return dialog.dom.getElement(goog.ui.editor.LinkDialog.Id_.TEXT_TO_DISPLAY);
- }
-
- function getDisplayInputText() {
- return getDisplayInput().value;
- }
-
- function setDisplayInputText(text) {
- var textInput = getDisplayInput();
- textInput.value = text;
- // Fire event so that dialog behaves like when user types.
- goog.testing.events.fireBrowserEvent(new goog.events.Event('keyup',
- textInput));
- }
-
- function getUrlInput() {
- return dialog.dom.getElement(goog.ui.editor.LinkDialog.Id_.ON_WEB_INPUT);
- }
-
- function getUrlInputText() {
- return getUrlInput().value;
- }
-
- function setUrlInputText(text) {
- var urlInput = getUrlInput();
- urlInput.value = text;
- // Fire event so that dialog behaves like when user types.
- dialog.urlInputHandler_.dispatchEvent(
- goog.events.InputHandler.EventType.INPUT);
- }
-
- function getEmailInput() {
- return dialog.dom.getElement(
- goog.ui.editor.LinkDialog.Id_.EMAIL_ADDRESS_INPUT);
- }
-
- function getEmailInputText() {
- return getEmailInput().value;
- }
-
- function setEmailInputText(text) {
- var emailInput = getEmailInput();
- emailInput.value = text;
- // Fire event so that dialog behaves like when user types.
- dialog.emailInputHandler_.dispatchEvent(
- goog.events.InputHandler.EventType.INPUT);
- }
-
- function getOpenInNewWindowCheckboxChecked() {
- return dialog.openInNewWindowCheckbox_.checked;
- }
-
- function setOpenInNewWindowCheckboxChecked(checked) {
- dialog.openInNewWindowCheckbox_.checked = checked;
- }
-
-</script>
-</body>
-</html>