Yesterday I reported the issue:
http://framework.zend.com/issues/browse/ZF-9764 and Matthew resolved it at
the speed of light (many thanks!), so the fix will be included in the next
mini release.

--

Núria

2010/4/28 Marian Meres <[email protected]>

> I confirm I had similar problems with css selectors. I didn't discover
> it deeply though, but used xpath assertion instead which worked as
> expected.
>
> m.
>
> On Tue, Apr 27, 2010 at 11:04 PM, Núria <[email protected]> wrote:
> > I'm afraid this is a bug. CSS selectors are converted to XPath queries
> > before the evaluation, and apparently there is something wrong with that
> > conversion.
> >
> > In this case, the expression:
> >
> >     #person_acti...@checked="checked"]
> >
> > is transformed to the XPath query:
> >
> >     //*...@id='person_active'][checked="checked"]
> >
> > The problem here is that the @ before the attribute checked is missing,
> > therefore it fails to match any element.
> >
> > This workaround will get the job done (although it's not a valid
> selector):
> >
> >     $this->assertQuery('#person_acti...@checked="checked"]');
> >
> > or you can use the assertXpath() method instead.
> >
> > --
> >
> > Núria
> >
> > 2010/4/27 David Mintz <[email protected]>
> >>
> >> I am having some trouble figuring out the magic words. My response body
> >> contains this:
> >>
> >> <input type="checkbox" name="person[active]" id="person_active"
> value="1"
> >> checked="checked" />
> >>
> >> In the controller test, I when I say
> >>
> >>      $this->assertQuery('#person_active');
> >>
> >> the assertion succeeds, but
> >>
> >>      $this->assertQuery('#person_active[checked="checked"]');
> >>
> >> fails with 'Failed asserting node DENOTED BY
> >> #person_active[checked="checked"] EXISTS.'
> >>
> >> After diddling around with several variations, the only thing that works
> >> for me is to assert that the containing element contains a checkbox
> whose
> >> "checked" attribute is "checked:"
> >>
> >>  $this->assertQuery('#person_active-element input[checked="checked"]') ;
> >>
> >> It might be worth noting that the jQuery snippet
> >>
> >>          $('#person_active[checked="checked"]').length == 1
> >>
> >> typed into the Firebug console evaluates to true. So it looks like my
> CSS
> >> is kosher.
> >>
> >> Any ideas? Thanks.
> >>
> >> --
> >> Support real health care reform:
> >> http://phimg.org/
> >>
> >> --
> >> David Mintz
> >> http://davidmintz.org/
> >>
> >>
> >
> >
>

Reply via email to