summaryrefslogtreecommitdiff
path: root/test/rexml/xpath
diff options
context:
space:
mode:
authorkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-23 09:01:32 +0000
committerkou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-02-23 09:01:32 +0000
commitba5ed845b30c81fbf92c052b83f54198cd272bbd (patch)
tree5a7fc9f29a6b89560d71fd0d8649e8ba76ae9a52 /test/rexml/xpath
parent44a9509f2ff2be85b97ade9806857e0948c29a1b (diff)
* 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
Diffstat (limited to 'test/rexml/xpath')
-rw-r--r--test/rexml/xpath/test_node.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/test/rexml/xpath/test_node.rb b/test/rexml/xpath/test_node.rb
new file mode 100644
index 00000000000..db7a2efca66
--- /dev/null
+++ b/test/rexml/xpath/test_node.rb
@@ -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