aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/assertions/assert_dom.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-09-03 20:18:06 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-09-03 20:18:06 +0000
commitf12fdc50a69c3861add6b3ec53507f1c6a25e1cd (patch)
treefbe33bfd44ca5a62ff4c77654c891e1550b1a191 /actionpack/lib/action_controller/assertions/assert_dom.rb
parent3142502964f94d6144312ae2c368b4c4589fa25a (diff)
downloadrails-f12fdc50a69c3861add6b3ec53507f1c6a25e1cd.tar.gz
rails-f12fdc50a69c3861add6b3ec53507f1c6a25e1cd.tar.bz2
rails-f12fdc50a69c3861add6b3ec53507f1c6a25e1cd.zip
Better compartmentalizing of assertions
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4931 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
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