Changeset 126621 in webkit
- Timestamp:
- Aug 24, 2012 1:51:57 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r126618 r126621 1 2012-08-24 Chris Evans <cevans@google.com> 2 3 Improve xpath-detached-nodes.html test. 4 https://bugs.webkit.org/show_bug.cgi?id=36427 5 6 Reviewed by Alexey Proskuryakov. 7 8 * fast/xpath/xpath-detached-nodes-expected.txt: 9 * fast/xpath/xpath-detached-nodes.html: Increase coverage and improve log messages. 10 1 11 2012-08-24 Sheriff Bot <webkit.review.bot@gmail.com> 2 12 -
trunk/LayoutTests/fast/xpath/xpath-detached-nodes-expected.txt
r125631 r126621 2 2 See https://bugs.webkit.org/show_bug.cgi?id=36427 3 3 4 PASS result.numberValue is 1 5 PASS result.numberValue is 0 6 PASS result.numberValue is 1 7 PASS result.numberValue is 0 8 PASS result.numberValue is NaN 4 PASS document.evaluate('count(/div)', child, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 5 PASS document.evaluate('count(/html)', child, null, XPathResult.NUMBER_TYPE, null).numberValue is 0 6 PASS document.evaluate('count(/)', child, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 7 PASS document.evaluate('count(//html)', child, null, XPathResult.NUMBER_TYPE, null).numberValue is 0 8 PASS document.evaluate('count(//div)', child, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 9 PASS document.evaluate('count(//h2)', child, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 10 PASS document.evaluate('count(/h1)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 11 PASS document.evaluate('count(/html)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is 0 12 PASS document.evaluate('count(/)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 13 PASS document.evaluate('count(//html)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is 0 14 PASS document.evaluate('count(//p)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is 0 15 PASS document.evaluate('count(//h1)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is 1 16 PASS document.evaluate('/* | *', ele, null, XPathResult.NUMBER_TYPE, null).numberValue is NaN 9 17 PASS successfullyParsed is true 10 18 -
trunk/LayoutTests/fast/xpath/xpath-detached-nodes.html
r125631 r126621 10 10 11 11 <script> 12 if (window.testRunner)13 testRunner.dumpAsText();14 15 12 frag = document.createDocumentFragment(); 16 13 child = document.createElement('div'); 17 14 frag.appendChild(child); 18 result = document.evaluate("count(/div)", 19 child, null, XPathResult.NUMBER_TYPE, null); 20 shouldBe("result.numberValue", "1"); 21 result = document.evaluate("count(/html)", 22 child, null, XPathResult.NUMBER_TYPE, null); 23 shouldBe("result.numberValue", "0"); 15 child.appendChild(document.createElement('h2')); 16 shouldBe("document.evaluate('count(/div)', child, null, XPathResult.NUMBER_TYPE, null).numberValue", 17 "1"); 18 shouldBe("document.evaluate('count(/html)', child, null, XPathResult.NUMBER_TYPE, null).numberValue", 19 "0"); 20 shouldBe("document.evaluate('count(/)', child, null, XPathResult.NUMBER_TYPE, null).numberValue", 21 "1"); 22 shouldBe("document.evaluate('count(//html)', child, null, XPathResult.NUMBER_TYPE, null).numberValue", 23 "0"); 24 shouldBe("document.evaluate('count(//div)', child, null, XPathResult.NUMBER_TYPE, null).numberValue", 25 "1"); 26 shouldBe("document.evaluate('count(//h2)', child, null, XPathResult.NUMBER_TYPE, null).numberValue", 27 "1"); 24 28 25 29 ele = document.createElement('p'); 26 30 ele.appendChild(document.createElement('h1')); 27 result = document.evaluate("count(/h1)", 28 ele, null, XPathResult.NUMBER_TYPE, null); 29 shouldBe("result.numberValue", "1"); 30 result = document.evaluate("count(/html)", 31 ele, null, XPathResult.NUMBER_TYPE, null); 32 shouldBe("result.numberValue", "0"); 33 result = document.evaluate("/* | *", 34 ele, null, XPathResult.NUMBER_TYPE, null); 35 shouldBe("result.numberValue", "NaN"); 31 shouldBe("document.evaluate('count(/h1)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 32 "1"); 33 shouldBe("document.evaluate('count(/html)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 34 "0"); 35 shouldBe("document.evaluate('count(/)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 36 "1"); 37 shouldBe("document.evaluate('count(//html)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 38 "0"); 39 shouldBe("document.evaluate('count(//p)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 40 "0"); 41 shouldBe("document.evaluate('count(//h1)', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 42 "1"); 43 shouldBe("document.evaluate('/* | *', ele, null, XPathResult.NUMBER_TYPE, null).numberValue", 44 "NaN"); 36 45 </script> 37 46 <script src="../js/resources/js-test-post.js"></script> -
trunk/Source/WebCore/ChangeLog
r126620 r126621 1 2012-08-24 Chris Evans <cevans@google.com> 2 3 Update comment regarding root node handling in XPath for detached trees. 4 https://bugs.webkit.org/show_bug.cgi?id=36427 5 6 Reviewed by Alexey Proskuryakov. 7 8 * xml/XPathPath.cpp: 9 (WebCore::XPath::LocationPath::evaluate): Update XPath root node comment. 10 1 11 2012-08-24 Justin Novosad <junov@chromium.org> 2 12 -
trunk/Source/WebCore/xml/XPathPath.cpp
r125631 r126621 94 94 EvaluationContext& evaluationContext = Expression::evaluationContext(); 95 95 EvaluationContext backupContext = evaluationContext; 96 // For absolute location paths, the context node is ignored. The 97 // document's root node is used for attached nodes, otherwise the root 98 // node of the detached subtree is used. 96 // http://www.w3.org/TR/xpath/ 97 // Section 2, Location Paths: 98 // "/ selects the document root (which is always the parent of the document element)" 99 // "A / by itself selects the root node of the document containing the context node." 100 // In the case of a tree that is detached from the document, we violate 101 // the spec and treat / as the root node of the detached tree. 102 // This is for compatibility with Firefox, and also seems like a more 103 // logical treatment of where you would expect the "root" to be. 99 104 Node* context = evaluationContext.node.get(); 100 105 if (m_absolute && context->nodeType() != Node::DOCUMENT_NODE) {
Note: See TracChangeset
for help on using the changeset viewer.