capybara 1.1.4 → 2.0.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.
Files changed (111) hide show
  1. data/{History.txt → History.md} +138 -0
  2. data/License.txt +22 -0
  3. data/README.md +850 -0
  4. data/lib/capybara/cucumber.rb +2 -5
  5. data/lib/capybara/driver/base.rb +6 -6
  6. data/lib/capybara/driver/node.rb +3 -2
  7. data/lib/capybara/dsl.rb +13 -124
  8. data/lib/capybara/helpers.rb +33 -0
  9. data/lib/capybara/node/actions.rb +16 -30
  10. data/lib/capybara/node/base.rb +56 -13
  11. data/lib/capybara/node/element.rb +18 -30
  12. data/lib/capybara/node/finders.rb +28 -90
  13. data/lib/capybara/node/matchers.rb +121 -73
  14. data/lib/capybara/node/simple.rb +13 -11
  15. data/lib/capybara/query.rb +78 -0
  16. data/lib/capybara/rack_test/browser.rb +27 -39
  17. data/lib/capybara/rack_test/driver.rb +13 -3
  18. data/lib/capybara/rack_test/node.rb +31 -2
  19. data/lib/capybara/result.rb +72 -0
  20. data/lib/capybara/rspec/features.rb +4 -1
  21. data/lib/capybara/rspec/matchers.rb +33 -63
  22. data/lib/capybara/rspec.rb +7 -4
  23. data/lib/capybara/selector.rb +97 -34
  24. data/lib/capybara/selenium/driver.rb +15 -62
  25. data/lib/capybara/selenium/node.rb +14 -21
  26. data/lib/capybara/server.rb +32 -27
  27. data/lib/capybara/session.rb +90 -50
  28. data/lib/capybara/spec/fixtures/another_test_file.txt +1 -0
  29. data/lib/capybara/spec/public/jquery-ui.js +791 -0
  30. data/lib/capybara/spec/public/jquery.js +9046 -0
  31. data/lib/capybara/spec/public/test.js +3 -0
  32. data/lib/capybara/spec/session/all_spec.rb +61 -59
  33. data/lib/capybara/spec/session/assert_selector.rb +123 -0
  34. data/lib/capybara/spec/session/attach_file_spec.rb +72 -55
  35. data/lib/capybara/spec/session/body_spec.rb +21 -0
  36. data/lib/capybara/spec/session/check_spec.rb +68 -48
  37. data/lib/capybara/spec/session/choose_spec.rb +32 -18
  38. data/lib/capybara/spec/session/click_button_spec.rb +263 -232
  39. data/lib/capybara/spec/session/click_link_or_button_spec.rb +40 -29
  40. data/lib/capybara/spec/session/click_link_spec.rb +96 -96
  41. data/lib/capybara/spec/session/current_url_spec.rb +88 -10
  42. data/lib/capybara/spec/session/evaluate_script_spec.rb +6 -0
  43. data/lib/capybara/spec/session/execute_script_spec.rb +7 -0
  44. data/lib/capybara/spec/session/fill_in_spec.rb +119 -103
  45. data/lib/capybara/spec/session/find_button_spec.rb +16 -14
  46. data/lib/capybara/spec/session/find_by_id_spec.rb +16 -14
  47. data/lib/capybara/spec/session/find_field_spec.rb +23 -21
  48. data/lib/capybara/spec/session/find_link_spec.rb +15 -14
  49. data/lib/capybara/spec/session/find_spec.rb +93 -115
  50. data/lib/capybara/spec/session/first_spec.rb +51 -85
  51. data/lib/capybara/spec/session/has_button_spec.rb +22 -24
  52. data/lib/capybara/spec/session/has_css_spec.rb +190 -205
  53. data/lib/capybara/spec/session/has_field_spec.rb +170 -144
  54. data/lib/capybara/spec/session/has_link_spec.rb +26 -29
  55. data/lib/capybara/spec/session/has_select_spec.rb +161 -109
  56. data/lib/capybara/spec/session/has_selector_spec.rb +94 -100
  57. data/lib/capybara/spec/session/has_table_spec.rb +22 -88
  58. data/lib/capybara/spec/session/has_text_spec.rb +195 -0
  59. data/lib/capybara/spec/session/has_xpath_spec.rb +100 -96
  60. data/lib/capybara/spec/session/headers.rb +4 -17
  61. data/lib/capybara/spec/session/html_spec.rb +15 -0
  62. data/lib/capybara/spec/session/node_spec.rb +205 -0
  63. data/lib/capybara/spec/session/reset_session_spec.rb +42 -0
  64. data/lib/capybara/spec/session/response_code.rb +4 -17
  65. data/lib/capybara/spec/session/save_page_spec.rb +46 -0
  66. data/lib/capybara/spec/session/screenshot.rb +13 -0
  67. data/lib/capybara/spec/session/select_spec.rb +99 -88
  68. data/lib/capybara/spec/session/source_spec.rb +12 -0
  69. data/lib/capybara/spec/session/text_spec.rb +15 -12
  70. data/lib/capybara/spec/session/uncheck_spec.rb +22 -17
  71. data/lib/capybara/spec/session/unselect_spec.rb +69 -58
  72. data/lib/capybara/spec/session/visit_spec.rb +74 -0
  73. data/lib/capybara/spec/session/within_frame_spec.rb +31 -0
  74. data/lib/capybara/spec/session/within_spec.rb +118 -131
  75. data/lib/capybara/spec/session/within_window_spec.rb +38 -0
  76. data/lib/capybara/spec/spec_helper.rb +84 -0
  77. data/lib/capybara/spec/test_app.rb +32 -6
  78. data/lib/capybara/spec/views/form.erb +12 -10
  79. data/lib/capybara/spec/views/host_links.erb +2 -2
  80. data/lib/capybara/spec/views/tables.erb +6 -66
  81. data/lib/capybara/spec/views/with_html.erb +9 -4
  82. data/lib/capybara/spec/views/with_js.erb +11 -7
  83. data/lib/capybara/version.rb +1 -1
  84. data/lib/capybara.rb +125 -6
  85. data/spec/basic_node_spec.rb +17 -5
  86. data/spec/capybara_spec.rb +9 -0
  87. data/spec/dsl_spec.rb +31 -17
  88. data/spec/rack_test_spec.rb +157 -0
  89. data/spec/result_spec.rb +51 -0
  90. data/spec/rspec/features_spec.rb +19 -2
  91. data/spec/rspec/matchers_spec.rb +170 -89
  92. data/spec/rspec_spec.rb +1 -3
  93. data/spec/selenium_spec.rb +53 -0
  94. data/spec/server_spec.rb +37 -25
  95. data/spec/spec_helper.rb +1 -30
  96. metadata +39 -31
  97. data/README.rdoc +0 -722
  98. data/lib/capybara/spec/driver.rb +0 -301
  99. data/lib/capybara/spec/session/current_host_spec.rb +0 -68
  100. data/lib/capybara/spec/session/has_content_spec.rb +0 -106
  101. data/lib/capybara/spec/session/javascript.rb +0 -306
  102. data/lib/capybara/spec/session.rb +0 -154
  103. data/lib/capybara/util/save_and_open_page.rb +0 -44
  104. data/lib/capybara/util/timeout.rb +0 -27
  105. data/spec/driver/rack_test_driver_spec.rb +0 -89
  106. data/spec/driver/selenium_driver_spec.rb +0 -37
  107. data/spec/save_and_open_page_spec.rb +0 -155
  108. data/spec/session/rack_test_session_spec.rb +0 -55
  109. data/spec/session/selenium_session_spec.rb +0 -26
  110. data/spec/string_spec.rb +0 -77
  111. data/spec/timeout_spec.rb +0 -28
