2011-10-15 05:06:44 -04:00
|
|
|
shared_examples_for 'has_text' do
|
|
|
|
describe '#has_text?' do
|
2011-10-16 19:46:19 -04:00
|
|
|
it "should be true if the given text is on the page at least once" do
|
2011-10-15 05:06:44 -04:00
|
|
|
@session.visit('/with_html')
|
2011-10-16 19:46:19 -04:00
|
|
|
@session.should have_text('est')
|
2011-10-15 05:06:44 -04:00
|
|
|
@session.should have_text('Lorem')
|
2011-10-16 19:46:19 -04:00
|
|
|
@session.should have_text('Redirect')
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be true if scoped to an element which has the text" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.within("//a[@title='awesome title']") do
|
|
|
|
@session.should have_text('labore')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be false if scoped to an element which does not have the text" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.within("//a[@title='awesome title']") do
|
|
|
|
@session.should_not have_text('monkey')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should ignore tags" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_text('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
|
|
|
|
@session.should have_text('exercitation ullamco laboris')
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should ignore extra whitespace and newlines" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_text('text with whitespace')
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be false if the given text is not on the page" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_text('xxxxyzzz')
|
|
|
|
@session.should_not have_text('monkey')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should handle single quotes in the text' do
|
|
|
|
@session.visit('/with-quotes')
|
|
|
|
@session.should have_text("can't")
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should handle double quotes in the text' do
|
|
|
|
@session.visit('/with-quotes')
|
|
|
|
@session.should have_text(%q{"No," he said})
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should handle mixed single and double quotes in the text' do
|
|
|
|
@session.visit('/with-quotes')
|
|
|
|
@session.should have_text(%q{"you can't do that."})
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should be false if text is in the title tag in the head' do
|
2011-10-17 00:45:24 -04:00
|
|
|
@session.visit('/with_js')
|
2011-10-16 19:46:19 -04:00
|
|
|
@session.should_not have_text('with_js')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should be false if text is inside a script tag in the body' do
|
2011-10-17 00:45:24 -04:00
|
|
|
@session.visit('/with_js')
|
2011-10-16 19:46:19 -04:00
|
|
|
@session.should_not have_text('a javascript comment')
|
|
|
|
@session.should_not have_text('aVar')
|
2011-10-15 05:06:44 -04:00
|
|
|
end
|
2011-10-24 01:51:55 -04:00
|
|
|
|
|
|
|
it "should be false if the given text is on the page but not visible" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_text('Inside element with hidden ancestor')
|
|
|
|
end
|
2012-07-08 17:13:25 -04:00
|
|
|
|
|
|
|
it "should be true if the text in the page matches given regexp" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_text(/Lorem/)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be false if the text in the page doesn't match given regexp" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_text(/xxxxyzzz/)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should escape any characters that would have special meaning in a regexp" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_text('.orem')
|
|
|
|
end
|
2011-10-15 05:06:44 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
describe '#has_no_text?' do
|
2011-10-16 19:46:19 -04:00
|
|
|
it "should be false if the given text is on the page at least once" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_no_text('est')
|
|
|
|
@session.should_not have_no_text('Lorem')
|
|
|
|
@session.should_not have_no_text('Redirect')
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be false if scoped to an element which has the text" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.within("//a[@title='awesome title']") do
|
|
|
|
@session.should_not have_no_text('labore')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be true if scoped to an element which does not have the text" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.within("//a[@title='awesome title']") do
|
|
|
|
@session.should have_no_text('monkey')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should ignore tags" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_no_text('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
|
|
|
|
@session.should_not have_no_text('exercitation ullamco laboris')
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be true if the given text is not on the page" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_no_text('xxxxyzzz')
|
|
|
|
@session.should have_no_text('monkey')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should handle single quotes in the text' do
|
|
|
|
@session.visit('/with-quotes')
|
|
|
|
@session.should_not have_no_text("can't")
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should handle double quotes in the text' do
|
|
|
|
@session.visit('/with-quotes')
|
|
|
|
@session.should_not have_no_text(%q{"No," he said})
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should handle mixed single and double quotes in the text' do
|
|
|
|
@session.visit('/with-quotes')
|
|
|
|
@session.should_not have_no_text(%q{"you can't do that."})
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should be true if text is in the title tag in the head' do
|
2011-10-17 00:45:24 -04:00
|
|
|
@session.visit('/with_js')
|
2011-10-16 19:46:19 -04:00
|
|
|
@session.should have_no_text('with_js')
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'should be true if text is inside a script tag in the body' do
|
2011-10-17 00:45:24 -04:00
|
|
|
@session.visit('/with_js')
|
2011-10-16 19:46:19 -04:00
|
|
|
@session.should have_no_text('a javascript comment')
|
|
|
|
@session.should have_no_text('aVar')
|
2011-10-15 05:06:44 -04:00
|
|
|
end
|
2011-10-24 01:51:55 -04:00
|
|
|
|
|
|
|
it "should be true if the given text is on the page but not visible" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_no_text('Inside element with hidden ancestor')
|
|
|
|
end
|
2012-07-08 17:13:25 -04:00
|
|
|
|
|
|
|
it "should be true if the text in the page doesn't match given regexp" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_no_text(/xxxxyzzz/)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should be false if the text in the page matches given regexp" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should_not have_no_text(/Lorem/)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "should escape any characters that would have special meaning in a regexp" do
|
|
|
|
@session.visit('/with_html')
|
|
|
|
@session.should have_no_text('.orem')
|
|
|
|
end
|
2011-10-15 05:06:44 -04:00
|
|
|
end
|
|
|
|
end
|