1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
require "helper"
module Nokogiri
module XML
class TestCDATA < Nokogiri::TestCase
def setup
super
@xml = Nokogiri::XML.parse(File.read(XML_FILE), XML_FILE)
end
def test_cdata_node
name = @xml.xpath('//employee[2]/name').first
assert cdata = name.children[1]
assert cdata.cdata?
assert_equal '#cdata-section', cdata.name
end
def test_new
node = CDATA.new(@xml, "foo")
assert_equal "foo", node.content
node = CDATA.new(@xml.root, "foo")
assert_equal "foo", node.content
end
def test_new_with_nil
node = CDATA.new(@xml, nil)
assert_nil node.content
end
def test_new_with_non_string
assert_raises(TypeError) do
CDATA.new(@xml, 1.234)
end
end
def test_lots_of_new_cdata
assert 100.times { CDATA.new(@xml, "asdfasdf") }
end
def test_content=
node = CDATA.new(@xml, 'foo')
assert_equal('foo', node.content)
node.content = '& <foo> &'
assert_equal('& <foo> &', node.content)
assert_equal('<![CDATA[& <foo> &]]>', node.to_xml)
node.content = 'foo ]]> bar'
assert_equal('foo ]]> bar', node.content)
end
end
end
end
|