diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/testing/ui/style.js')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/testing/ui/style.js | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/testing/ui/style.js b/contexts/data/lib/closure-library/closure/goog/testing/ui/style.js deleted file mode 100644 index 64e935c..0000000 --- a/contexts/data/lib/closure-library/closure/goog/testing/ui/style.js +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2008 The Closure Library Authors. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS-IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -/** - * @fileoverview Tools for testing Closure renderers against static markup - * spec pages. - * - */ - -goog.provide('goog.testing.ui.style'); - -goog.require('goog.array'); -goog.require('goog.dom'); -goog.require('goog.dom.classes'); -goog.require('goog.testing.asserts'); - - -/** - * Uses document.write to add an iFrame to the page with the reference path in - * the src attribute. Used for loading an html file containing reference - * structures to test against into the page. Should be called within the body of - * the jsunit test page. - * @param {string} referencePath A path to a reference HTML file. - */ -goog.testing.ui.style.writeReferenceFrame = function(referencePath) { - document.write('<iframe id="reference" name="reference" ' + - 'src="' + referencePath + '"></iframe>'); -}; - - -/** - * Returns a reference to the first element child of a node with the given id - * from the page loaded into the reference iFrame. Used to retrieve a particular - * reference DOM structure to test against. - * @param {string} referenceId The id of a container element for a reference - * structure in the reference page. - * @return {Node} The root element of the reference structure. - */ -goog.testing.ui.style.getReferenceNode = function(referenceId) { - return goog.dom.getFirstElementChild( - window.frames['reference'].document.getElementById(referenceId)); -}; - - -/** - * Returns an array of all element children of a given node. - * @param {Node} element The node to get element children of. - * @return {Array.<Node>} An array of all the element children. - */ -goog.testing.ui.style.getElementChildren = function(element) { - var first = goog.dom.getFirstElementChild(element); - if (!first) { - return []; - } - var children = [first], next; - while (next = goog.dom.getNextElementSibling(children[children.length - 1])) { - children.push(next); - } - return children; -}; - - -/** - * Tests whether a given node is a "content" node of a reference structure, - * which means it is allowed to have arbitrary children. - * @param {Node} element The node to test. - * @return {boolean} Whether the given node is a content node or not. - */ -goog.testing.ui.style.isContentNode = function(element) { - return element.className.indexOf('content') != -1; -}; - - -/** - * Tests that the structure, node names, and classes of the given element are - * the same as the reference structure with the given id. Throws an error if the - * element doesn't have the same nodes at each level of the DOM with the same - * classes on each. The test ignores all DOM structure within content nodes. - * @param {Node} element The root node of the DOM structure to test. - * @param {string} referenceId The id of the container for the reference - * structure to test against. - */ -goog.testing.ui.style.assertStructureMatchesReference = function(element, - referenceId) { - goog.testing.ui.style.assertStructureMatchesReferenceInner_(element, - goog.testing.ui.style.getReferenceNode(referenceId)); -}; - - -/** - * A recursive function for comparing structure, node names, and classes between - * a test and reference DOM structure. Throws an error if one of these things - * doesn't match. Used internally by - * {@link goog.testing.ui.style.assertStructureMatchesReference}. - * @param {Node} element DOM element to test. - * @param {Node} reference DOM element to use as a reference (test against). - * @private - */ -goog.testing.ui.style.assertStructureMatchesReferenceInner_ = function(element, - reference) { - if (!element && !reference) { - return; - } - assertTrue('Expected two elements.', !!element && !!reference); - assertEquals('Expected nodes to have the same nodeName.', - element.nodeName, reference.nodeName); - var elementClasses = goog.dom.classes.get(element); - goog.array.forEach(goog.dom.classes.get(reference), function(referenceClass) { - assertContains('Expected test node to have all reference classes.', - referenceClass, elementClasses); - }); - // Call assertStructureMatchesReferenceInner_ on all element children - // unless this is a content node - var elChildren = goog.testing.ui.style.getElementChildren(element), - refChildren = goog.testing.ui.style.getElementChildren(reference); - if (!goog.testing.ui.style.isContentNode(reference)) { - if (elChildren.length != refChildren.length) { - assertEquals('Expected same number of children for a non-content node.', - elChildren.length, refChildren.length); - } - for (var i = 0; i < elChildren.length; i++) { - goog.testing.ui.style.assertStructureMatchesReferenceInner_(elChildren[i], - refChildren[i]); - } - } -}; |