require File.expand_path(File.join(File.dirname(__FILE__), '..', "helper"))
module Nokogiri
module HTML
class TestDocumentFragment < Nokogiri::TestCase
def setup
super
@html = Nokogiri::HTML.parse(File.read(HTML_FILE), HTML_FILE)
end
def test_new
fragment = Nokogiri::HTML::DocumentFragment.new(@html)
end
def test_fragment_should_have_document
fragment = Nokogiri::HTML::DocumentFragment.new(@html)
assert_equal @html, fragment.document
end
def test_name
fragment = Nokogiri::HTML::DocumentFragment.new(@html)
assert_equal '#document-fragment', fragment.name
end
def test_static_method
fragment = Nokogiri::HTML::DocumentFragment.parse("
a
")
assert_instance_of Nokogiri::HTML::DocumentFragment, fragment
end
def test_many_fragments
100.times { Nokogiri::HTML::DocumentFragment.new(@html) }
end
def test_subclass
klass = Class.new(Nokogiri::HTML::DocumentFragment)
fragment = klass.new(@html, "a
")
assert_instance_of klass, fragment
end
def test_html_fragment
fragment = Nokogiri::HTML.fragment("a
")
assert_equal "a
", fragment.to_s
end
def test_html_fragment_has_outer_text
doc = "ab
c"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
if Nokogiri::VERSION_INFO['libxml']['loaded'] <= "2.6.16"
assert_equal "ab
c
", fragment.to_s
else
assert_equal "ab
c", fragment.to_s
end
end
def test_html_fragment_case_insensitivity
doc = "b"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
assert_equal "b", fragment.to_s
end
def test_html_fragment_with_leading_whitespace
doc = " b
"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
assert_equal "b
", fragment.to_s
end
def test_to_s
doc = "foo
bar"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
assert_equal "foo
bar", fragment.to_s
end
def test_to_html
doc = "foo
bar"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
assert_equal "foo
bar", fragment.to_html
end
def test_to_xhtml
doc = "foo
bar"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
if Nokogiri::VERSION_INFO['libxml']['loaded'] >= "2.7.0"
assert_equal "foo
bar", fragment.to_xhtml
else
assert_equal "foo
bar", fragment.to_xhtml
end
end
def test_to_xml
doc = "foo
bar"
fragment = Nokogiri::HTML::Document.new.fragment(doc)
assert_equal "foo
bar", fragment.to_xml
end
end
end
end