data/spec/server_spec.rb CHANGED
@@ -12,9 +12,19 @@ describe Capybara::Server do
12
12
  end
13
13
 
14
14
  it "should do nothing when no server given" do
15
- running do
15
+ expect do
16
16
  @server = Capybara::Server.new(nil).boot
17
- end.should_not raise_error
17
+ end.not_to raise_error
18
+ end
19
+
20
+ it "should bind to the specified host" do
21
+ Capybara.server_host = '0.0.0.0'
22
+
23
+ app = proc { |env| [200, {}, "Hello Server!"]}
24
+ server = Capybara::Server.new(app).boot
25
+ server.host.should == '0.0.0.0'
26
+
27
+ Capybara.server_host = nil
18
28
  end
19
29
 
20
30
  it "should use specified port" do
@@ -29,6 +39,16 @@ describe Capybara::Server do
29
39
  Capybara.server_port = nil
30
40
  end
31
41
 
42
+ it "should use given port" do
43
+ @app = proc { |env| [200, {}, "Hello Server!"]}
44
+ @server = Capybara::Server.new(@app, 22790).boot
45
+
46
+ @res = Net::HTTP.start(@server.host, 22790) { |http| http.get('/') }
47
+ @res.body.should include('Hello Server')
48
+
49
+ Capybara.server_port = nil
50
+ end
51
+
32
52
  it "should find an available port" do
