Assert_select for <p><b>text</b>value</p>

I have the following html

textvalue

I can use assert_select "p>b", "text" to check the text portion, and assert_select "p", "value" to check that the value appears in a

. I cannot work out how to check that the two are in the same

. I have used assert_select for much more complex tasks but my mind seems to have gone blank and google has not provided an example of this type.

Any help would be much appreciated.

Colin

Any thoughts anyone?

Colin

Colin L. wrote:

I have the following html

textvalue

I can use assert_select "p>b", "text" to check the text portion, and assert_select "p", "value" to check that the value appears in a

. I cannot work out how to check that the two are in the same

. I have used assert_select for much more complex tasks but my mind seems to have gone blank and google has not provided an example of this type.

Any help would be much appreciated.

First off: you shouldn’t ever be using tags. That’s 1990s physical
styling. That’s bad. You should be using a semantically named
instead. But you probably knew that already.

Now to your question…I think I’d use assert_select ‘p’, :html =>
textvalue’. Does that help?

Colin

Best,

Marnen Laibow-Koser
http://www.marnen.org
[email protected]

On 27 August 2010 22:08, Colin L. [email protected] wrote:

I have the following html

textvalue

I can use assert_select "p>b", "text" to check the text portion, and assert_select "p", "value" to check that the value appears in a

. I cannot work out how to check that the two are in the same

. I have used assert_select for much more complex tasks but my mind seems to have gone blank and google has not provided an example of this type.

Pass a block to assert_select, perhaps?

assert_select “p”, /value/ do
assert_select “b”, “text”
end

Chris

On 30 August 2010 15:47, Marnen Laibow-Koser [email protected]
wrote:

google has not provided an example of this type.

Any help would be much appreciated.

First off: you shouldn’t ever be using tags. That’s 1990s physical
styling. That’s bad. You should be using a semantically named
instead. But you probably knew that already.

Yes I know, it was generated by a rails scaffold some years ago if I
remember correctly. It is a rarely used admin page so I have not got
round to re-factoring it yet. It is all a matter of priorities of
course. Also of course this is one case where re-factoring may cause
existing tests to fail.

Now to your question…I think I’d use assert_select ‘p’, :html =>
textvalue’. Does that help?

Yes of course, I don’t think I have ever had to use :html, it always
seems like a bit of a cop-out but it should fix my problem.

Many thanks

Colin

On 30 August 2010 16:42, Chris M. [email protected] wrote:

google has not provided an example of this type.

Pass a block to assert_select, perhaps?

assert_select “p”, /value/ do
assert_select “b”, “text”
end

I had considered that and decided it would give me problems if there
were another p with the right value, but without the b text? However,
having looked at the docs again it should in fact pass all p elements
with that value to the block, so the inner assert should be satisfied
if any p with the right value has a matching b. So I think you are
right, it should work. I will give it a go.

Many thanks

Colin

On 30 August 2010 17:41, Colin L. [email protected] wrote:

much more complex tasks but my mind seems to have gone blank and
having looked at the docs again it should in fact pass all p elements
with that value to the block, so the inner assert should be satisfied
if any p with the right value has a matching b. So I think you are
right, it should work. I will give it a go.

For the record, that worked fine.

Thanks again

Colin