capybara 0.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 +42 -0
- data/README.rdoc +208 -0
- data/Rakefile +33 -0
- data/examples/webcat.rb +36 -0
- data/lib/capybara.rb +30 -0
- data/lib/capybara/core_ext/tcp_socket.rb +26 -0
- data/lib/capybara/cucumber.rb +32 -0
- data/lib/capybara/driver/culerity_driver.rb +83 -0
- data/lib/capybara/driver/firewatir_driver.rb +66 -0
- data/lib/capybara/driver/rack_test_driver.rb +151 -0
- data/lib/capybara/driver/safariwatir_driver.rb +67 -0
- data/lib/capybara/driver/selenium_driver.rb +93 -0
- data/lib/capybara/dsl.rb +58 -0
- data/lib/capybara/node.rb +36 -0
- data/lib/capybara/rails.rb +11 -0
- data/lib/capybara/save_and_open_page.rb +25 -0
- data/lib/capybara/server.rb +53 -0
- data/lib/capybara/session.rb +190 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/driver/culerity_driver_spec.rb +10 -0
- data/spec/driver/firewatir_driver_spec.rb +10 -0
- data/spec/driver/rack_test_driver_spec.rb +9 -0
- data/spec/driver/safariwarit_driver_spec.rb +10 -0
- data/spec/driver/selenium_driver_spec.rb +10 -0
- data/spec/drivers_spec.rb +72 -0
- data/spec/dsl_spec.rb +139 -0
- data/spec/fixtures/test_file.txt +1 -0
- data/spec/public/jquery.js +19 -0
- data/spec/session/culerity_session_spec.rb +23 -0
- data/spec/session/rack_test_session_spec.rb +23 -0
- data/spec/session/selenium_session_spec.rb +23 -0
- data/spec/session_spec.rb +611 -0
- data/spec/spec_helper.rb +10 -0
- data/spec/test_app.rb +67 -0
- data/spec/views/form.erb +117 -0
- data/spec/views/with_html.erb +19 -0
- data/spec/views/with_js.erb +20 -0
- data/spec/views/with_scope.erb +36 -0
- data/spec/views/with_simple_html.erb +1 -0
- metadata +164 -0
data/spec/spec_helper.rb
ADDED
data/spec/test_app.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
require 'rack'
|
3
|
+
|
4
|
+
class TestApp < Sinatra::Base
|
5
|
+
set :root, File.dirname(__FILE__)
|
6
|
+
set :static, true
|
7
|
+
|
8
|
+
get '/' do
|
9
|
+
'Hello world!'
|
10
|
+
end
|
11
|
+
|
12
|
+
get '/foo' do
|
13
|
+
'Another World'
|
14
|
+
end
|
15
|
+
|
16
|
+
get '/with_html' do
|
17
|
+
erb :with_html
|
18
|
+
end
|
19
|
+
|
20
|
+
get '/with_js' do
|
21
|
+
erb :with_js
|
22
|
+
end
|
23
|
+
|
24
|
+
get '/with_simple_html' do
|
25
|
+
erb :with_simple_html
|
26
|
+
end
|
27
|
+
|
28
|
+
get '/with_scope' do
|
29
|
+
erb :with_scope
|
30
|
+
end
|
31
|
+
|
32
|
+
get '/form' do
|
33
|
+
erb :form
|
34
|
+
end
|
35
|
+
|
36
|
+
post '/redirect' do
|
37
|
+
redirect '/redirect_again'
|
38
|
+
end
|
39
|
+
|
40
|
+
get '/redirect' do
|
41
|
+
redirect '/redirect_again'
|
42
|
+
end
|
43
|
+
|
44
|
+
get '/redirect_again' do
|
45
|
+
redirect '/landed'
|
46
|
+
end
|
47
|
+
|
48
|
+
get '/landed' do
|
49
|
+
"You landed"
|
50
|
+
end
|
51
|
+
|
52
|
+
post '/form' do
|
53
|
+
'<pre id="results">' + params[:form].to_yaml + '</pre>'
|
54
|
+
end
|
55
|
+
|
56
|
+
get '/form/get' do
|
57
|
+
'<pre id="results">' + params[:form].to_yaml + '</pre>'
|
58
|
+
end
|
59
|
+
|
60
|
+
post '/upload' do
|
61
|
+
params[:form][:document][:tempfile].read
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
if __FILE__ == $0
|
66
|
+
Rack::Handler::Mongrel.run TestApp, :Port => 8070
|
67
|
+
end
|
data/spec/views/form.erb
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
<h1>Form</h1>
|
2
|
+
|
3
|
+
<form action="/form" method="post">
|
4
|
+
<p>
|
5
|
+
<label for="form_first_name">First Name</label>
|
6
|
+
<input type="text" name="form[first_name]" value="John" id="form_first_name"/>
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<p>
|
10
|
+
<label for="form_last_name">Last Name</label>
|
11
|
+
<input type="text" name="form[last_name]" value="Smith" id="form_last_name"/>
|
12
|
+
</p>
|
13
|
+
|
14
|
+
<p>
|
15
|
+
<label for="form_password">Password</label>
|
16
|
+
<input type="password" name="form[password]" value="seeekrit" id="form_password"/>
|
17
|
+
</p>
|
18
|
+
|
19
|
+
<p>
|
20
|
+
<label for="form_image">Image</label>
|
21
|
+
<input type="file" name="form[image]" id="form_image"/>
|
22
|
+
</p>
|
23
|
+
|
24
|
+
<p>
|
25
|
+
<input type="hidden" name="form[token]" value="12345" id="form_token"/>
|
26
|
+
</p>
|
27
|
+
|
28
|
+
<p>
|
29
|
+
<label for="form_locale">Locale</label>
|
30
|
+
<select name="form[locale]" id="form_locale">
|
31
|
+
<option value="sv">Swedish</option>
|
32
|
+
<option selected="selected" value="en">English</option>
|
33
|
+
<option value="fi">Finish</option>
|
34
|
+
<option value="no">Norwegian</option>
|
35
|
+
</select>
|
36
|
+
</p>
|
37
|
+
|
38
|
+
<p>
|
39
|
+
<label for="form_region">Region</label>
|
40
|
+
<select name="form[region]" id="form_region">
|
41
|
+
<option>Sweden</option>
|
42
|
+
<option selected="selected">Norway</option>
|
43
|
+
<option>Finland</option>
|
44
|
+
</select>
|
45
|
+
</p>
|
46
|
+
|
47
|
+
<p>
|
48
|
+
<label for="form_city">City</label>
|
49
|
+
<select name="form[city]" id="form_city">
|
50
|
+
<option>London</option>
|
51
|
+
<option>Stockholm</option>
|
52
|
+
<option>Paris</option>
|
53
|
+
</select>
|
54
|
+
</p>
|
55
|
+
|
56
|
+
<p>
|
57
|
+
<label for="form_tendency">Tendency</label>
|
58
|
+
<select name="form[tendency]" id="form_tendency"></select>
|
59
|
+
</p>
|
60
|
+
|
61
|
+
<p>
|
62
|
+
<label for="form_description">Description</label></br>
|
63
|
+
<textarea name="form[description]" id="form_description">Descriptive text goes here</textarea>
|
64
|
+
<p>
|
65
|
+
|
66
|
+
<p>
|
67
|
+
<input type="radio" name="form[gender]" value="male" id="gender_male"/>
|
68
|
+
<label for="gender_male">Male</label>
|
69
|
+
<input type="radio" name="form[gender]" value="female" id="gender_female" checked="checked"/>
|
70
|
+
<label for="gender_female">Female</label>
|
71
|
+
<input type="radio" name="form[gender]" value="both" id="gender_both"/>
|
72
|
+
<label for="gender_both">Both</label>
|
73
|
+
</p>
|
74
|
+
|
75
|
+
<p>
|
76
|
+
<input type="checkbox" value="dog" name="form[pets][]" id="form_pets_dog" checked="checked"/>
|
77
|
+
<label for="form_pets_dog">Dog</label>
|
78
|
+
<input type="checkbox" value="cat" name="form[pets][]" id="form_pets_cat"/>
|
79
|
+
<label for="form_pets_cat">Cat</label>
|
80
|
+
<input type="checkbox" value="hamster" name="form[pets][]" id="form_pets_hamster" checked="checked"/>
|
81
|
+
<label for="form_pets_hamster">Hamster</label>
|
82
|
+
</p>
|
83
|
+
|
84
|
+
<p>
|
85
|
+
<input type="submit" name="form[awesome]" id="awe123" value="awesome"/>
|
86
|
+
<input type="submit" name="form[crappy]" id="crap321" value="crappy"/>
|
87
|
+
<input type="image" name="form[okay]" id="okay556" value="okay"/>
|
88
|
+
</p>
|
89
|
+
</form>
|
90
|
+
|
91
|
+
<form action="/form/get?foo=bar" method="get">
|
92
|
+
<p>
|
93
|
+
<label for="form_middle_name">Middle Name</label>
|
94
|
+
<input type="text" name="form[middle_name]" value="Darren" id="form_middle_name"/>
|
95
|
+
</p>
|
96
|
+
|
97
|
+
<p>
|
98
|
+
<input type="submit" name="form[mediocre]" id="mediocre" value="med"/>
|
99
|
+
<p>
|
100
|
+
</form>
|
101
|
+
|
102
|
+
<form action="/upload" method="post" enctype="multipart/form-data">
|
103
|
+
<p>
|
104
|
+
<label for="form_document">Document</label>
|
105
|
+
<input type="file" name="form[document]" id="form_document"/>
|
106
|
+
</p>
|
107
|
+
|
108
|
+
<p>
|
109
|
+
<input type="submit" value="Upload"/>
|
110
|
+
<p>
|
111
|
+
</form>
|
112
|
+
|
113
|
+
<form action="/redirect" method="post">
|
114
|
+
<p>
|
115
|
+
<input type="submit" value="Go FAR"/>
|
116
|
+
</p>
|
117
|
+
</form>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<h1>This is a test</h1>
|
2
|
+
|
3
|
+
<p id="first">
|
4
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
|
5
|
+
tempor incididunt ut <a href="/with_simple_html" title="awesome title" class="simple">labore</a>
|
6
|
+
et dolore magna aliqua. Ut enim ad minim veniam,
|
7
|
+
quis nostrud exercitation <a href="/foo" id="foo">ullamco</a> laboris nisi
|
8
|
+
ut aliquip ex ea commodo consequat.
|
9
|
+
</p>
|
10
|
+
|
11
|
+
<p id="second">
|
12
|
+
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum
|
13
|
+
dolore eu fugiat <a href="/redirect" id="red">Redirect</a> pariatur. Excepteur sint occaecat cupidatat non proident,
|
14
|
+
sunt in culpa qui officia deserunt mollit anim id est laborum.
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<p>
|
18
|
+
<input type="text" id="test_field" value="monkey"/>
|
19
|
+
</p>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
2
|
+
<head>
|
3
|
+
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
4
|
+
<title>with_js</title>
|
5
|
+
<script src="/jquery.js" type="text/javascript" charset="utf-8"></script>
|
6
|
+
<script type="text/javascript" charset="utf-8">
|
7
|
+
//<![CDATA[
|
8
|
+
$(function() {
|
9
|
+
$('#change').text('I changed it');
|
10
|
+
});
|
11
|
+
//]]>
|
12
|
+
</script>
|
13
|
+
</head>
|
14
|
+
|
15
|
+
<body id="with_js">
|
16
|
+
<h1>FooBar</h1>
|
17
|
+
|
18
|
+
<p id="change">This is text</p>
|
19
|
+
</body>
|
20
|
+
</html>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<h1>This page is used for testing various scopes</h1>
|
2
|
+
|
3
|
+
<p id="for_foo">
|
4
|
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
|
5
|
+
incididunt ut labore et dolore magna aliqua. Ut enim ad minim venia.
|
6
|
+
<a href="/redirect">Go</a>
|
7
|
+
</p>
|
8
|
+
|
9
|
+
<div id="for_bar">
|
10
|
+
<ul>
|
11
|
+
<li>With Simple HTML: <a href="/with_simple_html">Go</a>
|
12
|
+
<form action="/redirect" method="post" accept-charset="utf-8">
|
13
|
+
<p>
|
14
|
+
<label for="simple_first_name">First Name</label>
|
15
|
+
<input type="text" name="first_name" value="John" id="simple_first_name"/>
|
16
|
+
</p>
|
17
|
+
<p><input type="submit" value="Go"/></p>
|
18
|
+
</form>
|
19
|
+
</li>
|
20
|
+
<li>Bar: <a href="/foo">Go</a>
|
21
|
+
<form action="/form" method="post" accept-charset="utf-8">
|
22
|
+
<p>
|
23
|
+
<label for="bar_first_name">First Name</label>
|
24
|
+
<input type="text" name="form[first_name]" value="Peter" id="bar_first_name"/>
|
25
|
+
</p>
|
26
|
+
<p><input type="submit" value="Go"/></p>
|
27
|
+
</form>
|
28
|
+
</li>
|
29
|
+
</ul>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div id="another_foo">
|
33
|
+
<ul>
|
34
|
+
<li>With Simple HTML: <a href="/">Go</a>
|
35
|
+
</ul>
|
36
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<h1>Bar</h1>
|
metadata
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: capybara
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: "0.1"
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jonas Nicklas
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-11-19 00:00:00 +01: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: culerity
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.2.3
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: selenium-webdriver
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.0.3
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: rack
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.0.0
|
54
|
+
version:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: database_cleaner
|
57
|
+
type: :runtime
|
58
|
+
version_requirement:
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.2.3
|
64
|
+
version:
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: hoe
|
67
|
+
type: :development
|
68
|
+
version_requirement:
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: 2.3.3
|
74
|
+
version:
|
75
|
+
description: |-
|
76
|
+
Capybara aims to simplify the process of integration testing Rack applications,
|
77
|
+
such as Rails, Sinatra or Merb. It is inspired by and aims to replace Webrat as
|
78
|
+
a DSL for interacting with a webapplication. It is agnostic about the driver
|
79
|
+
running your tests and currently comes bundled with rack-test, Culerity and
|
80
|
+
Selenium support built in.
|
81
|
+
email:
|
82
|
+
- jonas.nicklas@gmail.com
|
83
|
+
executables: []
|
84
|
+
|
85
|
+
extensions: []
|
86
|
+
|
87
|
+
extra_rdoc_files:
|
88
|
+
- History.txt
|
89
|
+
- Manifest.txt
|
90
|
+
- README.rdoc
|
91
|
+
files:
|
92
|
+
- History.txt
|
93
|
+
- Manifest.txt
|
94
|
+
- README.rdoc
|
95
|
+
- Rakefile
|
96
|
+
- examples/webcat.rb
|
97
|
+
- lib/capybara.rb
|
98
|
+
- lib/capybara/core_ext/tcp_socket.rb
|
99
|
+
- lib/capybara/cucumber.rb
|
100
|
+
- lib/capybara/driver/culerity_driver.rb
|
101
|
+
- lib/capybara/driver/firewatir_driver.rb
|
102
|
+
- lib/capybara/driver/rack_test_driver.rb
|
103
|
+
- lib/capybara/driver/safariwatir_driver.rb
|
104
|
+
- lib/capybara/driver/selenium_driver.rb
|
105
|
+
- lib/capybara/dsl.rb
|
106
|
+
- lib/capybara/node.rb
|
107
|
+
- lib/capybara/rails.rb
|
108
|
+
- lib/capybara/save_and_open_page.rb
|
109
|
+
- lib/capybara/server.rb
|
110
|
+
- lib/capybara/session.rb
|
111
|
+
- script/console
|
112
|
+
- script/destroy
|
113
|
+
- script/generate
|
114
|
+
- spec/driver/culerity_driver_spec.rb
|
115
|
+
- spec/driver/firewatir_driver_spec.rb
|
116
|
+
- spec/driver/rack_test_driver_spec.rb
|
117
|
+
- spec/driver/safariwarit_driver_spec.rb
|
118
|
+
- spec/driver/selenium_driver_spec.rb
|
119
|
+
- spec/drivers_spec.rb
|
120
|
+
- spec/dsl_spec.rb
|
121
|
+
- spec/fixtures/test_file.txt
|
122
|
+
- spec/public/jquery.js
|
123
|
+
- spec/session/culerity_session_spec.rb
|
124
|
+
- spec/session/rack_test_session_spec.rb
|
125
|
+
- spec/session/selenium_session_spec.rb
|
126
|
+
- spec/session_spec.rb
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
- spec/test_app.rb
|
129
|
+
- spec/views/form.erb
|
130
|
+
- spec/views/with_html.erb
|
131
|
+
- spec/views/with_js.erb
|
132
|
+
- spec/views/with_scope.erb
|
133
|
+
- spec/views/with_simple_html.erb
|
134
|
+
has_rdoc: true
|
135
|
+
homepage: http://github.com/jnicklas/capybara
|
136
|
+
licenses: []
|
137
|
+
|
138
|
+
post_install_message:
|
139
|
+
rdoc_options:
|
140
|
+
- --main
|
141
|
+
- README.rdoc
|
142
|
+
require_paths:
|
143
|
+
- lib
|
144
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
requirements:
|
146
|
+
- - ">="
|
147
|
+
- !ruby/object:Gem::Version
|
148
|
+
version: "0"
|
149
|
+
version:
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - ">="
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: "0"
|
155
|
+
version:
|
156
|
+
requirements: []
|
157
|
+
|
158
|
+
rubyforge_project: capybara
|
159
|
+
rubygems_version: 1.3.5
|
160
|
+
signing_key:
|
161
|
+
specification_version: 3
|
162
|
+
summary: Capybara aims to simplify the process of integration testing Rack applications, such as Rails, Sinatra or Merb
|
163
|
+
test_files: []
|
164
|
+
|