Have_tag and img's


#1

I’m specing some xhtml (which I don’t normally do, so forgive me if
this is basic).

I’ve got the following spec:

   it "should build xhtml form pieces" do
     @captcha.should_receive(:request_image).and_return @image
     @captcha.vidoop_captcha().should have_tag "div.captcha" do
       with_tag 

“img[src=http://api.vidoop.com/vs/captchas/cpt123/image
]”
with_tag “input[type=hidden][name=captcha_id]”
with_tag “input[name=captcha]”
end
end

@captcha.vidoop_captcha is returning the following html:

foo bar

And my error is:
‘Vidoop::Captcha::Helper rendering a catpcha should build xhtml form
pieces’ FAILED
Expected at least 1 element matching
“img[src=‘http://api.vidoop.com/vs/captchas/cpt123/image
]”, found 0.
is not true.

I’ve tried with_tag as simple as “img” but even that isn’t matching.
The rest of the spec passes.

Any ideas?
Thanks,
BJ Clark


#2

BJ Clark wrote:

      with_tag "input[type=hidden][name=captcha_id]"
      with_tag "input[name=captcha]"
    end
  end

I suspect the XPath predicate should be [@name=‘captcha’], but I don’t
know
with_tag shortcuts.

You might also try (>cough<) my assert_xhtml:

@captcha.vidoop_captcha().should be_html_with{
div :id => :captcha do
img :src => ‘http://api.vidoop.com/vs/captchas/cpt123/image
input :type => :hidden, :name => :captcha_id
input :name => :captcha
end
end

I invented it specifically to solve the verbosity problem you
encountered. gem
install nokogiri assert2, and require ‘assert2/xhtml’.

If it fails, it prints out the HTML pattern it sought, and the sample
HTML from
your production code.


Phlip