Tests for the various XML node types.

This commit is contained in:
Yorick Peterse 2014-03-28 16:34:30 +01:00
parent c366a96ce8
commit 331726b2ca
6 changed files with 186 additions and 0 deletions

View File

@ -0,0 +1,26 @@
require 'spec_helper'
describe Oga::XML::Cdata do
context 'setting attributes' do
example 'set the text via the constructor' do
described_class.new(:text => 'foo').text.should == 'foo'
end
example 'set the text via a setter' do
instance = described_class.new
instance.text = 'foo'
instance.text.should == 'foo'
end
end
context '#to_xml' do
before do
@instance = described_class.new(:text => 'foo')
end
example 'generate the corresponding XML' do
@instance.to_xml.should == '<![CDATA[foo]]>'
end
end
end

View File

@ -0,0 +1,26 @@
require 'spec_helper'
describe Oga::XML::Comment do
context 'setting attributes' do
example 'set the text via the constructor' do
described_class.new(:text => 'foo').text.should == 'foo'
end
example 'set the text via a setter' do
instance = described_class.new
instance.text = 'foo'
instance.text.should == 'foo'
end
end
context '#to_xml' do
before do
@instance = described_class.new(:text => 'foo')
end
example 'generate the corresponding XML' do
@instance.to_xml.should == '<!--foo-->'
end
end
end

View File

@ -0,0 +1,32 @@
require 'spec_helper'
describe Oga::XML::Document do
context 'setting attributes' do
example 'set the child nodes via the constructor' do
children = [Oga::XML::Comment.new(:text => 'foo')]
document = described_class.new(:children => children)
document.children.should == children
end
example 'set the child nodes via a setter' do
children = [Oga::XML::Comment.new(:text => 'foo')]
document = described_class.new
document.children = children
document.children.should == children
end
end
context '#to_xml' do
before do
child = Oga::XML::Comment.new(:text => 'foo')
@document = described_class.new(:children => [child])
end
example 'generate the corresponding XML' do
@document.to_xml.should == '<!--foo-->'
end
end
end

View File

@ -0,0 +1,60 @@
require 'spec_helper'
describe Oga::XML::Element do
context 'setting attributes' do
example 'set the name via the constructor' do
described_class.new(:name => 'p').name.should == 'p'
end
example 'set the name via a setter' do
instance = described_class.new
instance.name = 'p'
instance.name.should == 'p'
end
example 'set the default attributes' do
described_class.new.attributes.should == {}
end
end
context '#attribute' do
before do
@instance = described_class.new(:attributes => {'key' => 'value'})
end
example 'return an attribute' do
@instance.attribute('key').should == 'value'
end
end
context '#to_xml' do
example 'generate the corresponding XML' do
described_class.new(:name => 'p').to_xml.should == '<p></p>'
end
example 'include the namespace if present' do
instance = described_class.new(:name => 'p', :namespace => 'foo')
instance.to_xml.should == '<foo:p></p>'
end
example 'include the attributes if present' do
instance = described_class.new(
:name => 'p',
:attributes => {'key' => 'value'}
)
instance.to_xml.should == '<p key="value"></p>'
end
example 'include the child nodes if present' do
instance = described_class.new(
:name => 'p',
:children => [Oga::XML::Comment.new(:text => 'foo')]
)
instance.to_xml.should == '<p><!--foo--></p>'
end
end
end

16
spec/oga/xml/node_spec.rb Normal file
View File

@ -0,0 +1,16 @@
require 'spec_helper'
describe Oga::XML::Node do
context '#initialize' do
example 'set the parent node' do
parent = described_class.new
child = described_class.new(:parent => parent)
child.parent.should == parent
end
example 'set the default child nodes' do
described_class.new.children.should == []
end
end
end

26
spec/oga/xml/text_spec.rb Normal file
View File

@ -0,0 +1,26 @@
require 'spec_helper'
describe Oga::XML::Text do
context 'setting attributes' do
example 'set the text via the constructor' do
described_class.new(:text => 'foo').text.should == 'foo'
end
example 'set the text via a setter' do
instance = described_class.new
instance.text = 'foo'
instance.text.should == 'foo'
end
end
context '#to_xml' do
before do
@instance = described_class.new(:text => 'foo')
end
example 'generate the corresponding XML' do
@instance.to_xml.should == 'foo'
end
end
end