2018-03-04 10:09:32 -05:00
|
|
|
require_relative '../../../spec_helper'
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-09-15 15:54:31 -04:00
|
|
|
ruby_version_is ''...'3.0' do
|
2020-01-11 18:14:26 -05:00
|
|
|
require 'rexml/document'
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-01-11 18:14:26 -05:00
|
|
|
describe "REXML::Document#new" do
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-01-11 18:14:26 -05:00
|
|
|
it "initializes context of {} unless specified" do
|
|
|
|
d = REXML::Document.new("<foo />")
|
|
|
|
d.context.should == {}
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-01-11 18:14:26 -05:00
|
|
|
it "has empty attributes if source is nil" do
|
|
|
|
d = REXML::Document.new(nil)
|
|
|
|
d.elements.should be_empty
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-01-11 18:14:26 -05:00
|
|
|
it "can use other document context" do
|
|
|
|
s = REXML::Document.new("")
|
|
|
|
d = REXML::Document.new(s)
|
|
|
|
d.context.should == s.context
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-01-11 18:14:26 -05:00
|
|
|
it "clones source attributes" do
|
|
|
|
s = REXML::Document.new("<root />")
|
|
|
|
s.attributes["some_attr"] = "some_val"
|
|
|
|
d = REXML::Document.new(s)
|
|
|
|
d.attributes.should == s.attributes
|
|
|
|
end
|
|
|
|
|
|
|
|
it "raises an error if source is not a Document, String or IO" do
|
|
|
|
-> {REXML::Document.new(3)}.should raise_error(RuntimeError)
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
|
2020-01-11 18:14:26 -05:00
|
|
|
it "does not perform XML validation" do
|
|
|
|
REXML::Document.new("Invalid document").should be_kind_of(REXML::Document)
|
|
|
|
end
|
2017-05-07 08:04:49 -04:00
|
|
|
end
|
|
|
|
end
|