aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/assertions/assert_dom.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_controller/assertions/assert_dom.rb')
-rw-r--r--actionpack/lib/action_controller/assertions/assert_dom.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/assertions/assert_dom.rb b/actionpack/lib/action_controller/assertions/assert_dom.rb
new file mode 100644
index 0000000000..a765dff2cc
--- /dev/null
+++ b/actionpack/lib/action_controller/assertions/assert_dom.rb
@@ -0,0 +1,28 @@
+require 'test/unit'
+require 'test/unit/assertions'
+
+module ActionController
+ module Assertions
+ module DomAssertions
+ # test 2 html strings to be equivalent, i.e. identical up to reordering of attributes
+ def assert_dom_equal(expected, actual, message="")
+ clean_backtrace do
+ expected_dom = HTML::Document.new(expected).root
+ actual_dom = HTML::Document.new(actual).root
+ full_message = build_message(message, "<?> expected to be == to\n<?>.", expected_dom.to_s, actual_dom.to_s)
+ assert_block(full_message) { expected_dom == actual_dom }
+ end
+ end
+
+ # negated form of +assert_dom_equivalent+
+ def assert_dom_not_equal(expected, actual, message="")
+ clean_backtrace do
+ expected_dom = HTML::Document.new(expected).root
+ actual_dom = HTML::Document.new(actual).root
+ full_message = build_message(message, "<?> expected to be != to\n<?>.", expected_dom.to_s, actual_dom.to_s)
+ assert_block(full_message) { expected_dom != actual_dom }
+ end
+ end
+ end
+ end
+end \ No newline at end of file