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 55 56
|
# frozen_string_literal: true
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_predicate(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
|