* lib/rexml/xmltokens.rb: Add missing non ASCII valid characters

to element name characters. Now, REXML name tokens exactly
  match "[5] Name" in the XML spec and "[4] NCName" in the
  Namespaces in XML spec. See comment about the details.
  [Bug #9539]  [ruby-core:60901]
  Reported by Mario Barcala. Thanks!!!

* test/rexml/xpath/test_node.rb: Add tests for the above case.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kou 2014-02-23 09:01:32 +00:00
parent 44a9509f2f
commit ba5ed845b3
3 changed files with 122 additions and 5 deletions

View file

@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
require_relative "../rexml_test_utils"
require "rexml/document"
class TestXPathNode < Test::Unit::TestCase
def matches(xml, xpath)
document = REXML::Document.new(xml)
REXML::XPath.each(document, xpath).collect(&:to_s)
end
class TestQName < self
def test_ascii
xml = <<-XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<ascii>
<child>child</child>
</ascii>
</root>
XML
assert_equal(["<child>child</child>"],
matches(xml, "/root/ascii/child"))
end
def test_non_ascii
xml = <<-XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<non-àscii>
<child>child</child>
</non-àscii>
</root>
XML
assert_equal(["<child>child</child>"],
matches(xml, "/root/non-àscii/child"))
end
end
end