%(<form action="create" method="post"><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>),
%(<form action="create" method="get"><p><label for="post_title">Title</label><br /><input id="post_title" name="post[title]" size="30" type="text" value="Hello World" /></p>\n<p><label for="post_body">Body</label><br /><div class="fieldWithErrors"><textarea cols="40" id="post_body" name="post[body]" rows="20">Back to the hill and over it again!</textarea></div></p><input name="commit" type="submit" value="Create" /></form>),
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>),error_messages_for("post")
assert_equal%(<div class="errorDeathByClass" id="errorDeathById"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>),error_messages_for("post",:class=>"errorDeathByClass",:id=>"errorDeathById",:header_tag=>"h1")
assert_equal%(<div id="errorDeathById"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>),error_messages_for("post",:class=>nil,:id=>"errorDeathById",:header_tag=>"h1")
assert_equal%(<div class="errorDeathByClass"><h1>1 error prohibited this post from being saved</h1><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>),error_messages_for("post",:class=>"errorDeathByClass",:id=>nil,:header_tag=>"h1")
assert_dom_equal"<div class=\"differentError\">beforecan't be emptyafter</div>",error_message_on(:post,:author_name,:css_class=>'differentError',:prepend_text=>'before',:append_text=>'after')
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li><li>User email can't be empty</li></ul></div>),error_messages_for("post","user")
# reverse the order, error order changes and so does the title
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this user from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for("user","post")
# add the default to put post back in the title
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for("user","post",:object_name=>"post")
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for(:user,:post,:object_name=>:post)
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this monkey from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for(:user,:post,:object_name=>"monkey")
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this chunky bacon from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for(:user,:post,:object_name=>"chunky_bacon")
# hide header and explanation messages with nil or empty string
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for(:user,:post,:header_message=>nil,:message=>"")
# override header and explanation messages
header_message="Yikes! Some errors"
message="Please fix the following fields and resubmit:"
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>#{header_message}</h2><p>#{message}</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for(:user,:post,:header_message=>header_message,:message=>message)
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>1 error prohibited this post from being saved</h2><p>There were problems with the following fields:</p><ul><li>Author name can't be empty</li></ul></div>),error_messages_for("post",:object=>actual_post)
assert_dom_equal%(<div class="errorExplanation" id="errorExplanation"><h2>2 errors prohibited this user from being saved</h2><p>There were problems with the following fields:</p><ul><li>User email can't be empty</li><li>Author name can't be empty</li></ul></div>),error_messages_for("user","post",:object=>[actual_user,actual_post])