<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[20022] trunk/LayoutTests</title>
</head>
<body>
<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/20022">20022</a></dd>
<dt>Author</dt> <dd>ap</dd>
<dt>Date</dt> <dd>2007-03-07 10:32:11 -0800 (Wed, 07 Mar 2007)</dd>
</dl>
<h3>Log Message</h3>
<pre> Reviewed by Darin.
http://bugs.webkit.org/show_bug.cgi?id=12953
Import/convert 4XPath test suite
Import the rest of the converted suite. The only remaining failures are due to
incorrect node order, bug 12497.
* fast/xpath/4XPath/Core/test_literal_expr.html: Added.
* fast/xpath/4XPath/Core/test_location_path.html: Added.
* fast/xpath/4XPath/Core/test_node_test.html: Added.
* fast/xpath/4XPath/Core/test_nodeset_expr.html: Added.
* fast/xpath/4XPath/Core/test_parser-expected.txt: Added.
* fast/xpath/4XPath/Core/test_parser.html: Added.
* fast/xpath/4XPath/Core/test_predicate_list.html: Added.
* fast/xpath/4XPath/Core/test_step-expected.txt: Added.
* fast/xpath/4XPath/Core/test_step.html: Added.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_literal_exprhtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_literal_expr.html</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_location_pathhtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_location_path.html</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_node_testhtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_node_test.html</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_nodeset_exprhtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr.html</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_parserexpectedtxt">trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_parserhtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser.html</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_predicate_listhtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_predicate_list.html</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_stepexpectedtxt">trunk/LayoutTests/fast/xpath/4XPath/Core/test_step-expected.txt</a></li>
<li><a href="#trunkLayoutTestsfastxpath4XPathCoretest_stephtml">trunk/LayoutTests/fast/xpath/4XPath/Core/test_step.html</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (20021 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2007-03-07 16:40:27 UTC (rev 20021)
+++ trunk/LayoutTests/ChangeLog        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -1,3 +1,23 @@
</span><ins>+2007-03-07 Alexey Proskuryakov <ap@webkit.org>
+
+ Reviewed by Darin.
+
+ http://bugs.webkit.org/show_bug.cgi?id=12953
+ Import/convert 4XPath test suite
+
+ Import the rest of the converted suite. The only remaining failures are due to
+ incorrect node order, bug 12497.
+
+ * fast/xpath/4XPath/Core/test_literal_expr.html: Added.
+ * fast/xpath/4XPath/Core/test_location_path.html: Added.
+ * fast/xpath/4XPath/Core/test_node_test.html: Added.
+ * fast/xpath/4XPath/Core/test_nodeset_expr.html: Added.
+ * fast/xpath/4XPath/Core/test_parser-expected.txt: Added.
+ * fast/xpath/4XPath/Core/test_parser.html: Added.
+ * fast/xpath/4XPath/Core/test_predicate_list.html: Added.
+ * fast/xpath/4XPath/Core/test_step-expected.txt: Added.
+ * fast/xpath/4XPath/Core/test_step.html: Added.
+
</ins><span class="cx"> 2007-03-07 David Kilzer <ddkilzer@webkit.org>
</span><span class="cx">
</span><span class="cx"> Reviewed by Darin.
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_literal_exprhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_literal_expr.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_literal_expr.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_literal_expr.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,56 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ shouldBe('document.evaluate(\'""\', document, null, XPathResult.STRING_TYPE, null).stringValue', '""');
+ shouldBe('document.evaluate(\'"Hi"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"Hi"');
+ shouldBe('document.evaluate(\'"NaN"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"NaN"');
+ shouldBe('document.evaluate(\'"\u2022 = middle dot"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"\u2022 = middle dot"');
+ shouldBe('document.evaluate(\'"0"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"0"');
+ shouldBe('document.evaluate(\'"1"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"1"');
+ shouldBe('document.evaluate(\'"2"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"2"');
+ shouldBe('document.evaluate(\'"3"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"3"');
+ shouldBe('document.evaluate(\'"4"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"4"');
+ shouldBe('document.evaluate(\'"5"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"5"');
+ shouldBe('document.evaluate(\'"31"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"31"');
+ shouldBe('document.evaluate(\'"-1"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"-1"');
+ shouldBe('document.evaluate(\'"-2"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"-2"');
+ shouldBe('document.evaluate(\'"-3"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"-3"');
+ shouldBe('document.evaluate(\'"-4"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"-4"');
+ shouldBe('document.evaluate(\'"-5"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"-5"');
+ shouldBe('document.evaluate(\'"3.1415926535"\', document, null, XPathResult.STRING_TYPE, null).stringValue', '"3.1415926535"');
+
+ shouldBe('document.evaluate(\'0\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '0.0');
+ shouldBe('document.evaluate(\'0.5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '0.5');
+ shouldBe('document.evaluate(\'-0.5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-0.5');
+ shouldBe('document.evaluate(\'1\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '1.0');
+ shouldBe('document.evaluate(\'-1\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-1.0');
+ shouldBe('document.evaluate(\'1.5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '1.5');
+ shouldBe('document.evaluate(\'-1.5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-1.5');
+ shouldBe('document.evaluate(\'2\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '2.0');
+ shouldBe('document.evaluate(\'-2\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-2.0');
+ shouldBe('document.evaluate(\'2.6\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '2.6');
+ shouldBe('document.evaluate(\'-2.6\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-2.6');
+ shouldBe('document.evaluate(\'3\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '3.0');
+ shouldBe('document.evaluate(\'-3\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-3.0');
+ shouldBe('document.evaluate(\'31\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '31.0');
+ shouldBe('document.evaluate(\'4\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '4.0');
+ shouldBe('document.evaluate(\'-4\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-4.0');
+ shouldBe('document.evaluate(\'4.5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '4.5');
+ shouldBe('document.evaluate(\'-4.5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-4.5');
+ shouldBe('document.evaluate(\'5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '5.0');
+ shouldBe('document.evaluate(\'-5\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-5.0');
+ shouldBe('document.evaluate(\'-42\', document, null, XPathResult.NUMBER_TYPE, null).numberValue', '-42.0');
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_literal_expr.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_location_pathhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_location_path.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_location_path.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_location_path.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ result = DOM.evaluate("//*", CHILD2, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//*", result, [ROOT, CHILD1].concat(GCHILDREN1, [CHILD2], GCHILDREN2, [CHILD3, LANG], LCHILDREN));
+
+ result = DOM.evaluate("*/*", ROOT, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("*/*", result, GCHILDREN1.concat(GCHILDREN2, LCHILDREN));
+
+ result = DOM.evaluate("/", CHILD1, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("/", result, [DOM]);
+
+ result = DOM.evaluate("/child::*", CHILD2, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("/child::*", result, [ROOT]);
+
+ result = DOM.evaluate("child::*/child::*", ROOT, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("child::*/child::*", result, GCHILDREN1.concat(GCHILDREN2, LCHILDREN));
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_location_path.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_node_testhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_node_test.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_node_test.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_node_test.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,63 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ function nsResolver(prefix) {
+ if (prefix == 'bar')
+ return 'http://foo.com';
+ return null;
+ }
+
+ function nodeInResult(node, result) {
+ for (i=0; i < result.snapshotLength; ++i)
+ if (result.snapshotItem(i) == node)
+ return true;
+ return false;
+ }
+
+ result = DOM.evaluate("//*", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "true");
+
+ result = DOM.evaluate("//bar:CHILD3", ROOT, nsResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "false");
+ shouldBe("nodeInResult(CHILD1, result)", "false");
+ shouldBe("nodeInResult(CHILD3, result)", "true");
+
+ result = DOM.evaluate("//bar:*", ROOT, nsResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "false");
+ shouldBe("nodeInResult(CHILD1, result)", "false");
+ shouldBe("nodeInResult(CHILD3, result)", "true");
+
+ result = DOM.evaluate("//node()", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "true");
+ shouldBe("nodeInResult(TEXT1, result)", "true");
+
+ result = DOM.evaluate("//text()", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "false");
+ shouldBe("nodeInResult(TEXT1, result)", "true");
+
+ result = DOM.evaluate("//comment()", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "false");
+ shouldBe("nodeInResult(COMMENT, result)", "true");
+
+ result = DOM.evaluate("//processing-instruction()", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(ROOT, result)", "false");
+ shouldBe("nodeInResult(PI, result)", "true");
+
+ result = DOM.evaluate("//processing-instruction('xml-stylesheet')", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ shouldBe("nodeInResult(PI, result)", "true");
+ shouldBe("nodeInResult(PI2, result)", "false");
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_node_test.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_nodeset_exprhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ result = DOM.evaluate("(/ROOT | /ROOT/CHILD1)[true()]", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("(/ROOT | /ROOT/CHILD1)[true()]", result, [ROOT, CHILD1]);
+
+ result = DOM.evaluate("(/ROOT | /ROOT/CHILD1)[.=/ROOT]", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("(/ROOT | /ROOT/CHILD1)[.=/ROOT]", result, [ROOT]);
+
+ result = DOM.evaluate("(/ROOT | /ROOT/CHILD1) | (/ROOT)", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("(/ROOT | /ROOT/CHILD1) | (/ROOT)", result, [ROOT, CHILD1]);
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_nodeset_expr.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_parserexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser-expected.txt (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser-expected.txt        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+PASS child::*
+PASS /child::*
+PASS /*/*
+PASS /child::*/*/child::GCHILD
+FAIL //* item 2 incorrect (expected GCHILD, actual CHILD2)
+PASS //GCHILD
+PASS //@attr1
+PASS x:GCHILD
+PASS .//GCHILD
+PASS .//GCHILD
+PASS /
+PASS //CHILD1/..
+PASS .//foo:*
+PASS CHILD1 | CHILD2
+PASS descendant::GCHILD[3]
+PASS descendant::GCHILD[parent::CHILD1]
+PASS descendant::GCHILD[position() > 1]
+PASS @attr1[.='val1']
+PASS DOM.evaluate("1", ROOT, null, XPathResult.ANY_TYPE, null).numberValue is 1
+PASS DOM.evaluate("00200", ROOT, null, XPathResult.ANY_TYPE, null).numberValue is 200
+PASS DOM.evaluate("3+4*7", ROOT, null, XPathResult.ANY_TYPE, null).numberValue is 31
+PASS DOM.evaluate("3-4*1", ROOT, null, XPathResult.ANY_TYPE, null).numberValue is -1
+PASS DOM.evaluate("string('1')", ROOT, null, XPathResult.ANY_TYPE, null).stringValue is '1'
+PASS DOM.evaluate("concat('1', '2')", ROOT, null, XPathResult.ANY_TYPE, null).stringValue is '12'
+PASS DOM.evaluate("true()", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("false()", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is false
+PASS DOM.evaluate("1=3<4", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("1 or 2 and 3", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate("1 and 2 = 3", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is false
+PASS DOM.evaluate("-1 or 2", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS DOM.evaluate(". or *", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue is true
+PASS text()
+PASS processing-instruction('f')
+PASS (child::*)
+PASS DOM.evaluate(". * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue is NaN
+PASS DOM.evaluate(".. * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue is NaN
+PASS DOM.evaluate("/.. * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue is NaN
+PASS CHILD2/@CODE
+PASS DOM.evaluate("CHILD2/@CODE * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue is 0
+PASS föø
+PASS DOM.evaluate("\\", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null) threw exception Error: INVALID_EXPRESSION_ERR: DOM XPath Exception 51.
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser-expected.txt
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/plain
</span><span class="cx">Name: svn:eol-style
</span><span class="cx"> + native
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_parserhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,114 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ function nsResolver(prefix) {
+ if (prefix == 'x')
+ return 'http://spam.com';
+ return null;
+ }
+
+ result = DOM.evaluate("child::*", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("child::*", result, CHILDREN);
+
+ result = DOM.evaluate("/child::*", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("/child::*", result, [ROOT]);
+
+ result = DOM.evaluate("/*/*", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("/*/*", result, CHILDREN);
+
+ result = DOM.evaluate("/child::*/*/child::GCHILD", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("/child::*/*/child::GCHILD", result, GCHILDREN1.concat(GCHILDREN2));
+
+ result = DOM.evaluate("//*", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//*", result, [ROOT, CHILD1].concat(GCHILDREN1, [CHILD2], GCHILDREN2, [CHILD3, LANG], LCHILDREN));
+
+ result = DOM.evaluate("//GCHILD", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//GCHILD", result, GCHILDREN1.concat(GCHILDREN2));
+
+ result = DOM.evaluate("//@attr1", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//@attr1", result, [ATTR1, ATTR2]);
+
+ result = DOM.evaluate("x:GCHILD", CHILD1, nsResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("x:GCHILD", result, []);
+
+ result = DOM.evaluate(".//GCHILD", CHILD2, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot(".//GCHILD", result, GCHILDREN2);
+
+ result = DOM.evaluate(".//GCHILD", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot(".//GCHILD", result, GCHILDREN1.concat(GCHILDREN2));
+
+ result = DOM.evaluate("/", text, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("/", result, [DOM]);
+
+ result = DOM.evaluate("//CHILD1/..", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//CHILD1/..", result, [ROOT]);
+
+ result = DOM.evaluate(".//foo:*", CHILD3, DOM.createNSResolver(CHILD3), XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot(".//foo:*", result, []);
+
+ result = DOM.evaluate("CHILD1 | CHILD2", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("CHILD1 | CHILD2", result, [CHILD1, CHILD2]);
+
+ result = DOM.evaluate("descendant::GCHILD[3]", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("descendant::GCHILD[3]", result, [GCHILD21]);
+
+ result = DOM.evaluate("descendant::GCHILD[parent::CHILD1]", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("descendant::GCHILD[parent::CHILD1]", result, GCHILDREN1);
+
+ result = DOM.evaluate("descendant::GCHILD[position() > 1]", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("descendant::GCHILD[position() > 1]", result, [GCHILD12].concat(GCHILDREN2));
+
+ result = DOM.evaluate("@attr1[.='val1']", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("@attr1[.='val1']", result, [ATTR1]);
+
+ shouldBe('DOM.evaluate("1", ROOT, null, XPathResult.ANY_TYPE, null).numberValue', "1");
+ shouldBe('DOM.evaluate("00200", ROOT, null, XPathResult.ANY_TYPE, null).numberValue', "200");
+ shouldBe('DOM.evaluate("3+4*7", ROOT, null, XPathResult.ANY_TYPE, null).numberValue', "31");
+ shouldBe('DOM.evaluate("3-4*1", ROOT, null, XPathResult.ANY_TYPE, null).numberValue', "-1");
+ shouldBe('DOM.evaluate("string(\'1\')", ROOT, null, XPathResult.ANY_TYPE, null).stringValue', "'1'");
+ shouldBe('DOM.evaluate("concat(\'1\', \'2\')", ROOT, null, XPathResult.ANY_TYPE, null).stringValue', "'12'");
+ shouldBe('DOM.evaluate("true()", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "true");
+ shouldBe('DOM.evaluate("false()", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "false");
+ shouldBe('DOM.evaluate("1=3<4", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "true");
+ shouldBe('DOM.evaluate("1 or 2 and 3", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "true");
+ shouldBe('DOM.evaluate("1 and 2 = 3", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "false");
+ shouldBe('DOM.evaluate("-1 or 2", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "true");
+ shouldBe('DOM.evaluate(". or *", ROOT, null, XPathResult.ANY_TYPE, null).booleanValue', "true");
+
+ result = DOM.evaluate("text()", CHILD3, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("text()", result, []);
+
+ result = DOM.evaluate("processing-instruction('f')", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("processing-instruction('f')", result, []);
+
+ result = DOM.evaluate("(child::*)", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("(child::*)", result, CHILDREN);
+
+ shouldBe('DOM.evaluate(". * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue', "NaN");
+ shouldBe('DOM.evaluate(".. * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue', "NaN");
+ shouldBe('DOM.evaluate("/.. * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue', "NaN");
+
+ result = DOM.evaluate("CHILD2/@CODE", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("CHILD2/@CODE", result, [IDATTR2]);
+
+ shouldBe('DOM.evaluate("CHILD2/@CODE * 0", ROOT, null, XPathResult.NUMBER_TYPE, null).numberValue', "0");
+
+ result = DOM.evaluate("f\xf6\xf8", LANG, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("f\xf6\xf8", result, [NONASCIIQNAME]);
+
+ shouldThrow('DOM.evaluate("\\\\", ROOT, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)');
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_parser.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_predicate_listhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_predicate_list.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_predicate_list.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_predicate_list.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ result = DOM.evaluate("self::node()[true() and false()][true()]", ROOT, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("self::node()[true() and false()][true()]", result, []);
+
+ result = DOM.evaluate("self::node()[true() or false()][true()]", ROOT, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("self::node()[true() or false()][true()]", result, [ROOT]);
+
+ dom2 = (new DOMParser).parseFromString(
+ "<?xml version='1.0'?>" +
+ "<elementList>" +
+ " <element>" +
+ " <x>" +
+ " <y>a</y>" +
+ " </x>" +
+ " </element>" +
+ " <element>" +
+ " <x>" +
+ " <y>z</y>" +
+ " </x>" +
+ " </element>" +
+ "</elementList>",
+ "application/xml");
+
+ result = dom2.evaluate("//element[descendant::y[.='z']]", dom2, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//element[descendant::y[.='z']]", result, [dom2.getElementsByTagName("element")[1]]);
+
+ result = dom2.evaluate("//element[descendant::y[.='z']][1]", dom2, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//element[descendant::y[.='z']][1]", result, [dom2.getElementsByTagName("element")[1]]);
+
+ result = dom2.evaluate("//element[descendant::y[.='z']][2]", dom2, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("//element[descendant::y[.='z']][2]", result, []);
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_predicate_list.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_stepexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_step-expected.txt (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_step-expected.txt         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_step-expected.txt        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,9 @@
</span><ins>+PASS ancestor::*
+FAIL ancestor-or-self::* item 0 incorrect (expected ROOT, actual CHILD1)
+PASS descendant-or-self::*
+PASS child::GCHILD[position()=1]
+PASS child::GCHILD[1]
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_step-expected.txt
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/plain
</span><span class="cx">Name: svn:eol-style
</span><span class="cx"> + native
</span></span></pre></div>
<a id="trunkLayoutTestsfastxpath4XPathCoretest_stephtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/fast/xpath/4XPath/Core/test_step.html (0 => 20022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/fast/xpath/4XPath/Core/test_step.html         (rev 0)
+++ trunk/LayoutTests/fast/xpath/4XPath/Core/test_step.html        2007-03-07 18:32:11 UTC (rev 20022)
</span><span class="lines">@@ -0,0 +1,32 @@
</span><ins>+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
+<script src="../../../js/resources/js-test-pre.js"></script>
+<script src="test.js"></script>
+</head>
+<body>
+<div id="console"></div>
+
+<script>
+ result = DOM.evaluate("ancestor::*", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("ancestor::*", result, [ROOT]);
+
+ result = DOM.evaluate("ancestor-or-self::*", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("ancestor-or-self::*", result, [ROOT, CHILD1]);
+
+ result = DOM.evaluate("descendant-or-self::GCHILD", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("descendant-or-self::*", result, GCHILDREN1);
+
+ result = DOM.evaluate("child::GCHILD[position()=1]", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("child::GCHILD[position()=1]", result, [GCHILD11]);
+
+ result = DOM.evaluate("child::GCHILD[1]", CHILD1, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ checkSnapshot("child::GCHILD[1]", result, [GCHILD11]);
+
+ var successfullyParsed = true;
+
+</script>
+<script src="../../../js/resources/js-test-post.js"></script>
+</body>
+</html>
</ins><span class="cx">Property changes on: trunk/LayoutTests/fast/xpath/4XPath/Core/test_step.html
</span><span class="cx">___________________________________________________________________
</span><span class="cx">Name: svn:mime-type
</span><span class="cx"> + text/html
</span></span></pre>
</div>
</div>
</body>
</html>