Module: ActionController::Assertions::DomAssertions
- Defined in:
- lib/action_controller/assertions/dom_assertions.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#assert_dom_equal(expected, actual, message = "") ⇒ Object
Test two HTML strings for equivalency (e.g., identical up to reordering of attributes).
-
#assert_dom_not_equal(expected, actual, message = "") ⇒ Object
The negated form of
assert_dom_equal
.
Class Method Details
.strip_whitespace!(nodes) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 |
# File 'lib/action_controller/assertions/dom_assertions.rb', line 4 def self.strip_whitespace!(nodes) nodes.reject! do |node| if node.is_a?(HTML::Text) node.content.strip! node.content.empty? else strip_whitespace! node.children false end end end |
Instance Method Details
#assert_dom_equal(expected, actual, message = "") ⇒ Object
Test two HTML strings for equivalency (e.g., identical up to reordering of attributes)
Examples
# assert that the referenced method generates the appropriate HTML string
assert_dom_equal '<a href="http://www.example.com">Apples</a>', link_to("Apples", "http://www.example.com")
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/action_controller/assertions/dom_assertions.rb', line 23 def assert_dom_equal(expected, actual, = "") clean_backtrace do expected_dom = HTML::Document.new(expected).root actual_dom = HTML::Document.new(actual).root DomAssertions.strip_whitespace!(expected_dom.children) DomAssertions.strip_whitespace!(actual_dom.children) = (, "<?> expected but was\n<?>.", expected_dom.to_s, actual_dom.to_s) assert_block() { expected_dom == actual_dom } end end |
#assert_dom_not_equal(expected, actual, message = "") ⇒ Object
The negated form of assert_dom_equal
.
Examples
# assert that the referenced method does not generate the specified HTML string
assert_dom_not_equal '<a href="http://www.example.com">Apples</a>', link_to("Oranges", "http://www.example.com")
42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/action_controller/assertions/dom_assertions.rb', line 42 def assert_dom_not_equal(expected, actual, = "") clean_backtrace do expected_dom = HTML::Document.new(expected).root actual_dom = HTML::Document.new(actual).root DomAssertions.strip_whitespace!(expected_dom.children) DomAssertions.strip_whitespace!(actual_dom.children) = (, "<?> expected to be != to\n<?>.", expected_dom.to_s, actual_dom.to_s) assert_block() { expected_dom != actual_dom } end end |