diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-04-28 01:36:18 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-04-28 01:36:18 +0000 |
commit | 1d67b9de288045192f34595721f0ba28ea22bb3e (patch) | |
tree | 2ed97c7994b9d6fdb60d58d188ae34444efab2bd /test | |
parent | 75f4f699fdfd8397be569a7f0cbc608387ddf7ea (diff) | |
download | ruby-1d67b9de288045192f34595721f0ba28ea22bb3e.tar.gz |
rexml: disable XPath 1.0 compatible "#{ELEMENT_NAME}" processing by default
It breaks backward compatibility than I thought. So it's disabled by
default. It means that REXML's XPath processor isn't compatible with
XPath 1.0. But it will be acceptable for users.
We can enable it by specifying "strict: true" to
REXML::XPathParser.new explicitly.
* lib/rexml/xpath.rb,
lib/rexml/xpath_parser.rb: Accept "strict: true" option.
* test/rexml/test_contrib.rb,
test/rexml/xpath/test_base.rb: Use not XPath 1.0 compatible behavior.
* test/rexml/test_jaxen.rb: Use XPath 1.0 compatible behavior.
* test/rss/test_1.0.rb,
test/rss/test_dublincore.rb,
spec/ruby/library/rexml/element/namespace_spec.rb,
spec/ruby/library/rexml/element/namespaces_spec.rb,
spec/ruby/library/rexml/element/prefixes_spec.rb: Enable again.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r-- | test/rexml/test_contrib.rb | 2 | ||||
-rw-r--r-- | test/rexml/test_jaxen.rb | 6 | ||||
-rw-r--r-- | test/rexml/xpath/test_base.rb | 10 | ||||
-rw-r--r-- | test/rss/test_1.0.rb | 8 | ||||
-rw-r--r-- | test/rss/test_dublincore.rb | 2 |
5 files changed, 10 insertions, 18 deletions
diff --git a/test/rexml/test_contrib.rb b/test/rexml/test_contrib.rb index 28b96a4972..8462b3c23f 100644 --- a/test/rexml/test_contrib.rb +++ b/test/rexml/test_contrib.rb @@ -451,7 +451,7 @@ EOL end def test_external_entity - xp = '//*:channel/*:title' + xp = '//channel/title' %w{working.rss broken.rss}.each do |path| File.open(File.join(fixture_path(path))) do |file| diff --git a/test/rexml/test_jaxen.rb b/test/rexml/test_jaxen.rb index 81cef500a3..9640b8290b 100644 --- a/test/rexml/test_jaxen.rb +++ b/test/rexml/test_jaxen.rb @@ -84,7 +84,7 @@ module REXMLTests def process_value_of(context, variables, namespaces, value_of) expected = value_of.text xpath = value_of.attributes["select"] - matched = XPath.match(context, xpath, namespaces, variables) + matched = XPath.match(context, xpath, namespaces, variables, strict: true) message = user_message(context, xpath, matched) assert_equal(expected || "", @@ -95,7 +95,7 @@ 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) xpath = test.attributes["select"] - matched = XPath.match(context, xpath, namespaces, variables) + matched = XPath.match(context, xpath, namespaces, variables, strict: true) # might be a test with no count attribute, but nested valueOf elements expected = test.attributes["count"] if expected @@ -113,7 +113,7 @@ module REXMLTests def process_exceptional_test(context, variables, namespaces, test) xpath = test.attributes["select"] assert_raise(REXML::ParseException) do - XPath.match(context, xpath, namespaces, variables) + XPath.match(context, xpath, namespaces, variables, strict: true) end end diff --git a/test/rexml/xpath/test_base.rb b/test/rexml/xpath/test_base.rb index 790dcaea22..5a03087ca6 100644 --- a/test/rexml/xpath/test_base.rb +++ b/test/rexml/xpath/test_base.rb @@ -880,10 +880,12 @@ module REXMLTests <tada xmlns=''>xb</tada> </tag1> XML - x = d.root - num = 0 - x.each_element('tada') { num += 1 } - assert_equal(1, num) + actual = [] + d.root.each_element('tada') do |element| + actual << element.to_s + end + assert_equal(["<tada>xa</tada>", "<tada xmlns=''>xb</tada>"], + actual) end def test_ticket_39 diff --git a/test/rss/test_1.0.rb b/test/rss/test_1.0.rb index 5be6a0587f..33ae29141b 100644 --- a/test/rss/test_1.0.rb +++ b/test/rss/test_1.0.rb @@ -54,8 +54,6 @@ module RSS end def test_channel - skip # FIXME - about = "http://hoge.com" resource = "http://hoge.com/hoge.png" @@ -207,8 +205,6 @@ EOR end def test_image - skip # FIXME - about = "http://hoge.com" h = { 'title' => "fugafuga", @@ -234,8 +230,6 @@ EOR end def test_item - skip # FIXME - about = "http://hoge.com" h = { 'title' => "fugafuga", @@ -261,8 +255,6 @@ EOR end def test_textinput - skip # FIXME - about = "http://hoge.com" h = { 'title' => "fugafuga", diff --git a/test/rss/test_dublincore.rb b/test/rss/test_dublincore.rb index cd22a00bc4..37ef177199 100644 --- a/test/rss/test_dublincore.rb +++ b/test/rss/test_dublincore.rb @@ -103,8 +103,6 @@ EOR end def test_to_s - skip # FIXME - assert_dc_to_s(@rss10_source, @rss10_parents, false) assert_dc_to_s(@rss10_source, @rss10_parents, true) |