parser_test.rb 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. require 'test_helper'
  2. require 'docs'
  3. class DocsParserTest < MiniTest::Spec
  4. def parser(content)
  5. Docs::Parser.new(content)
  6. end
  7. describe "#html" do
  8. it "returns a Nokogiri Node" do
  9. assert_kind_of Nokogiri::XML::Node, parser('').html
  10. end
  11. context "with an HTML fragment" do
  12. it "returns the fragment" do
  13. body = '<div>Test</div>'
  14. assert_equal body, parser(body).html.inner_html
  15. end
  16. end
  17. context "with an HTML document" do
  18. it "returns the <body>" do
  19. body = '<!doctype html><meta charset=utf-8><title></title><div>Test</div>'
  20. assert_equal '<div>Test</div>', parser(body).html.inner_html
  21. body = '<html><meta charset=utf-8><title></title><div>Test</div></html>'
  22. assert_equal '<div>Test</div>', parser(body).html.inner_html
  23. end
  24. end
  25. end
  26. describe "#title" do
  27. it "returns nil when there is no <title>" do
  28. body = '<!doctype html><meta charset=utf-8><div>Test</div>'
  29. assert_nil parser(body).title
  30. end
  31. it "returns the <title> when there is one" do
  32. body = '<!doctype html><meta charset=utf-8><title>Title</title><div>Test</div>'
  33. assert_equal 'Title', parser(body).title
  34. end
  35. end
  36. end