33
53
  @app1 = proc { |env| [200, {}, "Hello Server!"]}
34
54
  @app2 = proc { |env| [200, {}, "Hello Second Server!"]}
@@ -62,28 +82,20 @@ describe Capybara::Server do
62
82
  @server2a.port.should == @server2b.port
63
83
  end
64
84
 
65
- it "should wait specified time for the app to boot" do
66
- pending 'this test does not work: https://groups.google.com/d/msg/ruby-capybara/QrSKTbjh5rY/egvcVFYiWZMJ'
67
-
68
- @slow_app = proc { |env| sleep(1); [200, {}, "Hello Slow Server!"] }
69
-
70
- Capybara.server_boot_timeout = 1.5
71
- @server = Capybara::Server.new(@slow_app).boot
72
-
73
- @res = Net::HTTP.start(@server.host, @server.port) { |http| http.get('/') }
74
- @res.body.should include('Hello Slow Server')
75
- end
76
-
77
- it "should raise an exception if boot timeout is exceeded" do
78
- pending 'this test does not work: https://groups.google.com/d/msg/ruby-capybara/QrSKTbjh5rY/egvcVFYiWZMJ'
79
-
80
- @slow_app = proc { |env| sleep(1); [200, {}, "Hello Slow Server!"] }
81
-
82
- Capybara.server_boot_timeout = 0.5
83
- server = Capybara::Server.new(@slow_app)
84
- server.stub(:exit).and_return(:timeout)
85
- server.stub(:puts)
86
- server.boot.should == :timeout
85
+ it "should raise server errors when the server errors before the timeout" do
86
+ begin
87
+ Capybara.server do
88
+ sleep 0.1
89
+ raise 'kaboom'
90
+ end
91
+
92
+ proc do
93
+ Capybara::Server.new(proc {|e|}).boot
94
+ end.should raise_error(RuntimeError, 'kaboom')
95
+ ensure
96
+ # TODO refactor out the defaults so it's reliant on unset state instead of
97
+ # a one-time call in capybara.rb
98
+ Capybara.server {|app, port| Capybara.run_default_server(app, port)}
99
+ end
87
100
  end
88
-
89
101
  end
data/spec/spec_helper.rb CHANGED
@@ -1,30 +1 @@
1
- $:.unshift(File.expand_path('../lib', File.dirname(__FILE__)))
2
-
3
- require 'rubygems'
4
- require "bundler/setup"
5
-
6
- require 'rspec'
7
- require 'capybara'
8
-
9
- RSpec.configure do |config|
10
- config.before do
11
- Capybara.configure do |config|
12
- config.default_selector = :xpath
13
- end
14
- end
15
- end
16
-
17
- # Required here instead of in rspec_spec to avoid RSpec deprecation warning
18
- require 'capybara/rspec'
19
-
20
- require 'capybara/spec/driver'
21
- require 'capybara/spec/session'
22
-
23
- alias :running :lambda
24
-
25
- Capybara.default_wait_time = 0 # less timeout so tests run faster
26
-
27
- module TestSessions
28
- RackTest = Capybara::Session.new(:rack_test, TestApp)
29
- Selenium = Capybara::Session.new(:selenium, TestApp)
30
- end
1
+ require 'capybara/spec/spec_helper'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 2.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-28 00:00:00.000000000 Z
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ~>
100
100
  - !ruby/object:Gem::Version
101
- version: 0.1.4
101
+ version: 1.0.0
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: 0.1.4
109
+ version: 1.0.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: sinatra
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
- version: 2.0.0
133
+ version: 2.2.0
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,13 +138,13 @@ dependencies:
138
138
  requirements:
139
139
  - - ! '>='
140
140
  - !ruby/object:Gem::Version
