mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
rexml: Fix a XPath bug of @attribute/parent
[Bug #14600] * lib/rexml/functions.rb: Fix a bug that "@attribute/parent" doesn't return element of its attribute. * test/rexml/test_jaxen.rb: Enable more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63083 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d050a28f76
commit
b537823f3d
2 changed files with 15 additions and 7 deletions
|
@ -236,8 +236,16 @@ module REXML
|
|||
nodeset = new_nodeset
|
||||
|
||||
when :parent
|
||||
nodeset = nodeset.collect{|n| n.parent}.compact
|
||||
#nodeset = expr(path_stack.dclone, nodeset.collect{|n| n.parent}.compact)
|
||||
new_nodeset = []
|
||||
nodeset.each do |node|
|
||||
if node.is_a?(Attribute)
|
||||
parent = node.element
|
||||
else
|
||||
parent = node.parent
|
||||
end
|
||||
new_nodeset << parent if parent
|
||||
end
|
||||
nodeset = new_nodeset
|
||||
node_types = ELEMENTS
|
||||
|
||||
when :ancestor
|
||||
|
|
|
@ -18,9 +18,9 @@ module REXMLTests
|
|||
def test_contents ; process_test_case("contents") ; end
|
||||
def test_defaultNamespace ; process_test_case("defaultNamespace") ; end
|
||||
def test_fibo ; process_test_case("fibo") ; end
|
||||
def _test_id ; process_test_case("id") ; end
|
||||
def _test_jaxen24 ; process_test_case("jaxen24") ; end
|
||||
def _test_lang ; process_test_case("lang") ; end
|
||||
def test_id ; process_test_case("id") ; end
|
||||
def test_jaxen24 ; process_test_case("jaxen24") ; end
|
||||
def test_lang ; process_test_case("lang") ; end
|
||||
def _test_message ; process_test_case("message") ; end
|
||||
def _test_moreover ; process_test_case("moreover") ; end
|
||||
def _test_much_ado ; process_test_case("much_ado") ; end
|
||||
|
@ -111,8 +111,8 @@ module REXMLTests
|
|||
|
||||
# processes a tests/document/context/test node ( where @exception is false or doesn't exist )
|
||||
def process_nominal_test(context, variables, namespaces, test)
|
||||
select = test.attributes["select"]
|
||||
matched = XPath.match(context, select, namespaces, variables)
|
||||
xpath = test.attributes["select"]
|
||||
matched = XPath.match(context, xpath, namespaces, variables)
|
||||
# might be a test with no count attribute, but nested valueOf elements
|
||||
expected = test.attributes["count"]
|
||||
if expected
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue