module Minitest::Extra::Matchers::DOM

Public Class Methods

included(_) click to toggle source
# File lib/minitest/extra/matchers/dom.rb, line 7
def self.included(_)
  Object.infect_an_assertion :assert_dom_equal, :must_equal_dom
  Object.infect_an_assertion :assert_attr_equal, :must_have_attr
end

Public Instance Methods

assert_attr_equal(value, element, name) click to toggle source
# File lib/minitest/extra/matchers/dom.rb, line 22
def assert_attr_equal(value, element, name)
  actual = Nokogiri::HTML.fragment(element).child.attr(name)

  assert_equal value, actual
end
assert_dom_equal(expected, actual, opts = {}) click to toggle source
# File lib/minitest/extra/matchers/dom.rb, line 12
def assert_dom_equal(expected, actual, opts = {})
  expected_dom = Nokogiri::HTML.fragment(expected)
  actual_dom   = Nokogiri::HTML.fragment(actual)

  assert(EquivalentXml.equivalent?(actual, expected, opts),
         ['expected:', expected_dom.to_s,
          'actual:', actual_dom.to_s].join("\n"))

end