summaryrefslogtreecommitdiff
path: root/test/rexml
AgeCommit message (Collapse)Author
2018-04-28rexml: disable XPath 1.0 compatible "#{ELEMENT_NAME}" processing by defaultkou
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
2018-04-22rexml: Fix XPath bug of //#{ELEMENT_NAME}[#{POSITION}]kou
The position should be counted for each nodeset but the previous implementation counts position for union-ed nodeset. For example, "/a/*/*[1]" should be matched to "<c1/>" and "<c2/>" with the following XML. <a> <b> <c1/> </b> <b> <c2/> </b> </a> But the previous implementation just returns only "<c1/>". * lib/rexml/element.rb (REXML::Attributes#each_attribute): Support Enumerator for no block use. * lib/rexml/element.rb (REXML::Attributes#each): Support Enumerator for no block use. * lib/rexml/functions.rb (REXML::Functions.string): Support NaN again. * lib/rexml/xpath_parser.rb: Re-implement "Step" evaluator. It should evaluate "AxisSpecifier", "NodeTest" and "Predicate" in one step to respect position for each nodeset. * test/rexml/test_jaxen.rb: Enable more tests. Remained tests should be also enabled but it'll not be near future. * test/rexml/xpath/test_base.rb: Fix expected value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-22rexml: Fix XPath bug of /#{ELEMENT_NAME}kou
It doesn't mean that all elements which name "ELEMENT_NAME" with any namespace URI including null namespace URI. It means that all elements which name "ELEMENT_NAME" with null namespace URI. https://www.w3.org/TR/1999/REC-xpath-19991116/#NT-NodeTest > if the QName does not have a prefix, then the namespace URI is null > (this is the same way attribute names are expanded). We need to use "*[local-name()='#{ELEMENT_NAME}']" for all elements which name "ELEMENT_NAME" with any namespace URI including null namespace URI in XPath 1.0. But it's inconvenient. So this change includes "*:#{LOCAL_NAME}" syntax support that is introduced since XPath 2.0. * lib/rexml/parsers/xpathparser.rb: Support "*:#{LOCAL_NAME}" syntax that is introduced since XPath 2.0. * lib/rexml/xpath_parser.rb: * Fix namespace URI processing for "#{ELEMENT_NAME}". Now, "#{ELEMENT_NAME}" doesn't accept elements with null namespace URI. * Add "*:#{LOCAL_NAME}" support. * test/rexml/test_contrib.rb, test/rexml/test_core.rb, test/rexml/xpath/test_base.rb: Follow this change. * test/rexml/test_jaxen.rb: Fix namespace processing. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-21rexml: Enable more testskou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-21rexml: Fix XPath concat() implementationkou
* lib/rexml/functions.rb (REXML::Functions.concat): Implement. * test/rexml/test_jaxen.rb: Enable one more test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-21rexml: Fix XPath string() implementationkou
* lib/rexml/functions.rb( REXML::Functions.string): * Support context node. * Fix implementation for document node to remove out of root nodes. * Support processing instruction node. * Improve implementation for integer to omit decimals. * test/rexml/test_jaxen.rb: Enable processing instruction test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-21rexml: Make more readablekou
test/rexml/test_jaxen.rb: Use more meaningful name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-21rexml: Fix a test bugkou
test/rexml/test_jaxen.rb: Fix wrong assert_raise usage. Note that this code isn't used yet. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-21rexml: Make more readablekou
test/rexml/xpath/test_base.rb: Use here document for readability. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-19rexml: Fix a XPath bug that white spaces aren't ignoredkou
lib/rexml/parsers/xpathparser.rb: Ignore white spaces in relative location path. test/rexml/xpath/test_base.rb: Add more test patterns and use more debug friendly assertion style. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-19rexml: Fix wrong assertionkou
test/rexml/xpath/test_base.rb: Use constant value for the expected value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-19rexml: Use more debug friendly assertion stylekou
test/rexml/xpath/test_base.rb: Expand loop assertion and stop to checking just the first value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-19rexml: Use more debug friendly assertion stylekou
test/rexml/xpath/test_base.rb: Stop to use separated assertions for checking array value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-19rexml: Make more readablekou
test/rexml/xpath/test_base.rb: Use here document for XML. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-04rexml: Fix a XPath bug of /child::node()kou
[Bug #14600] * lib/rexml/xpath_parser.rb: Fix a bug that "/child::node()" returns XML declaration and text nodes out of root element. * test/rexml/test_jaxen.rb: Enable more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-04rexml: Fix a XPath bug of @attribute/parentkou
[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
2018-04-03rexml: Fix a XPath bug of name(node-set)kou
[Bug #14600] * lib/rexml/functions.rb: Fix a bug that "name(node-set)" returns element instead of element name. * test/rexml/test_jaxen.rb: Enable more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63079 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-04-01Start re-enabling Jaxen testskou
[Bug #14600] Reported by MSP-Greg. Thanks!!! * lib/rexml/xpath_parser.rb: Fix a bug that "following_siblings::*[N]" doesn't work. * test/rexml/test_jaxen.rb: Enable only axis test for now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-13Rename test classes to allow stable test count when running test-all -jnobu
[Fix GH-1763] From: MSP-Greg <MSP-Greg@users.noreply.github.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-08-13REXML: Fix a bug that unexpected methods can be called as a XPath functionkou
[HackerOne:249295] Reported by Andrea Jegher. Thanks!!! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-06-07rexml: add close tag check on end of document to StreamParserkou
[ruby-core:81593] [Bug #13636] Reported by Anton Sivakov. Thanks!!! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-12-06rexml: REXML::Element#[] accepts String or Symbol as attribute namekou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-13Fix tests depending on sort stabilitynobu
* test/rexml/xpath/test_text.rb (test_ancestors): Array#sort may not be stable. [ruby-core:76088] [Bug #12509] * test/rss/test_maker_{0.9,1.0,2.0}.rb (test_items): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-10-12better assertionnobu
* test/rexml/xpath/test_text.rb (test_ancestors): use assert_kind_of for better assertion message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-05-17Use Integer instead of Fixnum and Bignum.akr
* object.c, numeric.c, enum.c, ext/-test-/bignum/mul.c, lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rexml/xpath_parser.rb, lib/rubygems/specification.rb, lib/uri/generic.rb, bootstraptest/test_eval.rb, basictest/test.rb, test/-ext-/bignum/test_big2str.rb, test/-ext-/bignum/test_div.rb, test/-ext-/bignum/test_mul.rb, test/-ext-/bignum/test_str2big.rb, test/csv/test_data_converters.rb, test/date/test_date.rb, test/json/test_json_generate.rb, test/minitest/test_minitest_mock.rb, test/openssl/test_cipher.rb, test/rexml/test_jaxen.rb, test/ruby/test_array.rb, test/ruby/test_basicinstructions.rb, test/ruby/test_bignum.rb, test/ruby/test_case.rb, test/ruby/test_class.rb, test/ruby/test_complex.rb, test/ruby/test_enum.rb, test/ruby/test_eval.rb, test/ruby/test_iseq.rb, test/ruby/test_literal.rb, test/ruby/test_math.rb, test/ruby/test_module.rb, test/ruby/test_numeric.rb, test/ruby/test_range.rb, test/ruby/test_rational.rb, test/ruby/test_refinement.rb, test/ruby/test_rubyvm.rb, test/ruby/test_struct.rb, test/ruby/test_variable.rb, test/rubygems/test_gem_specification.rb, test/thread/test_queue.rb: Use Integer instead of Fixnum and Bignum. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-24fix common misspelling [ci skip]nobu
* compile.c, cont.c, doc, man: fix common misspelling. [ruby-core:72466] [Bug #11870] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16Add frozen_string_literal: false for all filesnaruse
When you change this to true, you may need to add more tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-06-02use assert_raisenobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rb: Indent.kou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rbkou
(REXMLTests::TestDocument::EntityExpansionLimitTest): Group tests by general entity and parameter entity. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rbkou
(REXMLTests::TestDocument::EntityExpansionLimitTest): Define test XML in each test method because (1) each XML in used only one test and (2) related data and code should be close. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rbkou
(REXMLTests::TestDocument::EntityExpansionLimitTest): Use one test method for one test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rbkou
(REXMLTests::TestDocument::EntityExpansionLimitTest): Use setup and teardown instead of ensure in test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rbkou
(REXMLTests::TestDocument::EntityExpansionLimitTest): Indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rb (REXMLTests::TestDocument): Groupkou
entity expansion limit related tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-15* test/rexml/test_document.rb (REXMLTests::TestDocument::BomTest):kou
Fix wrong parent class. It doesn't need inherit tests in TestDocument class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-13* lib/rexml/document.rb: add REXML::Document#document.nagachika
reported by Tomas Hoger <thoger@redhat.com> and patched by nahi. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-27* lib/rexml/entity.rb: keep the entity size within the limitation.usa
reported by Willis Vandevanter <will@silentrobots.com> and patched by nahi. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-23* lib/rexml/source.rb (REXML::IOSource#encoding_updated): Fix akou
bug that can't parse XML correctly when Encoding.default_internal is different with XML encoding. REXML::Source converts XML encoding on read. So IO should not convert XML encoding. Based on patch by NAKAMURA Usaku. [ruby-dev:48686] [Bug #10418] * test/rexml/test_encoding.rb (REXMLTests::EncodingTester#test_parse_utf16_with_utf8_default_internal): Add the for the above case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-23* test/rexml/test_encoding.rbkou
(REXMLTests::EncodingTester#test_parse_utf16): Use meaningful test name. "ticket" in the old test name means the ticket in REXML's issue tracker. The REXML's issue tracker was gone. So "ticket" is meaningless. * test/rexml/data/ticket_110_utf16.xml: Rename to ... * test/rexml/data/utf16.xml: ... this. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48108 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-23* test/rexml/test_encoding.rbkou
(REXMLTests::EncodingTester#test_ticket_110): Fix expected and actual order. Patch by NAKAMURA Usaku. Thanks!!! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27Avoid a shadowing warning.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml: Avoid fd leaks.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml/test_document.rb: Indent.kou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml/test_document.rb: Wrap by REXMLTests module.kou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml/test_encoding_2.rb: Remove a needless file.kou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml/test_contrib.rb: Indent.kou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml/: Use REXMLTests as wrapping module for REXML tests.kou
I avoid using the same module for library in test because it provides "include REXML" environment in test. Normally, users don't use REXML on "include REXML" environment. So I don't want to write tests on "include REXML" environment. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27* test/rexml/test_comment.rb: Remove needless REXML module wrapping.kou
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-27Wrap REXML test classes by REXML module.akr
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e