141
- version: 2.0.0
141
+ version: 2.2.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: launchy
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
147
- - - ~>
147
+ - - ! '>='
148
148
  - !ruby/object:Gem::Version
149
149
  version: 2.0.4
150
150
  type: :development
@@ -152,7 +152,7 @@ dependencies:
152
152
  version_requirements: !ruby/object:Gem::Requirement
153
153
  none: false
154
154
  requirements:
155
- - - ~>
155
+ - - ! '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: 2.0.4
158
158
  - !ruby/object:Gem::Dependency
@@ -194,7 +194,7 @@ dependencies:
194
194
  requirements:
195
195
  - - ! '>='
196
196
  - !ruby/object:Gem::Version
197
- version: '0.10'
197
+ version: 0.10.5
198
198
  type: :development
199
199
  prerelease: false
200
200
  version_requirements: !ruby/object:Gem::Requirement
@@ -202,7 +202,7 @@ dependencies:
202
202
  requirements:
203
203
  - - ! '>='
204
204
  - !ruby/object:Gem::Version
205
- version: '0.10'
205
+ version: 0.10.5
206
206
  - !ruby/object:Gem::Dependency
207
207
  name: rake
208
208
  requirement: !ruby/object:Gem::Requirement
@@ -225,13 +225,13 @@ email:
225
225
  - jonas.nicklas@gmail.com
226
226
  executables: []
227
227
  extensions: []
228
- extra_rdoc_files:
229
- - README.rdoc
228
+ extra_rdoc_files: []
230
229
  files:
231
230
  - lib/capybara/cucumber.rb
232
231
  - lib/capybara/driver/base.rb
233
232
  - lib/capybara/driver/node.rb
234
233
  - lib/capybara/dsl.rb
234
+ - lib/capybara/helpers.rb
235
235
  - lib/capybara/node/actions.rb
236
236
  - lib/capybara/node/base.rb
237
237
  - lib/capybara/node/document.rb
@@ -239,11 +239,13 @@ files:
239
239
  - lib/capybara/node/finders.rb
240
240
  - lib/capybara/node/matchers.rb
241
241
  - lib/capybara/node/simple.rb
242
+ - lib/capybara/query.rb
242
243
  - lib/capybara/rack_test/browser.rb
243
244
  - lib/capybara/rack_test/driver.rb
244
245
  - lib/capybara/rack_test/form.rb
245
246
  - lib/capybara/rack_test/node.rb
246
247
  - lib/capybara/rails.rb
248
+ - lib/capybara/result.rb
247
249
  - lib/capybara/rspec/features.rb
248
250
  - lib/capybara/rspec/matchers.rb
249
251
  - lib/capybara/rspec.rb
@@ -252,19 +254,24 @@ files:
252
254
  - lib/capybara/selenium/node.rb
253
255
  - lib/capybara/server.rb
254
256
  - lib/capybara/session.rb
255
- - lib/capybara/spec/driver.rb
257
+ - lib/capybara/spec/fixtures/another_test_file.txt
256
258
  - lib/capybara/spec/fixtures/capybara.jpg
257
259
  - lib/capybara/spec/fixtures/test_file.txt
260
+ - lib/capybara/spec/public/jquery-ui.js
261
+ - lib/capybara/spec/public/jquery.js
258
262
  - lib/capybara/spec/public/test.js
259
263
  - lib/capybara/spec/session/all_spec.rb
264
+ - lib/capybara/spec/session/assert_selector.rb
260
265
  - lib/capybara/spec/session/attach_file_spec.rb
266
+ - lib/capybara/spec/session/body_spec.rb
261
267
  - lib/capybara/spec/session/check_spec.rb
262
268
  - lib/capybara/spec/session/choose_spec.rb
263
269
  - lib/capybara/spec/session/click_button_spec.rb
264
270
  - lib/capybara/spec/session/click_link_or_button_spec.rb
265
271
  - lib/capybara/spec/session/click_link_spec.rb
266
- - lib/capybara/spec/session/current_host_spec.rb
267
272
  - lib/capybara/spec/session/current_url_spec.rb
273
+ - lib/capybara/spec/session/evaluate_script_spec.rb
274
+ - lib/capybara/spec/session/execute_script_spec.rb
268
275
  - lib/capybara/spec/session/fill_in_spec.rb
269
276
  - lib/capybara/spec/session/find_button_spec.rb
