capybara_minitest_spec 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gemtest +0 -0
- data/.gitignore +4 -0
- data/.gitmodules +3 -0
- data/.rvmrc +1 -0
- data/Gemfile +7 -0
- data/README.md +31 -0
- data/Rakefile +9 -0
- data/capybara_minitest_spec.gemspec +25 -0
- data/lib/capybara_minitest_spec/version.rb +3 -0
- data/lib/capybara_minitest_spec.rb +45 -0
- data/test/matchers_spec.rb +447 -0
- data/test/spec_helper.rb +28 -0
- data/test_app/driver.rb +297 -0
- data/test_app/fixtures/capybara.jpg +3 -0
- data/test_app/fixtures/test_file.txt +1 -0
- data/test_app/public/test.js +43 -0
- data/test_app/session/all_spec.rb +78 -0
- data/test_app/session/attach_file_spec.rb +73 -0
- data/test_app/session/check_spec.rb +65 -0
- data/test_app/session/choose_spec.rb +26 -0
- data/test_app/session/click_button_spec.rb +304 -0
- data/test_app/session/click_link_or_button_spec.rb +36 -0
- data/test_app/session/click_link_spec.rb +119 -0
- data/test_app/session/current_host_spec.rb +68 -0
- data/test_app/session/current_url_spec.rb +15 -0
- data/test_app/session/fill_in_spec.rb +125 -0
- data/test_app/session/find_button_spec.rb +18 -0
- data/test_app/session/find_by_id_spec.rb +18 -0
- data/test_app/session/find_field_spec.rb +26 -0
- data/test_app/session/find_link_spec.rb +19 -0
- data/test_app/session/find_spec.rb +149 -0
- data/test_app/session/first_spec.rb +105 -0
- data/test_app/session/has_button_spec.rb +32 -0
- data/test_app/session/has_content_spec.rb +106 -0
- data/test_app/session/has_css_spec.rb +243 -0
- data/test_app/session/has_field_spec.rb +192 -0
- data/test_app/session/has_link_spec.rb +37 -0
- data/test_app/session/has_select_spec.rb +129 -0
- data/test_app/session/has_selector_spec.rb +129 -0
- data/test_app/session/has_table_spec.rb +96 -0
- data/test_app/session/has_xpath_spec.rb +123 -0
- data/test_app/session/headers.rb +19 -0
- data/test_app/session/javascript.rb +289 -0
- data/test_app/session/response_code.rb +19 -0
- data/test_app/session/select_spec.rb +113 -0
- data/test_app/session/text_spec.rb +19 -0
- data/test_app/session/uncheck_spec.rb +21 -0
- data/test_app/session/unselect_spec.rb +61 -0
- data/test_app/session/within_spec.rb +178 -0
- data/test_app/session.rb +154 -0
- data/test_app/test_app.rb +142 -0
- data/test_app/views/buttons.erb +4 -0
- data/test_app/views/fieldsets.erb +29 -0
- data/test_app/views/form.erb +365 -0
- data/test_app/views/frame_one.erb +8 -0
- data/test_app/views/frame_two.erb +8 -0
- data/test_app/views/header_links.erb +7 -0
- data/test_app/views/host_links.erb +12 -0
- data/test_app/views/popup_one.erb +8 -0
- data/test_app/views/popup_two.erb +8 -0
- data/test_app/views/postback.erb +13 -0
- data/test_app/views/tables.erb +122 -0
- data/test_app/views/with_html.erb +74 -0
- data/test_app/views/with_html_entities.erb +1 -0
- data/test_app/views/with_js.erb +48 -0
- data/test_app/views/with_scope.erb +36 -0
- data/test_app/views/with_simple_html.erb +1 -0
- data/test_app/views/within_frames.erb +10 -0
- data/test_app/views/within_popups.erb +25 -0
- metadata +158 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
shared_examples_for "find_by_id" do
|
2
|
+
describe '#find_by_id' do
|
3
|
+
before do
|
4
|
+
@session.visit('/with_html')
|
5
|
+
end
|
6
|
+
|
7
|
+
it "should find any element by id" do
|
8
|
+
@session.find_by_id('red').tag_name.should == 'a'
|
9
|
+
@session.find_by_id('hidden_via_ancestor').tag_name.should == 'div'
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should raise error if no element with id is found" do
|
13
|
+
running do
|
14
|
+
@session.find_by_id('nothing_with_this_id')
|
15
|
+
end.should raise_error(Capybara::ElementNotFound)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
shared_examples_for "find_field" do
|
2
|
+
describe '#find_field' do
|
3
|
+
before do
|
4
|
+
@session.visit('/form')
|
5
|
+
end
|
6
|
+
|
7
|
+
it "should find any field" do
|
8
|
+
@session.find_field('Dog').value.should == 'dog'
|
9
|
+
@session.find_field('form_description').text.should == 'Descriptive text goes here'
|
10
|
+
@session.find_field('Region')[:name].should == 'form[region]'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should raise error if the field doesn't exist" do
|
14
|
+
running do
|
15
|
+
@session.find_field('Does not exist')
|
16
|
+
end.should raise_error(Capybara::ElementNotFound)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should be aliased as 'field_labeled' for webrat compatibility" do
|
20
|
+
@session.field_labeled('Dog').value.should == 'dog'
|
21
|
+
running do
|
22
|
+
@session.field_labeled('Does not exist')
|
23
|
+
end.should raise_error(Capybara::ElementNotFound)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
shared_examples_for "find_link" do
|
2
|
+
|
3
|
+
describe '#find_link' do
|
4
|
+
before do
|
5
|
+
@session.visit('/with_html')
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should find any field" do
|
9
|
+
@session.find_link('foo').text.should == "ullamco"
|
10
|
+
@session.find_link('labore')[:href].should =~ %r(/with_simple_html$)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should raise error if the field doesn't exist" do
|
14
|
+
running do
|
15
|
+
@session.find_link('Does not exist')
|
16
|
+
end.should raise_error(Capybara::ElementNotFound)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
shared_examples_for "find" do
|
2
|
+
describe '#find' do
|
3
|
+
before do
|
4
|
+
@session.visit('/with_html')
|
5
|
+
end
|
6
|
+
|
7
|
+
after do
|
8
|
+
Capybara::Selector.remove(:monkey)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should find the first element using the given locator" do
|
12
|
+
@session.find('//h1').text.should == 'This is a test'
|
13
|
+
@session.find("//input[@id='test_field']")[:value].should == 'monkey'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should find the first element using the given locator and options" do
|
17
|
+
@session.find('//a', :text => 'Redirect')[:id].should == 'red'
|
18
|
+
@session.find(:css, 'a', :text => 'A link')[:title].should == 'twas a fine link'
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'the returned node' do
|
22
|
+
it "should act like a session object" do
|
23
|
+
@session.visit('/form')
|
24
|
+
@form = @session.find(:css, '#get-form')
|
25
|
+
@form.should have_field('Middle Name')
|
26
|
+
@form.should have_no_field('Languages')
|
27
|
+
@form.fill_in('Middle Name', :with => 'Monkey')
|
28
|
+
@form.click_button('med')
|
29
|
+
extract_results(@session)['middle_name'].should == 'Monkey'
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should scope CSS selectors" do
|
33
|
+
@session.find(:css, '#second').should have_no_css('h1')
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should have a reference to its parent if there is one" do
|
37
|
+
@node = @session.find(:css, '#first')
|
38
|
+
@node.parent.should == @node.session.document
|
39
|
+
@node.find('a').parent.should == @node
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
context "with css selectors" do
|
44
|
+
it "should find the first element using the given locator" do
|
45
|
+
@session.find(:css, 'h1').text.should == 'This is a test'
|
46
|
+
@session.find(:css, "input[id='test_field']")[:value].should == 'monkey'
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context "with id selectors" do
|
51
|
+
it "should find the first element using the given locator" do
|
52
|
+
@session.find(:id, 'john_monkey').text.should == 'Monkey John'
|
53
|
+
@session.find(:id, 'red').text.should == 'Redirect'
|
54
|
+
@session.find(:red).text.should == 'Redirect'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
context "with xpath selectors" do
|
59
|
+
it "should find the first element using the given locator" do
|
60
|
+
@session.find(:xpath, '//h1').text.should == 'This is a test'
|
61
|
+
@session.find(:xpath, "//input[@id='test_field']")[:value].should == 'monkey'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "with custom selector" do
|
66
|
+
it "should use the custom selector" do
|
67
|
+
Capybara.add_selector(:monkey) do
|
68
|
+
xpath { |name| ".//*[@id='#{name}_monkey']" }
|
69
|
+
end
|
70
|
+
@session.find(:monkey, 'john').text.should == 'Monkey John'
|
71
|
+
@session.find(:monkey, 'paul').text.should == 'Monkey Paul'
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "with custom selector with :for option" do
|
76
|
+
it "should use the selector when it matches the :for option" do
|
77
|
+
Capybara.add_selector(:monkey) do
|
78
|
+
xpath { |num| ".//*[contains(@id, 'monkey')][#{num}]" }
|
79
|
+
match { |value| value.is_a?(Fixnum) }
|
80
|
+
end
|
81
|
+
@session.find(:monkey, '2').text.should == 'Monkey Paul'
|
82
|
+
@session.find(1).text.should == 'Monkey John'
|
83
|
+
@session.find(2).text.should == 'Monkey Paul'
|
84
|
+
@session.find('//h1').text.should == 'This is a test'
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
context "with custom selector with failure_message option" do
|
89
|
+
it "should raise an error with the failure message if the element is not found" do
|
90
|
+
Capybara.add_selector(:monkey) do
|
91
|
+
xpath { |num| ".//*[contains(@id, 'monkey')][#{num}]" }
|
92
|
+
failure_message { |node, selector| node.all(".//*[contains(@id, 'monkey')]").map { |node| node.text }.sort.join(', ') }
|
93
|
+
end
|
94
|
+
running do
|
95
|
+
@session.find(:monkey, '14').text.should == 'Monkey Paul'
|
96
|
+
end.should raise_error(Capybara::ElementNotFound, "Monkey John, Monkey Paul")
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should pass the selector as the second argument" do
|
100
|
+
Capybara.add_selector(:monkey) do
|
101
|
+
xpath { |num| ".//*[contains(@id, 'monkey')][#{num}]" }
|
102
|
+
failure_message { |node, selector| selector.name.to_s + ': ' + selector.locator + ' - ' + node.all(".//*[contains(@id, 'monkey')]").map { |node| node.text }.sort.join(', ') }
|
103
|
+
end
|
104
|
+
running do
|
105
|
+
@session.find(:monkey, '14').text.should == 'Monkey Paul'
|
106
|
+
end.should raise_error(Capybara::ElementNotFound, "monkey: 14 - Monkey John, Monkey Paul")
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
context "with css as default selector" do
|
111
|
+
before { Capybara.default_selector = :css }
|
112
|
+
it "should find the first element using the given locator" do
|
113
|
+
@session.find('h1').text.should == 'This is a test'
|
114
|
+
@session.find("input[id='test_field']")[:value].should == 'monkey'
|
115
|
+
end
|
116
|
+
after { Capybara.default_selector = :xpath }
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should raise ElementNotFound with specified fail message if nothing was found" do
|
120
|
+
running do
|
121
|
+
@session.find(:xpath, '//div[@id="nosuchthing"]', :message => 'arghh').should be_nil
|
122
|
+
end.should raise_error(Capybara::ElementNotFound, "arghh")
|
123
|
+
end
|
124
|
+
|
125
|
+
it "should raise ElementNotFound with a useful default message if nothing was found" do
|
126
|
+
running do
|
127
|
+
@session.find(:xpath, '//div[@id="nosuchthing"]').should be_nil
|
128
|
+
end.should raise_error(Capybara::ElementNotFound, "Unable to find xpath \"//div[@id=\\\"nosuchthing\\\"]\"")
|
129
|
+
end
|
130
|
+
|
131
|
+
it "should accept an XPath instance and respect the order of paths" do
|
132
|
+
@session.visit('/form')
|
133
|
+
@xpath = XPath::HTML.fillable_field('Name')
|
134
|
+
@session.find(@xpath).value.should == 'John Smith'
|
135
|
+
end
|
136
|
+
|
137
|
+
context "within a scope" do
|
138
|
+
before do
|
139
|
+
@session.visit('/with_scope')
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should find the first element using the given locator" do
|
143
|
+
@session.within(:xpath, "//div[@id='for_bar']") do
|
144
|
+
@session.find('.//li').text.should =~ /With Simple HTML/
|
145
|
+
end
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
shared_examples_for "first" do
|
2
|
+
describe '#first' do
|
3
|
+
before do
|
4
|
+
@session.visit('/with_html')
|
5
|
+
end
|
6
|
+
|
7
|
+
it "should find the first element using the given locator" do
|
8
|
+
@session.first('//h1').text.should == 'This is a test'
|
9
|
+
@session.first("//input[@id='test_field']")[:value].should == 'monkey'
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return nil when nothing was found" do
|
13
|
+
@session.first('//div[@id="nosuchthing"]').should be_nil
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should accept an XPath instance" do
|
17
|
+
@session.visit('/form')
|
18
|
+
@xpath = XPath::HTML.fillable_field('Name')
|
19
|
+
@session.first(@xpath).value.should == 'John Smith'
|
20
|
+
end
|
21
|
+
|
22
|
+
context "with css selectors" do
|
23
|
+
it "should find the first element using the given selector" do
|
24
|
+
@session.first(:css, 'h1').text.should == 'This is a test'
|
25
|
+
@session.first(:css, "input[id='test_field']")[:value].should == 'monkey'
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "with xpath selectors" do
|
30
|
+
it "should find the first element using the given locator" do
|
31
|
+
@session.first(:xpath, '//h1').text.should == 'This is a test'
|
32
|
+
@session.first(:xpath, "//input[@id='test_field']")[:value].should == 'monkey'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context "with css as default selector" do
|
37
|
+
before { Capybara.default_selector = :css }
|
38
|
+
it "should find the first element using the given locator" do
|
39
|
+
@session.first('h1').text.should == 'This is a test'
|
40
|
+
@session.first("input[id='test_field']")[:value].should == 'monkey'
|
41
|
+
end
|
42
|
+
after { Capybara.default_selector = :xpath }
|
43
|
+
end
|
44
|
+
|
45
|
+
context "with visible filter" do
|
46
|
+
after { Capybara.ignore_hidden_elements = false }
|
47
|
+
it "should only find visible nodes if true given" do
|
48
|
+
@session.first(:css, "a#invisible").should_not be_nil
|
49
|
+
@session.first(:css, "a#invisible", :visible => true).should be_nil
|
50
|
+
Capybara.ignore_hidden_elements = true
|
51
|
+
@session.first(:css, "a#invisible").should be_nil
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should include invisible nodes if false given" do
|
55
|
+
Capybara.ignore_hidden_elements = true
|
56
|
+
@session.first(:css, "a#invisible", :visible => false).should_not be_nil
|
57
|
+
@session.first(:css, "a#invisible").should be_nil
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context "with prefer visible elements" do
|
62
|
+
it "should find invisible elements if no visible element exists" do
|
63
|
+
@session.first(:css, 'a#invisible')[:id].should == 'invisible'
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should prefer visible elements over invisible elements" do
|
67
|
+
@session.first(:css, 'a.visibility')[:id].should == 'visible'
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should return the first invisible element if no visible elements exist" do
|
71
|
+
@session.first(:css, 'a.hidden')[:id].should == 'first_invisble'
|
72
|
+
end
|
73
|
+
|
74
|
+
it "find visible links normally" do
|
75
|
+
@session.first(:css, 'a#visible')[:id].should == 'visible'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
context "without prefer visible elements" do
|
80
|
+
before { Capybara.prefer_visible_elements = false }
|
81
|
+
|
82
|
+
it "should find invisible elements if no visible element exists" do
|
83
|
+
@session.first(:css, 'a#invisible')[:id].should == 'invisible'
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should not prefer visible elements over invisible elements" do
|
87
|
+
@session.first(:css, 'a.visibility')[:id].should == 'invisible'
|
88
|
+
end
|
89
|
+
|
90
|
+
after { Capybara.prefer_visible_elements = true }
|
91
|
+
end
|
92
|
+
|
93
|
+
context "within a scope" do
|
94
|
+
before do
|
95
|
+
@session.visit('/with_scope')
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should find the first element using the given locator" do
|
99
|
+
@session.within(:xpath, "//div[@id='for_bar']") do
|
100
|
+
@session.first('.//form').should_not be_nil
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
shared_examples_for "has_button" do
|
2
|
+
describe '#has_button?' do
|
3
|
+
before do
|
4
|
+
@session.visit('/form')
|
5
|
+
end
|
6
|
+
|
7
|
+
it "should be true if the given button is on the page" do
|
8
|
+
@session.should have_button('med')
|
9
|
+
@session.should have_button('crap321')
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should be false if the given button is not on the page" do
|
13
|
+
@session.should_not have_button('monkey')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#has_no_button?' do
|
18
|
+
before do
|
19
|
+
@session.visit('/form')
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should be true if the given button is on the page" do
|
23
|
+
@session.should_not have_no_button('med')
|
24
|
+
@session.should_not have_no_button('crap321')
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should be false if the given button is not on the page" do
|
28
|
+
@session.should have_no_button('monkey')
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
@@ -0,0 +1,106 @@
|
|
1
|
+
shared_examples_for "has_content" do
|
2
|
+
describe '#has_content?' do
|
3
|
+
it "should be true if the given content is on the page at least once" do
|
4
|
+
@session.visit('/with_html')
|
5
|
+
@session.should have_content('est')
|
6
|
+
@session.should have_content('Lorem')
|
7
|
+
@session.should have_content('Redirect')
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should be true if scoped to an element which has the content" do
|
11
|
+
@session.visit('/with_html')
|
12
|
+
@session.within("//a[@title='awesome title']") do
|
13
|
+
@session.should have_content('labore')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be false if scoped to an element which does not have the content" do
|
18
|
+
@session.visit('/with_html')
|
19
|
+
@session.within("//a[@title='awesome title']") do
|
20
|
+
@session.should_not have_content('monkey')
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should ignore tags" do
|
25
|
+
@session.visit('/with_html')
|
26
|
+
@session.should_not have_content('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
|
27
|
+
@session.should have_content('exercitation ullamco laboris')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should ignore extra whitespace and newlines" do
|
31
|
+
@session.visit('/with_html')
|
32
|
+
@session.should have_content('text with whitespace')
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should be false if the given content is not on the page" do
|
36
|
+
@session.visit('/with_html')
|
37
|
+
@session.should_not have_content('xxxxyzzz')
|
38
|
+
@session.should_not have_content('monkey')
|
39
|
+
end
|
40
|
+
|
41
|
+
it 'should handle single quotes in the content' do
|
42
|
+
@session.visit('/with-quotes')
|
43
|
+
@session.should have_content("can't")
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should handle double quotes in the content' do
|
47
|
+
@session.visit('/with-quotes')
|
48
|
+
@session.should have_content(%q{"No," he said})
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should handle mixed single and double quotes in the content' do
|
52
|
+
@session.visit('/with-quotes')
|
53
|
+
@session.should have_content(%q{"you can't do that."})
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe '#has_no_content?' do
|
58
|
+
it "should be false if the given content is on the page at least once" do
|
59
|
+
@session.visit('/with_html')
|
60
|
+
@session.should_not have_no_content('est')
|
61
|
+
@session.should_not have_no_content('Lorem')
|
62
|
+
@session.should_not have_no_content('Redirect')
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should be false if scoped to an element which has the content" do
|
66
|
+
@session.visit('/with_html')
|
67
|
+
@session.within("//a[@title='awesome title']") do
|
68
|
+
@session.should_not have_no_content('labore')
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should be true if scoped to an element which does not have the content" do
|
73
|
+
@session.visit('/with_html')
|
74
|
+
@session.within("//a[@title='awesome title']") do
|
75
|
+
@session.should have_no_content('monkey')
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should ignore tags" do
|
80
|
+
@session.visit('/with_html')
|
81
|
+
@session.should have_no_content('exercitation <a href="/foo" id="foo">ullamco</a> laboris')
|
82
|
+
@session.should_not have_no_content('exercitation ullamco laboris')
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should be true if the given content is not on the page" do
|
86
|
+
@session.visit('/with_html')
|
87
|
+
@session.should have_no_content('xxxxyzzz')
|
88
|
+
@session.should have_no_content('monkey')
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should handle single quotes in the content' do
|
92
|
+
@session.visit('/with-quotes')
|
93
|
+
@session.should_not have_no_content("can't")
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'should handle double quotes in the content' do
|
97
|
+
@session.visit('/with-quotes')
|
98
|
+
@session.should_not have_no_content(%q{"No," he said})
|
99
|
+
end
|
100
|
+
|
101
|
+
it 'should handle mixed single and double quotes in the content' do
|
102
|
+
@session.visit('/with-quotes')
|
103
|
+
@session.should_not have_no_content(%q{"you can't do that."})
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|