diff options
Diffstat (limited to 'spec/ruby/library/rexml/shared/elements_to_a.rb')
-rw-r--r-- | spec/ruby/library/rexml/shared/elements_to_a.rb | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/spec/ruby/library/rexml/shared/elements_to_a.rb b/spec/ruby/library/rexml/shared/elements_to_a.rb new file mode 100644 index 0000000000..6299c628c3 --- /dev/null +++ b/spec/ruby/library/rexml/shared/elements_to_a.rb @@ -0,0 +1,34 @@ +require 'rexml/document' +require File.expand_path('../../../../spec_helper', __FILE__) + +describe :rexml_elements_to_a, shared: true do + before :each do + @e = REXML::Element.new "root" + @first = REXML::Element.new("FirstChild") + @second = REXML::Element.new("SecondChild") + @e << @first + @e << @second + end + + it "returns elements that match xpath" do + @e.elements.send(@method, "FirstChild").first.should == @first + end + + # According to the docs REXML::Element#get_elements is an alias for + # REXML::Elements.to_a. Implementation wise there's a difference, get_elements + # always needs the first param (even if it's nil). + # A patch was submitted: + # http://rubyforge.org/tracker/index.php?func=detail&aid=19354&group_id=426&atid=1698 + it "returns all childs if xpath is nil" do + @e.elements.send(@method).should == [@first, @second] + end + +end + +describe "REXML::REXML::Elements#to_a" do + it_behaves_like :rexml_elements_to_a, :to_a +end + +describe "REXML::REXML::Element#get_elements" do + it_behaves_like :rexml_elements_to_a, :get_elements +end |