Testing HTML Document Parsing Implementation in DevDocs
This test suite validates the core parsing functionality in the DevDocs documentation system, focusing on HTML document handling and title extraction. The tests ensure proper Nokogiri node creation and accurate parsing of both HTML fragments and complete documents.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
freecodecamp/devdocs
test/lib/docs/core/parser_test.rb
require_relative '../../../test_helper'
require_relative '../../../../lib/docs'
class DocsParserTest < Minitest::Spec
def parser(content)
Docs::Parser.new(content)
end
describe "#html" do
it "returns a Nokogiri Node" do
assert_kind_of Nokogiri::XML::Node, parser('').html
end
context "with an HTML fragment" do
it "returns the fragment" do
body = '<div>Test</div>'
html = parser(body).html
assert_equal '#document-fragment', html.name
assert_equal body, html.inner_html
end
end
context "with an HTML document" do
it "returns the document" do
body = '<!-- foo --> <!doctype html><meta charset=utf-8><title></title><div>Test</div>'
html = parser(body).html
assert_equal 'document', html.name
assert_equal '<div>Test</div>', html.at_css('body').inner_html
body = '<html><meta charset=utf-8><title></title><div>Test</div></html>'
html = parser(body).html
assert_equal 'document', html.name
assert_equal '<div>Test</div>', html.at_css('body').inner_html
end
end
end
describe "#title" do
it "returns nil when there is no <title>" do
body = '<!doctype html><meta charset=utf-8><div>Test</div>'
assert_nil parser(body).title
end
it "returns the <title> when there is one" do
body = '<!doctype html><meta charset=utf-8><title>Title</title><div>Test</div>'
assert_equal 'Title', parser(body).title
end
end
end