diff options
Diffstat (limited to 'tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js')
-rw-r--r-- | tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js | 300 |
1 files changed, 150 insertions, 150 deletions
diff --git a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js b/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js index 11d19664..4dce4651 100644 --- a/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js +++ b/tests/test_tools/selenium/core/lib/cssQuery/src/cssQuery-level3.js @@ -1,150 +1,150 @@ -/*
- cssQuery, version 2.0.2 (2005-08-19)
- Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)
- License: http://creativecommons.org/licenses/LGPL/2.1/
-*/
-
-/* Thanks to Bill Edney */
-
-cssQuery.addModule("css-level3", function() {
-
-// -----------------------------------------------------------------------
-// selectors
-// -----------------------------------------------------------------------
-
-// indirect sibling selector
-selectors["~"] = function($results, $from, $tagName, $namespace) {
- var $element, i;
- for (i = 0; ($element = $from[i]); i++) {
- while ($element = nextElementSibling($element)) {
- if (compareTagName($element, $tagName, $namespace))
- $results.push($element);
- }
- }
-};
-
-// -----------------------------------------------------------------------
-// pseudo-classes
-// -----------------------------------------------------------------------
-
-// I'm hoping these pseudo-classes are pretty readable. Let me know if
-// any need explanation.
-
-pseudoClasses["contains"] = function($element, $text) {
- $text = new RegExp(regEscape(getText($text)));
- return $text.test(getTextContent($element));
-};
-
-pseudoClasses["root"] = function($element) {
- return $element == getDocument($element).documentElement;
-};
-
-pseudoClasses["empty"] = function($element) {
- var $node, i;
- for (i = 0; ($node = $element.childNodes[i]); i++) {
- if (thisElement($node) || $node.nodeType == 3) return false;
- }
- return true;
-};
-
-pseudoClasses["last-child"] = function($element) {
- return !nextElementSibling($element);
-};
-
-pseudoClasses["only-child"] = function($element) {
- $element = $element.parentNode;
- return firstElementChild($element) == lastElementChild($element);
-};
-
-pseudoClasses["not"] = function($element, $selector) {
- var $negated = cssQuery($selector, getDocument($element));
- for (var i = 0; i < $negated.length; i++) {
- if ($negated[i] == $element) return false;
- }
- return true;
-};
-
-pseudoClasses["nth-child"] = function($element, $arguments) {
- return nthChild($element, $arguments, previousElementSibling);
-};
-
-pseudoClasses["nth-last-child"] = function($element, $arguments) {
- return nthChild($element, $arguments, nextElementSibling);
-};
-
-pseudoClasses["target"] = function($element) {
- return $element.id == location.hash.slice(1);
-};
-
-// UI element states
-
-pseudoClasses["checked"] = function($element) {
- return $element.checked;
-};
-
-pseudoClasses["enabled"] = function($element) {
- return $element.disabled === false;
-};
-
-pseudoClasses["disabled"] = function($element) {
- return $element.disabled;
-};
-
-pseudoClasses["indeterminate"] = function($element) {
- return $element.indeterminate;
-};
-
-// -----------------------------------------------------------------------
-// attribute selector tests
-// -----------------------------------------------------------------------
-
-AttributeSelector.tests["^="] = function($attribute, $value) {
- return "/^" + regEscape($value) + "/.test(" + $attribute + ")";
-};
-
-AttributeSelector.tests["$="] = function($attribute, $value) {
- return "/" + regEscape($value) + "$/.test(" + $attribute + ")";
-};
-
-AttributeSelector.tests["*="] = function($attribute, $value) {
- return "/" + regEscape($value) + "/.test(" + $attribute + ")";
-};
-
-// -----------------------------------------------------------------------
-// nth child support (Bill Edney)
-// -----------------------------------------------------------------------
-
-function nthChild($element, $arguments, $traverse) {
- switch ($arguments) {
- case "n": return true;
- case "even": $arguments = "2n"; break;
- case "odd": $arguments = "2n+1";
- }
-
- var $$children = childElements($element.parentNode);
- function _checkIndex($index) {
- var $index = ($traverse == nextElementSibling) ? $$children.length - $index : $index - 1;
- return $$children[$index] == $element;
- };
-
- // it was just a number (no "n")
- if (!isNaN($arguments)) return _checkIndex($arguments);
-
- $arguments = $arguments.split("n");
- var $multiplier = parseInt($arguments[0]);
- var $step = parseInt($arguments[1]);
-
- if ((isNaN($multiplier) || $multiplier == 1) && $step == 0) return true;
- if ($multiplier == 0 && !isNaN($step)) return _checkIndex($step);
- if (isNaN($step)) $step = 0;
-
- var $count = 1;
- while ($element = $traverse($element)) $count++;
-
- if (isNaN($multiplier) || $multiplier == 1)
- return ($traverse == nextElementSibling) ? ($count <= $step) : ($step >= $count);
-
- return ($count % $multiplier) == $step;
-};
-
-}); // addModule
+/* + cssQuery, version 2.0.2 (2005-08-19) + Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/) + License: http://creativecommons.org/licenses/LGPL/2.1/ +*/ + +/* Thanks to Bill Edney */ + +cssQuery.addModule("css-level3", function() { + +// ----------------------------------------------------------------------- +// selectors +// ----------------------------------------------------------------------- + +// indirect sibling selector +selectors["~"] = function($results, $from, $tagName, $namespace) { + var $element, i; + for (i = 0; ($element = $from[i]); i++) { + while ($element = nextElementSibling($element)) { + if (compareTagName($element, $tagName, $namespace)) + $results.push($element); + } + } +}; + +// ----------------------------------------------------------------------- +// pseudo-classes +// ----------------------------------------------------------------------- + +// I'm hoping these pseudo-classes are pretty readable. Let me know if +// any need explanation. + +pseudoClasses["contains"] = function($element, $text) { + $text = new RegExp(regEscape(getText($text))); + return $text.test(getTextContent($element)); +}; + +pseudoClasses["root"] = function($element) { + return $element == getDocument($element).documentElement; +}; + +pseudoClasses["empty"] = function($element) { + var $node, i; + for (i = 0; ($node = $element.childNodes[i]); i++) { + if (thisElement($node) || $node.nodeType == 3) return false; + } + return true; +}; + +pseudoClasses["last-child"] = function($element) { + return !nextElementSibling($element); +}; + +pseudoClasses["only-child"] = function($element) { + $element = $element.parentNode; + return firstElementChild($element) == lastElementChild($element); +}; + +pseudoClasses["not"] = function($element, $selector) { + var $negated = cssQuery($selector, getDocument($element)); + for (var i = 0; i < $negated.length; i++) { + if ($negated[i] == $element) return false; + } + return true; +}; + +pseudoClasses["nth-child"] = function($element, $arguments) { + return nthChild($element, $arguments, previousElementSibling); +}; + +pseudoClasses["nth-last-child"] = function($element, $arguments) { + return nthChild($element, $arguments, nextElementSibling); +}; + +pseudoClasses["target"] = function($element) { + return $element.id == location.hash.slice(1); +}; + +// UI element states + +pseudoClasses["checked"] = function($element) { + return $element.checked; +}; + +pseudoClasses["enabled"] = function($element) { + return $element.disabled === false; +}; + +pseudoClasses["disabled"] = function($element) { + return $element.disabled; +}; + +pseudoClasses["indeterminate"] = function($element) { + return $element.indeterminate; +}; + +// ----------------------------------------------------------------------- +// attribute selector tests +// ----------------------------------------------------------------------- + +AttributeSelector.tests["^="] = function($attribute, $value) { + return "/^" + regEscape($value) + "/.test(" + $attribute + ")"; +}; + +AttributeSelector.tests["$="] = function($attribute, $value) { + return "/" + regEscape($value) + "$/.test(" + $attribute + ")"; +}; + +AttributeSelector.tests["*="] = function($attribute, $value) { + return "/" + regEscape($value) + "/.test(" + $attribute + ")"; +}; + +// ----------------------------------------------------------------------- +// nth child support (Bill Edney) +// ----------------------------------------------------------------------- + +function nthChild($element, $arguments, $traverse) { + switch ($arguments) { + case "n": return true; + case "even": $arguments = "2n"; break; + case "odd": $arguments = "2n+1"; + } + + var $$children = childElements($element.parentNode); + function _checkIndex($index) { + var $index = ($traverse == nextElementSibling) ? $$children.length - $index : $index - 1; + return $$children[$index] == $element; + }; + + // it was just a number (no "n") + if (!isNaN($arguments)) return _checkIndex($arguments); + + $arguments = $arguments.split("n"); + var $multiplier = parseInt($arguments[0]); + var $step = parseInt($arguments[1]); + + if ((isNaN($multiplier) || $multiplier == 1) && $step == 0) return true; + if ($multiplier == 0 && !isNaN($step)) return _checkIndex($step); + if (isNaN($step)) $step = 0; + + var $count = 1; + while ($element = $traverse($element)) $count++; + + if (isNaN($multiplier) || $multiplier == 1) + return ($traverse == nextElementSibling) ? ($count <= $step) : ($step >= $count); + + return ($count % $multiplier) == $step; +}; + +}); // addModule |