kookaburra 0.23.0 → 0.23.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.rvmrc +3 -1
- data/Gemfile +0 -1
- data/Gemfile.lock +19 -17
- data/README.markdown +175 -15
- data/Rakefile +10 -6
- data/VERSION +1 -1
- data/kookaburra.gemspec +3 -6
- data/spec/integration/test_a_rack_application_spec.rb +8 -9
- data/spec/kookaburra/mental_model_matcher_spec.rb +4 -1
- metadata +16 -30
data/.rvmrc
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
activesupport (3.2.
|
4
|
+
activesupport (3.2.3)
|
5
5
|
i18n (~> 0.6)
|
6
6
|
multi_json (~> 1.0)
|
7
|
+
addressable (2.2.7)
|
7
8
|
capybara (1.1.2)
|
8
9
|
mime-types (>= 1.16)
|
9
10
|
nokogiri (>= 1.3.3)
|
@@ -22,10 +23,12 @@ GEM
|
|
22
23
|
git (>= 1.2.5)
|
23
24
|
rake
|
24
25
|
rdoc
|
25
|
-
json (1.6.
|
26
|
-
|
27
|
-
|
28
|
-
|
26
|
+
json (1.6.6)
|
27
|
+
libwebsocket (0.1.3)
|
28
|
+
addressable
|
29
|
+
mime-types (1.18)
|
30
|
+
multi_json (1.2.0)
|
31
|
+
nokogiri (1.5.2)
|
29
32
|
patron (0.4.18)
|
30
33
|
rack (1.4.1)
|
31
34
|
rack-protection (1.2.0)
|
@@ -33,7 +36,6 @@ GEM
|
|
33
36
|
rack-test (0.6.1)
|
34
37
|
rack (>= 1.0)
|
35
38
|
rake (0.9.2.2)
|
36
|
-
rcov (1.0.0)
|
37
39
|
rdoc (3.12)
|
38
40
|
json (~> 1.4)
|
39
41
|
redcarpet (1.17.2)
|
@@ -41,23 +43,24 @@ GEM
|
|
41
43
|
ruby2ruby (~> 1.2)
|
42
44
|
ruby_parser (~> 2.0)
|
43
45
|
sexp_processor (~> 3.0)
|
44
|
-
rspec (2.
|
45
|
-
rspec-core (~> 2.
|
46
|
-
rspec-expectations (~> 2.
|
47
|
-
rspec-mocks (~> 2.
|
48
|
-
rspec-core (2.
|
49
|
-
rspec-expectations (2.
|
50
|
-
diff-lcs (~> 1.1.
|
51
|
-
rspec-mocks (2.
|
46
|
+
rspec (2.9.0)
|
47
|
+
rspec-core (~> 2.9.0)
|
48
|
+
rspec-expectations (~> 2.9.0)
|
49
|
+
rspec-mocks (~> 2.9.0)
|
50
|
+
rspec-core (2.9.0)
|
51
|
+
rspec-expectations (2.9.1)
|
52
|
+
diff-lcs (~> 1.1.3)
|
53
|
+
rspec-mocks (2.9.0)
|
52
54
|
ruby2ruby (1.3.1)
|
53
55
|
ruby_parser (~> 2.0)
|
54
56
|
sexp_processor (~> 3.0)
|
55
57
|
ruby_parser (2.3.1)
|
56
58
|
sexp_processor (~> 3.0)
|
57
|
-
rubyzip (0.9.
|
58
|
-
selenium-webdriver (2.
|
59
|
+
rubyzip (0.9.7)
|
60
|
+
selenium-webdriver (2.21.0)
|
59
61
|
childprocess (>= 0.2.5)
|
60
62
|
ffi (~> 1.0)
|
63
|
+
libwebsocket (~> 0.1.3)
|
61
64
|
multi_json (~> 1.0)
|
62
65
|
rubyzip
|
63
66
|
sexp_processor (3.1.0)
|
@@ -79,7 +82,6 @@ DEPENDENCIES
|
|
79
82
|
i18n
|
80
83
|
jeweler
|
81
84
|
patron
|
82
|
-
rcov
|
83
85
|
redcarpet (~> 1.0)
|
84
86
|
reek
|
85
87
|
rspec
|
data/README.markdown
CHANGED
@@ -28,27 +28,58 @@ as well as which driver to use for running the tests (currently only tested with
|
|
28
28
|
Kookaburra is designed to run tests agains a remote web server (although that
|
29
29
|
server could be running on the same machine, it doesn't need to be), and it is
|
30
30
|
the responsibility of the test implementation to ensure that the server is
|
31
|
-
running.
|
32
|
-
how to achieve this for a [Rack-based] [Rack] application. (Note that you cannot
|
33
|
-
easily start the application server in a separate thread. Because Ruby uses
|
34
|
-
green threads, the HTTP library used in the APIDriver will block while making
|
35
|
-
its requests and prevent the application server thread from responding.)
|
31
|
+
running.
|
36
32
|
|
37
33
|
The fact that Kookaburra runs against a remote server means that *it is not
|
38
34
|
limited to testing only Ruby web applications*. As long as your application
|
39
35
|
exposes a web-service API for use by the GivenDriver and an HTML user interface
|
40
36
|
for use by the UIDriver, you can use Kookaburra to test it. Also, as long as
|
41
37
|
you're careful with both your application and test designs, you're not limited
|
42
|
-
to running your tests only in an isolated testing environment; you could run
|
43
|
-
same test suite you use for development against your
|
44
|
-
|
38
|
+
to running your tests only in an isolated testing environment; you could run
|
39
|
+
the same test suite you use for development against your staging or production
|
40
|
+
systems.
|
41
|
+
|
42
|
+
### Testing an Application Running Locally ###
|
43
|
+
|
44
|
+
The fact that Kookaburra is designed to support running tests against a remote
|
45
|
+
server does not, of course, mean that the application cannot be running locally.
|
46
|
+
It is possible to have your test suite manage the process of starting and
|
47
|
+
stopping your server for you. Examples of how to do so with a Rack application
|
48
|
+
are presented below, but you should be able to take the same basic approach with
|
49
|
+
other types of application servers.
|
50
|
+
|
51
|
+
Although Capybara is capable of starting a Rack application server on its own,
|
52
|
+
the default setup only starts the server up on-demand when you call a method
|
53
|
+
that requires the browser to interact with the web application. Because the
|
54
|
+
APIDriver layer does not use Capybara, it is necessary to manage the server
|
55
|
+
process on your own. Otherwise the server would not be guaranteed to be running
|
56
|
+
when you call the APIDriver methods (particularly as these often appear in
|
57
|
+
"Given" statements that are run before you start interacting with the web
|
58
|
+
browser.)
|
59
|
+
|
60
|
+
Keep in mind that, even if your server is capable of being started up in another
|
61
|
+
thread within the same Ruby process that is executing your test suite, you will
|
62
|
+
want to avoid doing so unless you are using a Ruby interpreter that supports
|
63
|
+
native threads. Otherwise, when the APIDriver makes an HTTP call to your
|
64
|
+
application's API, it will block while waiting for a response, thus preventing
|
65
|
+
your application from being able to respond to that request and resulting in a
|
66
|
+
timeout error in your tests.
|
45
67
|
|
46
68
|
### RSpec ###
|
47
69
|
|
48
|
-
|
49
|
-
|
70
|
+
The following examples depict how you might configure RSpec to run tests against
|
71
|
+
an already running application server (e.g. a remote staging site) and a Rack
|
72
|
+
application server that is managed by the test suite.
|
73
|
+
|
74
|
+
#### Testing an already running server ####
|
75
|
+
|
76
|
+
If you are running your tests against an already running server, you can simply
|
77
|
+
add the following to `spec/support/kookaburra_setup.rb`:
|
50
78
|
|
51
79
|
require 'kookaburra/test_helpers'
|
80
|
+
|
81
|
+
# Change these to the files that define your custom GivenDriver and UIDriver
|
82
|
+
# implementations.
|
52
83
|
require 'my_app/kookaburra/given_driver'
|
53
84
|
require 'my_app/kookaburra/ui_driver'
|
54
85
|
|
@@ -58,21 +89,95 @@ For [RSpec] [RSpec] integration tests, just add the following to
|
|
58
89
|
c.given_driver_class = MyApp::Kookaburra::GivenDriver
|
59
90
|
c.ui_driver_class = MyApp::Kookaburra::UIDriver
|
60
91
|
c.app_host = 'http://my_app.example.com:1234'
|
61
|
-
c.browser = Capybara
|
92
|
+
c.browser = Capybara::Session.new(:selenium)
|
62
93
|
c.server_error_detection { |browser|
|
63
94
|
browser.has_css?('head title', :text => 'Internal Server Error')
|
64
95
|
}
|
65
96
|
end
|
66
97
|
|
67
98
|
RSpec.configure do |c|
|
99
|
+
# Makes the #k, #given and #ui methods available to your specs
|
100
|
+
# (See section on test implementation below)
|
68
101
|
c.include(Kookaburra::TestHelpers, :type => :request)
|
69
102
|
end
|
70
103
|
|
104
|
+
#### Managing startup and shutdown of a Rack application server ####
|
105
|
+
|
106
|
+
While developing, it can be helpful to run your integration specs against a
|
107
|
+
locally-running server that is managed by your test suite. The setup is similar
|
108
|
+
to that in the previous section, but it adds before and after hooks to launch
|
109
|
+
and shut down a Rack application server. Just add the following to
|
110
|
+
`spec/support/kookaburra_setup.rb`:
|
111
|
+
|
112
|
+
require 'kookaburra/test_helpers'
|
113
|
+
require 'thwait'
|
114
|
+
|
115
|
+
# Change these to the files that define your custom GivenDriver and UIDriver
|
116
|
+
# implementations.
|
117
|
+
require 'my_app/kookaburra/given_driver'
|
118
|
+
require 'my_app/kookaburra/ui_driver'
|
119
|
+
|
120
|
+
APP_PORT = ENV['APP_PORT'] || 3009
|
121
|
+
|
122
|
+
# c.app_host below should be set to whatever the root URL of your running
|
123
|
+
# application is.
|
124
|
+
Kookaburra.configure do |c|
|
125
|
+
c.given_driver_class = MyApp::Kookaburra::GivenDriver
|
126
|
+
c.ui_driver_class = MyApp::Kookaburra::UIDriver
|
127
|
+
c.app_host = 'http://localhost:%d' % APP_PORT
|
128
|
+
c.browser = Capybara::Session.new(:selenium)
|
129
|
+
c.server_error_detection { |browser|
|
130
|
+
browser.has_css?('head title', :text => 'Internal Server Error')
|
131
|
+
}
|
132
|
+
end
|
133
|
+
|
134
|
+
RSpec.configure do |c|
|
135
|
+
c.include(Kookaburra::TestHelpers, :type => :request)
|
136
|
+
|
137
|
+
# Start the application server prior to running a group of integration
|
138
|
+
# specs. `MyApplication` below should be replaced with the object that
|
139
|
+
# implements the Rack `#call` interface for your application. For a Rails
|
140
|
+
# app, this would be along the lines of `MyAppName::Application`.
|
141
|
+
c.before(:all, :type => :request) do
|
142
|
+
# Run the server process in a forked process, and get a handle on that
|
143
|
+
# process, so that it can be shut down after the tests run.
|
144
|
+
@rack_server_pid = fork do
|
145
|
+
Capybara.server_port = APP_PORT
|
146
|
+
Capybara::Server.new(MyApplication).boot
|
147
|
+
|
148
|
+
# This ensures that this forked process keeps running, because the
|
149
|
+
# actual server is started in a thread by Capybara.
|
150
|
+
ThreadsWait.all_waits(Thread.list)
|
151
|
+
end
|
152
|
+
|
153
|
+
# Give the server a chance to start up in the forked process. You may
|
154
|
+
# need to adjust this depending on how long your application takes to
|
155
|
+
# start up.
|
156
|
+
sleep 1
|
157
|
+
end
|
158
|
+
|
159
|
+
# After the tests run, kill the server process.
|
160
|
+
c.after(:all, :type => :request) do
|
161
|
+
Process.kill(9, @rack_server_pid)
|
162
|
+
Process.wait
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
71
166
|
### Cucumber ###
|
72
167
|
|
73
|
-
|
168
|
+
The following examples depict how you might configure [Cucumber] [Cucumber] to
|
169
|
+
run tests against an already running application server (e.g. a remote staging
|
170
|
+
site) and a Rack application server that is managed by the test suite.
|
171
|
+
|
172
|
+
#### Testing an already running server ####
|
173
|
+
|
174
|
+
If you are running your tests against an already running server, you can simply
|
175
|
+
add the following to `features/support/kookaburra_setup.rb`:
|
74
176
|
|
75
177
|
require 'kookaburra/test_helpers'
|
178
|
+
|
179
|
+
# Change these to the files that define your custom GivenDriver and UIDriver
|
180
|
+
# implementations.
|
76
181
|
require 'my_app/kookaburra/given_driver'
|
77
182
|
require 'my_app/kookaburra/ui_driver'
|
78
183
|
|
@@ -82,7 +187,7 @@ For [Cucumber] [Cucumber], add the following to `features/support/kookaburra_set
|
|
82
187
|
c.given_driver_class = MyApp::Kookaburra::GivenDriver
|
83
188
|
c.ui_driver_class = MyApp::Kookaburra::UIDriver
|
84
189
|
c.app_host = 'http://my_app.example.com:1234'
|
85
|
-
c.browser = Capybara
|
190
|
+
c.browser = Capybara::Session.new(:selenium)
|
86
191
|
c.server_error_detection { |browser|
|
87
192
|
browser.has_css?('head title', :text => 'Internal Server Error')
|
88
193
|
}
|
@@ -90,8 +195,63 @@ For [Cucumber] [Cucumber], add the following to `features/support/kookaburra_set
|
|
90
195
|
|
91
196
|
World(Kookaburra::TestHelpers)
|
92
197
|
|
93
|
-
|
94
|
-
|
198
|
+
#### Managing startup and shutdown of a Rack application server ####
|
199
|
+
|
200
|
+
While developing, it can be helpful to run your acceptance tests against a
|
201
|
+
locally-running server that is managed by your test suite. The setup is similar
|
202
|
+
to that in the previous section, but it adds before and after hooks to launch
|
203
|
+
and shut down a Rack application server. Just add the following to
|
204
|
+
`features/support/kookaburra_setup.rb`:
|
205
|
+
|
206
|
+
require 'kookaburra/test_helpers'
|
207
|
+
require 'thwait'
|
208
|
+
|
209
|
+
# Change these to the files that define your custom GivenDriver and UIDriver
|
210
|
+
# implementations.
|
211
|
+
require 'my_app/kookaburra/given_driver'
|
212
|
+
require 'my_app/kookaburra/ui_driver'
|
213
|
+
|
214
|
+
APP_PORT = ENV['APP_PORT'] || 3009
|
215
|
+
|
216
|
+
# c.app_host below should be set to whatever the root URL of your running
|
217
|
+
# application is.
|
218
|
+
Kookaburra.configure do |c|
|
219
|
+
c.given_driver_class = MyApp::Kookaburra::GivenDriver
|
220
|
+
c.ui_driver_class = MyApp::Kookaburra::UIDriver
|
221
|
+
c.app_host = 'http://localhost:%d' % APP_PORT
|
222
|
+
c.browser = Capybara::Session.new(:selenium)
|
223
|
+
c.server_error_detection { |browser|
|
224
|
+
browser.has_css?('head title', :text => 'Internal Server Error')
|
225
|
+
}
|
226
|
+
end
|
227
|
+
|
228
|
+
World(Kookaburra::TestHelpers)
|
229
|
+
|
230
|
+
# Start the application server prior to running a group of integration
|
231
|
+
# specs. `MyApplication` below should be replaced with the object that
|
232
|
+
# implements the Rack `#call` interface for your application. For a Rails
|
233
|
+
# app, this would be along the lines of `MyAppName::Application`.
|
234
|
+
# Runs the server process in a forked process, and get a handle on that
|
235
|
+
# process, so that it can be shut down after the tests run.
|
236
|
+
@rack_server_pid = fork do
|
237
|
+
Capybara.server_port = APP_PORT
|
238
|
+
Capybara::Server.new(MyApplication).boot
|
239
|
+
|
240
|
+
# This ensures that this forked process keeps running, because the
|
241
|
+
# actual server is started in a thread by Capybara.
|
242
|
+
ThreadsWait.all_waits(Thread.list)
|
243
|
+
end
|
244
|
+
|
245
|
+
# Give the server a chance to start up in the forked process. You may
|
246
|
+
# need to adjust this depending on how long your application takes to
|
247
|
+
# start up.
|
248
|
+
sleep 1
|
249
|
+
|
250
|
+
# After the tests run, kill the server process.
|
251
|
+
at_exit do
|
252
|
+
Process.kill(9, @rack_server_pid)
|
253
|
+
Process.wait
|
254
|
+
end
|
95
255
|
|
96
256
|
## Defining Your Testing DSL ##
|
97
257
|
|
data/Rakefile
CHANGED
@@ -32,12 +32,6 @@ task :default => :spec
|
|
32
32
|
desc 'Run specs'
|
33
33
|
RSpec::Core::RakeTask.new
|
34
34
|
|
35
|
-
desc "Generate code coverage"
|
36
|
-
RSpec::Core::RakeTask.new(:coverage) do |t|
|
37
|
-
t.rcov = true
|
38
|
-
t.rcov_opts = ['--exclude', 'spec']
|
39
|
-
end
|
40
|
-
|
41
35
|
require 'reek/rake/task'
|
42
36
|
Reek::Rake::Task.new do |t|
|
43
37
|
t.fail_on_error = true
|
@@ -47,3 +41,13 @@ end
|
|
47
41
|
|
48
42
|
require 'yard'
|
49
43
|
YARD::Rake::YardocTask.new
|
44
|
+
|
45
|
+
desc "Run rake on all supported rubies"
|
46
|
+
task :all_rubies do
|
47
|
+
rubies = %w[ruby-1.9.3 ruby-1.9.2 ree-1.8.7 ruby-1.8.7]
|
48
|
+
rubies.each do |ruby_version|
|
49
|
+
puts "Testing with #{ruby_version}"
|
50
|
+
system "rvm #{ruby_version}@kookaburra do rake" \
|
51
|
+
or raise "Failed to run rake with #{ruby_version}!"
|
52
|
+
end
|
53
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.23.
|
1
|
+
0.23.1
|
data/kookaburra.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "kookaburra"
|
8
|
-
s.version = "0.23.
|
8
|
+
s.version = "0.23.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["John Wilger", "Sam Livingston-Gray", "Ravi Gadad"]
|
12
|
-
s.date = "2012-04-
|
12
|
+
s.date = "2012-04-13"
|
13
13
|
s.description = "Cucumber + Capybara = Kookaburra? It made sense at the time."
|
14
14
|
s.email = "johnwilger@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -59,7 +59,7 @@ Gem::Specification.new do |s|
|
|
59
59
|
s.homepage = "http://github.com/projectdx/kookaburra"
|
60
60
|
s.licenses = ["MIT"]
|
61
61
|
s.require_paths = ["lib"]
|
62
|
-
s.rubygems_version = "1.8.
|
62
|
+
s.rubygems_version = "1.8.21"
|
63
63
|
s.summary = "WindowDriver testing pattern for Ruby apps"
|
64
64
|
|
65
65
|
if s.respond_to? :specification_version then
|
@@ -74,7 +74,6 @@ Gem::Specification.new do |s|
|
|
74
74
|
s.add_development_dependency(%q<yard>, [">= 0"])
|
75
75
|
s.add_development_dependency(%q<redcarpet>, ["~> 1.0"])
|
76
76
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
77
|
-
s.add_development_dependency(%q<rcov>, [">= 0"])
|
78
77
|
s.add_development_dependency(%q<reek>, [">= 0"])
|
79
78
|
s.add_development_dependency(%q<sinatra>, [">= 0"])
|
80
79
|
else
|
@@ -86,7 +85,6 @@ Gem::Specification.new do |s|
|
|
86
85
|
s.add_dependency(%q<yard>, [">= 0"])
|
87
86
|
s.add_dependency(%q<redcarpet>, ["~> 1.0"])
|
88
87
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
89
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
90
88
|
s.add_dependency(%q<reek>, [">= 0"])
|
91
89
|
s.add_dependency(%q<sinatra>, [">= 0"])
|
92
90
|
end
|
@@ -99,7 +97,6 @@ Gem::Specification.new do |s|
|
|
99
97
|
s.add_dependency(%q<yard>, [">= 0"])
|
100
98
|
s.add_dependency(%q<redcarpet>, ["~> 1.0"])
|
101
99
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
102
|
-
s.add_dependency(%q<rcov>, [">= 0"])
|
103
100
|
s.add_dependency(%q<reek>, [">= 0"])
|
104
101
|
s.add_dependency(%q<sinatra>, [">= 0"])
|
105
102
|
end
|
@@ -1,12 +1,16 @@
|
|
1
1
|
require 'kookaburra/test_helpers'
|
2
2
|
require 'kookaburra/json_api_driver'
|
3
3
|
require 'capybara'
|
4
|
+
require 'thwait'
|
4
5
|
|
5
6
|
# These are required for the Rack app used for testing
|
6
7
|
require 'sinatra/base'
|
7
8
|
require 'active_support/json'
|
8
9
|
require 'active_support/hash_with_indifferent_access'
|
9
10
|
|
11
|
+
# The server port that the application server will attach to
|
12
|
+
APP_PORT = ENV['APP_PORT'] || 3009
|
13
|
+
|
10
14
|
describe "testing a Rack application with Kookaburra" do
|
11
15
|
describe "with an HTML interface" do
|
12
16
|
describe "with a JSON API" do
|
@@ -299,15 +303,10 @@ describe "testing a Rack application with Kookaburra" do
|
|
299
303
|
end
|
300
304
|
|
301
305
|
before(:all) do
|
302
|
-
@rack_server_port = 3339
|
303
306
|
@rack_server_pid = fork do
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
:Host => '127.0.0.1',
|
308
|
-
:Port => @rack_server_port,
|
309
|
-
:environment => 'production'
|
310
|
-
)
|
307
|
+
Capybara.server_port = APP_PORT
|
308
|
+
Capybara::Server.new(JsonApiApp.new).boot
|
309
|
+
ThreadsWait.all_waits(Thread.list)
|
311
310
|
end
|
312
311
|
sleep 1 # Give the server a chance to start up.
|
313
312
|
end
|
@@ -321,7 +320,7 @@ describe "testing a Rack application with Kookaburra" do
|
|
321
320
|
Kookaburra.configure do |c|
|
322
321
|
c.ui_driver_class = MyUIDriver
|
323
322
|
c.given_driver_class = MyGivenDriver
|
324
|
-
c.app_host = 'http://127.0.0.1:%d' %
|
323
|
+
c.app_host = 'http://127.0.0.1:%d' % APP_PORT
|
325
324
|
c.browser = Capybara::Session.new(:selenium)
|
326
325
|
c.server_error_detection do |browser|
|
327
326
|
browser.has_css?('head title', :text => 'Internal Server Error')
|
@@ -26,7 +26,10 @@ module MentalModelMatcherMacros
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def from_line
|
29
|
-
|
29
|
+
#puts '#' * 80
|
30
|
+
#puts "it is: '#{caller(2).first.split(':').inspect}'"
|
31
|
+
#puts '#' * 81
|
32
|
+
'(line %d)' % caller(2).first.split(':')[1]
|
30
33
|
end
|
31
34
|
|
32
35
|
def it_complains_about_missing(missing, options)
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kookaburra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 65
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 23
|
9
|
-
-
|
10
|
-
version: 0.23.
|
9
|
+
- 1
|
10
|
+
version: 0.23.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- John Wilger
|
@@ -17,10 +17,9 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2012-04-
|
20
|
+
date: 2012-04-13 00:00:00 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
|
-
prerelease: false
|
24
23
|
type: :runtime
|
25
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
@@ -33,8 +32,8 @@ dependencies:
|
|
33
32
|
version: "0"
|
34
33
|
version_requirements: *id001
|
35
34
|
name: i18n
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
35
|
prerelease: false
|
36
|
+
- !ruby/object:Gem::Dependency
|
38
37
|
type: :runtime
|
39
38
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
@@ -48,8 +47,8 @@ dependencies:
|
|
48
47
|
version: "3.0"
|
49
48
|
version_requirements: *id002
|
50
49
|
name: activesupport
|
51
|
-
- !ruby/object:Gem::Dependency
|
52
50
|
prerelease: false
|
51
|
+
- !ruby/object:Gem::Dependency
|
53
52
|
type: :runtime
|
54
53
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
54
|
none: false
|
@@ -62,8 +61,8 @@ dependencies:
|
|
62
61
|
version: "0"
|
63
62
|
version_requirements: *id003
|
64
63
|
name: patron
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
64
|
prerelease: false
|
65
|
+
- !ruby/object:Gem::Dependency
|
67
66
|
type: :development
|
68
67
|
requirement: &id004 !ruby/object:Gem::Requirement
|
69
68
|
none: false
|
@@ -76,8 +75,8 @@ dependencies:
|
|
76
75
|
version: "0"
|
77
76
|
version_requirements: *id004
|
78
77
|
name: rspec
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
78
|
prerelease: false
|
79
|
+
- !ruby/object:Gem::Dependency
|
81
80
|
type: :development
|
82
81
|
requirement: &id005 !ruby/object:Gem::Requirement
|
83
82
|
none: false
|
@@ -90,8 +89,8 @@ dependencies:
|
|
90
89
|
version: "0"
|
91
90
|
version_requirements: *id005
|
92
91
|
name: capybara
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
92
|
prerelease: false
|
93
|
+
- !ruby/object:Gem::Dependency
|
95
94
|
type: :development
|
96
95
|
requirement: &id006 !ruby/object:Gem::Requirement
|
97
96
|
none: false
|
@@ -104,8 +103,8 @@ dependencies:
|
|
104
103
|
version: "0"
|
105
104
|
version_requirements: *id006
|
106
105
|
name: yard
|
107
|
-
- !ruby/object:Gem::Dependency
|
108
106
|
prerelease: false
|
107
|
+
- !ruby/object:Gem::Dependency
|
109
108
|
type: :development
|
110
109
|
requirement: &id007 !ruby/object:Gem::Requirement
|
111
110
|
none: false
|
@@ -119,8 +118,8 @@ dependencies:
|
|
119
118
|
version: "1.0"
|
120
119
|
version_requirements: *id007
|
121
120
|
name: redcarpet
|
122
|
-
- !ruby/object:Gem::Dependency
|
123
121
|
prerelease: false
|
122
|
+
- !ruby/object:Gem::Dependency
|
124
123
|
type: :development
|
125
124
|
requirement: &id008 !ruby/object:Gem::Requirement
|
126
125
|
none: false
|
@@ -133,8 +132,8 @@ dependencies:
|
|
133
132
|
version: "0"
|
134
133
|
version_requirements: *id008
|
135
134
|
name: jeweler
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
135
|
prerelease: false
|
136
|
+
- !ruby/object:Gem::Dependency
|
138
137
|
type: :development
|
139
138
|
requirement: &id009 !ruby/object:Gem::Requirement
|
140
139
|
none: false
|
@@ -146,9 +145,9 @@ dependencies:
|
|
146
145
|
- 0
|
147
146
|
version: "0"
|
148
147
|
version_requirements: *id009
|
149
|
-
name:
|
150
|
-
- !ruby/object:Gem::Dependency
|
148
|
+
name: reek
|
151
149
|
prerelease: false
|
150
|
+
- !ruby/object:Gem::Dependency
|
152
151
|
type: :development
|
153
152
|
requirement: &id010 !ruby/object:Gem::Requirement
|
154
153
|
none: false
|
@@ -160,21 +159,8 @@ dependencies:
|
|
160
159
|
- 0
|
161
160
|
version: "0"
|
162
161
|
version_requirements: *id010
|
163
|
-
name: reek
|
164
|
-
- !ruby/object:Gem::Dependency
|
165
|
-
prerelease: false
|
166
|
-
type: :development
|
167
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
|
-
requirements:
|
170
|
-
- - ">="
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
hash: 3
|
173
|
-
segments:
|
174
|
-
- 0
|
175
|
-
version: "0"
|
176
|
-
version_requirements: *id011
|
177
162
|
name: sinatra
|
163
|
+
prerelease: false
|
178
164
|
description: Cucumber + Capybara = Kookaburra? It made sense at the time.
|
179
165
|
email: johnwilger@gmail.com
|
180
166
|
executables: []
|
@@ -252,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
252
238
|
requirements: []
|
253
239
|
|
254
240
|
rubyforge_project:
|
255
|
-
rubygems_version: 1.8.
|
241
|
+
rubygems_version: 1.8.21
|
256
242
|
signing_key:
|
257
243
|
specification_version: 3
|
258
244
|
summary: WindowDriver testing pattern for Ruby apps
|