bjeanes-capybara 0.3.1
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/History.txt +4 -0
- data/Manifest.txt +87 -0
- data/README.rdoc +404 -0
- data/Rakefile +29 -0
- data/config.ru +6 -0
- data/lib/capybara.rb +53 -0
- data/lib/capybara/cucumber.rb +32 -0
- data/lib/capybara/driver/base.rb +37 -0
- data/lib/capybara/driver/celerity_driver.rb +135 -0
- data/lib/capybara/driver/culerity_driver.rb +25 -0
- data/lib/capybara/driver/rack_test_driver.rb +244 -0
- data/lib/capybara/driver/selenium_driver.rb +137 -0
- data/lib/capybara/dsl.rb +60 -0
- data/lib/capybara/node.rb +69 -0
- data/lib/capybara/rails.rb +11 -0
- data/lib/capybara/save_and_open_page.rb +33 -0
- data/lib/capybara/searchable.rb +53 -0
- data/lib/capybara/server.rb +111 -0
- data/lib/capybara/session.rb +274 -0
- data/lib/capybara/wait_until.rb +23 -0
- data/lib/capybara/xpath.rb +176 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/capybara_spec.rb +18 -0
- data/spec/driver/celerity_driver_spec.rb +17 -0
- data/spec/driver/culerity_driver_spec.rb +13 -0
- data/spec/driver/rack_test_driver_spec.rb +12 -0
- data/spec/driver/remote_culerity_driver_spec.rb +26 -0
- data/spec/driver/remote_selenium_driver_spec.rb +18 -0
- data/spec/driver/selenium_driver_spec.rb +12 -0
- data/spec/drivers_spec.rb +139 -0
- data/spec/dsl/all_spec.rb +69 -0
- data/spec/dsl/attach_file_spec.rb +64 -0
- data/spec/dsl/check_spec.rb +39 -0
- data/spec/dsl/choose_spec.rb +26 -0
- data/spec/dsl/click_button_spec.rb +218 -0
- data/spec/dsl/click_link_spec.rb +108 -0
- data/spec/dsl/click_spec.rb +24 -0
- data/spec/dsl/current_url_spec.rb +8 -0
- data/spec/dsl/fill_in_spec.rb +91 -0
- data/spec/dsl/find_button_spec.rb +16 -0
- data/spec/dsl/find_by_id_spec.rb +16 -0
- data/spec/dsl/find_field_spec.rb +22 -0
- data/spec/dsl/find_link_spec.rb +17 -0
- data/spec/dsl/find_spec.rb +57 -0
- data/spec/dsl/has_button_spec.rb +32 -0
- data/spec/dsl/has_content_spec.rb +101 -0
- data/spec/dsl/has_css_spec.rb +107 -0
- data/spec/dsl/has_field_spec.rb +96 -0
- data/spec/dsl/has_link_spec.rb +33 -0
- data/spec/dsl/has_xpath_spec.rb +123 -0
- data/spec/dsl/locate_spec.rb +59 -0
- data/spec/dsl/select_spec.rb +71 -0
- data/spec/dsl/uncheck_spec.rb +21 -0
- data/spec/dsl/within_spec.rb +153 -0
- data/spec/dsl_spec.rb +140 -0
- data/spec/fixtures/capybara.jpg +0 -0
- data/spec/fixtures/test_file.txt +1 -0
- data/spec/public/jquery-ui.js +35 -0
- data/spec/public/jquery.js +19 -0
- data/spec/public/test.js +30 -0
- data/spec/save_and_open_page_spec.rb +43 -0
- data/spec/searchable_spec.rb +61 -0
- data/spec/server_spec.rb +47 -0
- data/spec/session/celerity_session_spec.rb +27 -0
- data/spec/session/culerity_session_spec.rb +25 -0
- data/spec/session/rack_test_session_spec.rb +25 -0
- data/spec/session/selenium_session_spec.rb +25 -0
- data/spec/session_spec.rb +77 -0
- data/spec/session_with_headers_support_spec.rb +13 -0
- data/spec/session_with_javascript_support_spec.rb +182 -0
- data/spec/session_without_headers_support_spec.rb +15 -0
- data/spec/session_without_javascript_support_spec.rb +15 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/test_app.rb +71 -0
- data/spec/views/buttons.erb +4 -0
- data/spec/views/fieldsets.erb +29 -0
- data/spec/views/form.erb +226 -0
- data/spec/views/postback.erb +13 -0
- data/spec/views/tables.erb +122 -0
- data/spec/views/with_html.erb +38 -0
- data/spec/views/with_js.erb +34 -0
- data/spec/views/with_scope.erb +36 -0
- data/spec/views/with_simple_html.erb +1 -0
- data/spec/wait_until_spec.rb +28 -0
- data/spec/xpath_spec.rb +271 -0
- metadata +239 -0
@@ -0,0 +1 @@
|
|
1
|
+
Bar
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.expand_path('spec_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
require 'capybara'
|
4
|
+
require 'capybara/wait_until'
|
5
|
+
|
6
|
+
module Capybara
|
7
|
+
|
8
|
+
describe WaitUntil do
|
9
|
+
|
10
|
+
it "should return result of yield if it returns true value within timeout" do
|
11
|
+
WaitUntil.timeout { "hello" }.should == "hello"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should keep trying within timeout" do
|
15
|
+
count = 0
|
16
|
+
WaitUntil.timeout { count += 1; count == 5 ? count : nil }.should == 5
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should raise Capybara::TimeoutError if block fails to return true within timeout" do
|
20
|
+
running do
|
21
|
+
WaitUntil.timeout(0.1) { false }
|
22
|
+
end.should raise_error(::Capybara::TimeoutError)
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
|
data/spec/xpath_spec.rb
ADDED
@@ -0,0 +1,271 @@
|
|
1
|
+
require File.expand_path('spec_helper', File.dirname(__FILE__))
|
2
|
+
|
3
|
+
describe Capybara::XPath do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@driver = Capybara::Driver::RackTest.new(TestApp)
|
7
|
+
@driver.visit('/form')
|
8
|
+
@xpath = Capybara::XPath.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should proxy any class method calls to a new instance" do
|
12
|
+
@query = Capybara::XPath.fillable_field('First Name').to_s
|
13
|
+
@driver.find(@query).first.value.should == 'John'
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should respond to instance methods at the class level" do
|
17
|
+
Capybara::XPath.should respond_to(:fillable_field)
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '.wrap' do
|
21
|
+
it "should return an XPath unmodified" do
|
22
|
+
Capybara::XPath.wrap(@xpath).should == @xpath
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should wrap a string in an xpath object" do
|
26
|
+
@xpath = Capybara::XPath.wrap('//foo/bar')
|
27
|
+
@xpath.should be_an_instance_of(Capybara::XPath)
|
28
|
+
@xpath.paths.should == ['//foo/bar']
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#append' do
|
33
|
+
it "should append an XPath's paths" do
|
34
|
+
@xpath = Capybara::XPath.wrap('//test')
|
35
|
+
@xpath = @xpath.append(Capybara::XPath.wrap('//foo/bar'))
|
36
|
+
@xpath.paths.should == ['//test', '//foo/bar']
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should append an String as a new path" do
|
40
|
+
@xpath = Capybara::XPath.wrap('//test')
|
41
|
+
@xpath = @xpath.append('//foo/bar')
|
42
|
+
@xpath.paths.should == ['//test', '//foo/bar']
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe '#prepend' do
|
47
|
+
it "should prepend an XPath's paths" do
|
48
|
+
@xpath = Capybara::XPath.wrap('//test')
|
49
|
+
@xpath = @xpath.prepend(Capybara::XPath.wrap('//foo/bar'))
|
50
|
+
@xpath.paths.should == ['//foo/bar', '//test']
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should prepend an String as a new path" do
|
54
|
+
@xpath = Capybara::XPath.wrap('//test')
|
55
|
+
@xpath = @xpath.prepend('//foo/bar')
|
56
|
+
@xpath.paths.should == ['//foo/bar', '//test']
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
describe '#scope' do
|
61
|
+
it "should prepend the given scope to all paths" do
|
62
|
+
@xpath = Capybara::XPath.new('//foo/bar', '//test[@blah=foo]').scope('//quox')
|
63
|
+
@xpath.paths.should include('//quox//foo/bar', '//quox//test[@blah=foo]')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
describe '#field' do
|
68
|
+
it "should find any field by id or label" do
|
69
|
+
@query = @xpath.field('First Name').to_s
|
70
|
+
@driver.find(@query).first.value.should == 'John'
|
71
|
+
@query = @xpath.field('Password').to_s
|
72
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
73
|
+
@query = @xpath.field('Description').to_s
|
74
|
+
@driver.find(@query).first.text.should == 'Descriptive text goes here'
|
75
|
+
@query = @xpath.field('Document').to_s
|
76
|
+
@driver.find(@query).first[:name].should == 'form[document]'
|
77
|
+
@query = @xpath.field('Cat').to_s
|
78
|
+
@driver.find(@query).first.value.should == 'cat'
|
79
|
+
@query = @xpath.field('Male').to_s
|
80
|
+
@driver.find(@query).first.value.should == 'male'
|
81
|
+
@query = @xpath.field('Region').to_s
|
82
|
+
@driver.find(@query).first[:name].should == 'form[region]'
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should be chainable" do
|
86
|
+
@query = @xpath.field('First Name').input_field(:password, 'First Name').to_s
|
87
|
+
@driver.find(@query).first.value.should == 'John'
|
88
|
+
@query = @xpath.field('Password').input_field(:password, 'Password').to_s
|
89
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe '#fillable_field' do
|
94
|
+
it "should find a text field, password field, or text area by id or label" do
|
95
|
+
@query = @xpath.fillable_field('First Name').to_s
|
96
|
+
@driver.find(@query).first.value.should == 'John'
|
97
|
+
@query = @xpath.fillable_field('Password').to_s
|
98
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
99
|
+
@query = @xpath.fillable_field('Description').to_s
|
100
|
+
@driver.find(@query).first.text.should == 'Descriptive text goes here'
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should be chainable" do
|
104
|
+
@query = @xpath.fillable_field('First Name').password_field('First Name').to_s
|
105
|
+
@driver.find(@query).first.value.should == 'John'
|
106
|
+
@query = @xpath.fillable_field('Password').password_field('Password').to_s
|
107
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe '#text_field' do
|
112
|
+
it "should find a text field by id or label" do
|
113
|
+
@query = @xpath.text_field('form_first_name').to_s
|
114
|
+
@driver.find(@query).first.value.should == 'John'
|
115
|
+
@query = @xpath.text_field('First Name').to_s
|
116
|
+
@driver.find(@query).first.value.should == 'John'
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should be chainable" do
|
120
|
+
@query = @xpath.text_field('First Name').password_field('First Name').to_s
|
121
|
+
@driver.find(@query).first.value.should == 'John'
|
122
|
+
@query = @xpath.text_field('Password').password_field('Password').to_s
|
123
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
describe '#password_field' do
|
128
|
+
it "should find a password field by id or label" do
|
129
|
+
@query = @xpath.password_field('form_password').to_s
|
130
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
131
|
+
@query = @xpath.password_field('Password').to_s
|
132
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should be chainable" do
|
136
|
+
@query = @xpath.password_field('First Name').text_field('First Name').to_s
|
137
|
+
@driver.find(@query).first.value.should == 'John'
|
138
|
+
@query = @xpath.password_field('Password').text_field('Password').to_s
|
139
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
describe '#text_area' do
|
144
|
+
it "should find a text area by id or label" do
|
145
|
+
@query = @xpath.text_area('form_description').to_s
|
146
|
+
@driver.find(@query).first.text.should == 'Descriptive text goes here'
|
147
|
+
@query = @xpath.text_area('Description').to_s
|
148
|
+
@driver.find(@query).first.text.should == 'Descriptive text goes here'
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should be chainable" do
|
152
|
+
@query = @xpath.text_area('Description').password_field('Description').to_s
|
153
|
+
@driver.find(@query).first.text.should == 'Descriptive text goes here'
|
154
|
+
@query = @xpath.text_area('Password').password_field('Password').to_s
|
155
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
describe '#button' do
|
160
|
+
it "should find a button by id or content" do
|
161
|
+
@query = @xpath.button('awe123').to_s
|
162
|
+
@driver.find(@query).first.value.should == 'awesome'
|
163
|
+
@query = @xpath.button('okay556').to_s
|
164
|
+
@driver.find(@query).first.value.should == 'okay'
|
165
|
+
@query = @xpath.button('click_me_123').to_s
|
166
|
+
@driver.find(@query).first.value.should == 'click_me'
|
167
|
+
@query = @xpath.button('Click me!').to_s
|
168
|
+
@driver.find(@query).first.value.should == 'click_me'
|
169
|
+
@query = @xpath.button('fresh_btn').to_s
|
170
|
+
@driver.find(@query).first.value.should == 'i am fresh'
|
171
|
+
@query = @xpath.button('i am fresh').to_s
|
172
|
+
@driver.find(@query).first[:name].should == 'form[fresh]'
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
describe '#radio_button' do
|
177
|
+
it "should find a radio button by id or label" do
|
178
|
+
@query = @xpath.radio_button('Male').to_s
|
179
|
+
@driver.find(@query).first.value.should == 'male'
|
180
|
+
@query = @xpath.radio_button('gender_male').to_s
|
181
|
+
@driver.find(@query).first.value.should == 'male'
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should be chainable" do
|
185
|
+
@query = @xpath.radio_button('Male').password_field('Male').to_s
|
186
|
+
@driver.find(@query).first.value.should == 'male'
|
187
|
+
@query = @xpath.radio_button('Password').password_field('Password').to_s
|
188
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
describe '#checkbox' do
|
193
|
+
it "should find a checkbox by id or label" do
|
194
|
+
@query = @xpath.checkbox('Cat').to_s
|
195
|
+
@driver.find(@query).first.value.should == 'cat'
|
196
|
+
@query = @xpath.checkbox('form_pets_cat').to_s
|
197
|
+
@driver.find(@query).first.value.should == 'cat'
|
198
|
+
end
|
199
|
+
|
200
|
+
it "should be chainable" do
|
201
|
+
@query = @xpath.checkbox('Cat').password_field('Cat').to_s
|
202
|
+
@driver.find(@query).first.value.should == 'cat'
|
203
|
+
@query = @xpath.checkbox('Password').password_field('Password').to_s
|
204
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
205
|
+
end
|
206
|
+
end
|
207
|
+
|
208
|
+
describe '#select' do
|
209
|
+
it "should find a select by id or label" do
|
210
|
+
@query = @xpath.select('Region').to_s
|
211
|
+
@driver.find(@query).first[:name].should == 'form[region]'
|
212
|
+
@query = @xpath.select('form_region').to_s
|
213
|
+
@driver.find(@query).first[:name].should == 'form[region]'
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should be chainable" do
|
217
|
+
@query = @xpath.select('Region').password_field('Region').to_s
|
218
|
+
@driver.find(@query).first[:name].should == 'form[region]'
|
219
|
+
@query = @xpath.select('Password').password_field('Password').to_s
|
220
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
describe '#file_field' do
|
225
|
+
it "should find a file field by id or label" do
|
226
|
+
@query = @xpath.file_field('Document').to_s
|
227
|
+
@driver.find(@query).first[:name].should == 'form[document]'
|
228
|
+
@query = @xpath.file_field('form_document').to_s
|
229
|
+
@driver.find(@query).first[:name].should == 'form[document]'
|
230
|
+
end
|
231
|
+
|
232
|
+
it "should be chainable" do
|
233
|
+
@query = @xpath.file_field('Document').password_field('Document').to_s
|
234
|
+
@driver.find(@query).first[:name].should == 'form[document]'
|
235
|
+
@query = @xpath.file_field('Password').password_field('Password').to_s
|
236
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
[ [:email_field, 'html5_email', 'Html5 Email', 'person@email.com'],
|
241
|
+
[:url_field, 'html5_url', 'Html5 Url', 'http://www.example.com'],
|
242
|
+
[:search_field, 'html5_search', 'Html5 Search', 'what are you looking for'],
|
243
|
+
[:tel_field, 'html5_tel', 'Html5 Tel', '911'],
|
244
|
+
[:color_field, 'html5_color', 'Html5 Color', '#FFF']].each do |method, id, label, output|
|
245
|
+
describe "##{method}" do
|
246
|
+
it "should find a file field by label" do
|
247
|
+
@query = @xpath.send(method, label).to_s
|
248
|
+
@driver.find(@query).first.value.should == output
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should find a file field by id" do
|
252
|
+
@query = @xpath.send(method, id).to_s
|
253
|
+
@driver.find(@query).first.value.should == output
|
254
|
+
end
|
255
|
+
|
256
|
+
it "should be chainable" do
|
257
|
+
@query = @xpath.send(method, label).password_field(label).to_s
|
258
|
+
@driver.find(@query).first.value.should == output
|
259
|
+
@query = @xpath.send(method, 'Password').password_field('Password').to_s
|
260
|
+
@driver.find(@query).first.value.should == 'seeekrit'
|
261
|
+
end
|
262
|
+
|
263
|
+
it "should be a #fillable_field" do
|
264
|
+
@query = @xpath.fillable_field(label).to_s
|
265
|
+
@driver.find(@query).first.value.should == output
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
end
|
270
|
+
|
271
|
+
end
|
metadata
ADDED
@@ -0,0 +1,239 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bjeanes-capybara
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jonas Nicklas
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2010-02-25 00:00:00 +10:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: nokogiri
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.3.3
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: mime-types
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "1.16"
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: culerity
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.2.4
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: selenium-webdriver
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.0.3
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rack
|
57
|
+
type: :runtime
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.0.0
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: rack-test
|
67
|
+
type: :runtime
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 0.5.2
|
74
|
+
version:
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: sinatra
|
77
|
+
type: :development
|
78
|
+
version_requirement:
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.9.4
|
84
|
+
version:
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: rspec
|
87
|
+
type: :development
|
88
|
+
version_requirement:
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.2.9
|
94
|
+
version:
|
95
|
+
- !ruby/object:Gem::Dependency
|
96
|
+
name: hoe
|
97
|
+
type: :development
|
98
|
+
version_requirement:
|
99
|
+
version_requirements: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.3.3
|
104
|
+
version:
|
105
|
+
description: |-
|
106
|
+
Capybara aims to simplify the process of integration testing Rack applications,
|
107
|
+
such as Rails, Sinatra or Merb. It is inspired by and aims to replace Webrat as
|
108
|
+
a DSL for interacting with a webapplication. It is agnostic about the driver
|
109
|
+
running your tests and currently comes bundled with rack-test, Culerity,
|
110
|
+
Celerity and Selenium support built in.
|
111
|
+
email:
|
112
|
+
- jonas.nicklas@gmail.com
|
113
|
+
executables: []
|
114
|
+
|
115
|
+
extensions: []
|
116
|
+
|
117
|
+
extra_rdoc_files:
|
118
|
+
- History.txt
|
119
|
+
- Manifest.txt
|
120
|
+
- README.rdoc
|
121
|
+
files:
|
122
|
+
- History.txt
|
123
|
+
- Manifest.txt
|
124
|
+
- README.rdoc
|
125
|
+
- Rakefile
|
126
|
+
- config.ru
|
127
|
+
- lib/capybara.rb
|
128
|
+
- lib/capybara/cucumber.rb
|
129
|
+
- lib/capybara/driver/base.rb
|
130
|
+
- lib/capybara/driver/celerity_driver.rb
|
131
|
+
- lib/capybara/driver/culerity_driver.rb
|
132
|
+
- lib/capybara/driver/rack_test_driver.rb
|
133
|
+
- lib/capybara/driver/selenium_driver.rb
|
134
|
+
- lib/capybara/dsl.rb
|
135
|
+
- lib/capybara/node.rb
|
136
|
+
- lib/capybara/rails.rb
|
137
|
+
- lib/capybara/save_and_open_page.rb
|
138
|
+
- lib/capybara/searchable.rb
|
139
|
+
- lib/capybara/server.rb
|
140
|
+
- lib/capybara/session.rb
|
141
|
+
- lib/capybara/wait_until.rb
|
142
|
+
- lib/capybara/xpath.rb
|
143
|
+
- script/console
|
144
|
+
- script/destroy
|
145
|
+
- script/generate
|
146
|
+
- spec/capybara_spec.rb
|
147
|
+
- spec/driver/celerity_driver_spec.rb
|
148
|
+
- spec/driver/culerity_driver_spec.rb
|
149
|
+
- spec/driver/rack_test_driver_spec.rb
|
150
|
+
- spec/driver/remote_culerity_driver_spec.rb
|
151
|
+
- spec/driver/remote_selenium_driver_spec.rb
|
152
|
+
- spec/driver/selenium_driver_spec.rb
|
153
|
+
- spec/drivers_spec.rb
|
154
|
+
- spec/dsl/all_spec.rb
|
155
|
+
- spec/dsl/attach_file_spec.rb
|
156
|
+
- spec/dsl/check_spec.rb
|
157
|
+
- spec/dsl/choose_spec.rb
|
158
|
+
- spec/dsl/click_button_spec.rb
|
159
|
+
- spec/dsl/click_link_spec.rb
|
160
|
+
- spec/dsl/click_spec.rb
|
161
|
+
- spec/dsl/current_url_spec.rb
|
162
|
+
- spec/dsl/fill_in_spec.rb
|
163
|
+
- spec/dsl/find_button_spec.rb
|
164
|
+
- spec/dsl/find_by_id_spec.rb
|
165
|
+
- spec/dsl/find_field_spec.rb
|
166
|
+
- spec/dsl/find_link_spec.rb
|
167
|
+
- spec/dsl/find_spec.rb
|
168
|
+
- spec/dsl/has_button_spec.rb
|
169
|
+
- spec/dsl/has_content_spec.rb
|
170
|
+
- spec/dsl/has_css_spec.rb
|
171
|
+
- spec/dsl/has_field_spec.rb
|
172
|
+
- spec/dsl/has_link_spec.rb
|
173
|
+
- spec/dsl/has_xpath_spec.rb
|
174
|
+
- spec/dsl/locate_spec.rb
|
175
|
+
- spec/dsl/select_spec.rb
|
176
|
+
- spec/dsl/uncheck_spec.rb
|
177
|
+
- spec/dsl/within_spec.rb
|
178
|
+
- spec/dsl_spec.rb
|
179
|
+
- spec/fixtures/capybara.jpg
|
180
|
+
- spec/fixtures/test_file.txt
|
181
|
+
- spec/public/jquery-ui.js
|
182
|
+
- spec/public/jquery.js
|
183
|
+
- spec/public/test.js
|
184
|
+
- spec/save_and_open_page_spec.rb
|
185
|
+
- spec/searchable_spec.rb
|
186
|
+
- spec/server_spec.rb
|
187
|
+
- spec/session/celerity_session_spec.rb
|
188
|
+
- spec/session/culerity_session_spec.rb
|
189
|
+
- spec/session/rack_test_session_spec.rb
|
190
|
+
- spec/session/selenium_session_spec.rb
|
191
|
+
- spec/session_spec.rb
|
192
|
+
- spec/session_with_headers_support_spec.rb
|
193
|
+
- spec/session_with_javascript_support_spec.rb
|
194
|
+
- spec/session_without_headers_support_spec.rb
|
195
|
+
- spec/session_without_javascript_support_spec.rb
|
196
|
+
- spec/spec_helper.rb
|
197
|
+
- spec/test_app.rb
|
198
|
+
- spec/views/buttons.erb
|
199
|
+
- spec/views/fieldsets.erb
|
200
|
+
- spec/views/form.erb
|
201
|
+
- spec/views/postback.erb
|
202
|
+
- spec/views/tables.erb
|
203
|
+
- spec/views/with_html.erb
|
204
|
+
- spec/views/with_js.erb
|
205
|
+
- spec/views/with_scope.erb
|
206
|
+
- spec/views/with_simple_html.erb
|
207
|
+
- spec/wait_until_spec.rb
|
208
|
+
- spec/xpath_spec.rb
|
209
|
+
has_rdoc: true
|
210
|
+
homepage: http://github.com/jnicklas/capybara
|
211
|
+
licenses: []
|
212
|
+
|
213
|
+
post_install_message:
|
214
|
+
rdoc_options:
|
215
|
+
- --main
|
216
|
+
- README.rdoc
|
217
|
+
require_paths:
|
218
|
+
- lib
|
219
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - ">="
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: "0"
|
224
|
+
version:
|
225
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: "0"
|
230
|
+
version:
|
231
|
+
requirements: []
|
232
|
+
|
233
|
+
rubyforge_project: bjeanes-capybara
|
234
|
+
rubygems_version: 1.3.5
|
235
|
+
signing_key:
|
236
|
+
specification_version: 3
|
237
|
+
summary: Capybara aims to simplify the process of integration testing Rack applications, such as Rails, Sinatra or Merb
|
238
|
+
test_files: []
|
239
|
+
|