270
277
  - lib/capybara/spec/session/find_by_id_spec.rb
@@ -273,23 +280,31 @@ files:
273
280
  - lib/capybara/spec/session/find_spec.rb
274
281
  - lib/capybara/spec/session/first_spec.rb
275
282
  - lib/capybara/spec/session/has_button_spec.rb
276
- - lib/capybara/spec/session/has_content_spec.rb
277
283
  - lib/capybara/spec/session/has_css_spec.rb
278
284
  - lib/capybara/spec/session/has_field_spec.rb
279
285
  - lib/capybara/spec/session/has_link_spec.rb
280
286
  - lib/capybara/spec/session/has_select_spec.rb
281
287
  - lib/capybara/spec/session/has_selector_spec.rb
282
288
  - lib/capybara/spec/session/has_table_spec.rb
289
+ - lib/capybara/spec/session/has_text_spec.rb
283
290
  - lib/capybara/spec/session/has_xpath_spec.rb
284
291
  - lib/capybara/spec/session/headers.rb
285
- - lib/capybara/spec/session/javascript.rb
292
+ - lib/capybara/spec/session/html_spec.rb
293
+ - lib/capybara/spec/session/node_spec.rb
294
+ - lib/capybara/spec/session/reset_session_spec.rb
286
295
  - lib/capybara/spec/session/response_code.rb
296
+ - lib/capybara/spec/session/save_page_spec.rb
297
+ - lib/capybara/spec/session/screenshot.rb
287
298
  - lib/capybara/spec/session/select_spec.rb
299
+ - lib/capybara/spec/session/source_spec.rb
288
300
  - lib/capybara/spec/session/text_spec.rb
289
301
  - lib/capybara/spec/session/uncheck_spec.rb
290
302
  - lib/capybara/spec/session/unselect_spec.rb
303
+ - lib/capybara/spec/session/visit_spec.rb
304
+ - lib/capybara/spec/session/within_frame_spec.rb
291
305
  - lib/capybara/spec/session/within_spec.rb
292
- - lib/capybara/spec/session.rb
306
+ - lib/capybara/spec/session/within_window_spec.rb
307
+ - lib/capybara/spec/spec_helper.rb
293
308
  - lib/capybara/spec/test_app.rb
294
309
  - lib/capybara/spec/views/buttons.erb
295
310
  - lib/capybara/spec/views/fieldsets.erb
@@ -309,35 +324,28 @@ files:
309
324
  - lib/capybara/spec/views/with_simple_html.erb
310
325
  - lib/capybara/spec/views/within_frames.erb
311
326
  - lib/capybara/spec/views/within_popups.erb
312
- - lib/capybara/util/save_and_open_page.rb
313
- - lib/capybara/util/timeout.rb
314
327
  - lib/capybara/version.rb
315
328
  - lib/capybara.rb
316
329
  - spec/basic_node_spec.rb
317
330
  - spec/capybara_spec.rb
318
- - spec/driver/rack_test_driver_spec.rb
319
- - spec/driver/selenium_driver_spec.rb
320
331
  - spec/dsl_spec.rb
321
332
  - spec/fixtures/selenium_driver_rspec_failure.rb
322
333
  - spec/fixtures/selenium_driver_rspec_success.rb
334
+ - spec/rack_test_spec.rb
335
+ - spec/result_spec.rb
323
336
  - spec/rspec/features_spec.rb
324
337
  - spec/rspec/matchers_spec.rb
325
338
  - spec/rspec_spec.rb
326
- - spec/save_and_open_page_spec.rb
339
+ - spec/selenium_spec.rb
327
340
  - spec/server_spec.rb
328
- - spec/session/rack_test_session_spec.rb
329
- - spec/session/selenium_session_spec.rb
330
341
  - spec/spec_helper.rb
331
- - spec/string_spec.rb
332
- - spec/timeout_spec.rb
333
- - README.rdoc
334
- - History.txt
342
+ - README.md
343
+ - History.md
344
+ - License.txt
335
345
  homepage: http://github.com/jnicklas/capybara
336
346
  licenses: []
337
347
  post_install_message:
338
- rdoc_options:
339
- - --main
340
- - README.rdoc
348
+ rdoc_options: []
341
349
  require_paths:
342
350
  - lib
343
351
  required_ruby_version: !ruby/object:Gem::Requirement