kookaburra 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/.travis.yml +9 -0
- data/Gemfile +3 -17
- data/Gemfile.lock +63 -69
- data/LICENSE.txt +3 -1
- data/README.markdown +2 -2
- data/Rakefile +2 -55
- data/kookaburra.gemspec +30 -107
- data/lib/kookaburra/ui_driver/ui_component.rb +27 -9
- data/lib/kookaburra/version.rb +3 -0
- data/spec/integration/test_a_rack_application_spec.rb +16 -12
- data/spec/kookaburra/api_driver_spec.rb +7 -7
- data/spec/kookaburra/configuration_spec.rb +1 -1
- data/spec/kookaburra/ui_driver/scoped_browser_spec.rb +1 -1
- data/spec/kookaburra/ui_driver/ui_component/address_bar_spec.rb +3 -3
- data/spec/kookaburra/ui_driver/ui_component_spec.rb +18 -13
- data/spec/kookaburra/ui_driver_spec.rb +3 -3
- data/spec/kookaburra_spec.rb +8 -8
- data/spec/support/shared_examples/it_can_have_ui_components.rb +2 -2
- metadata +87 -71
- data/.rvmrc +0 -4
- data/VERSION +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 91a3be166371e05653b174532301b1afa1d4adc5
|
4
|
+
data.tar.gz: cb1a9a42aa16a9500612dc127c40b8e8129f0894
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cc48949a20b29008c1e956ff877d64ab80c0042e5c22498c2f712046ac798905009a372afa9811f24cd0f7ab6bb959b0159a555239d83ed6aaabedb3c7b7c9c0
|
7
|
+
data.tar.gz: 731ef0d1e26935a7ea06847e6c59d542b8a10dc016af8d4202d1e17a30bb5bb830bec8b971cbcdb9fb2e6e0f593a530506154ba0da71ae70fa3737b0f91cd9a8
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -1,18 +1,4 @@
|
|
1
|
-
source '
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
gem
|
4
|
-
|
5
|
-
# Add dependencies to develop your gem here.
|
6
|
-
# Include everything needed to run rake, tests, features, etc.
|
7
|
-
group :development do
|
8
|
-
gem 'jruby-openssl', :platforms => :jruby
|
9
|
-
gem 'rspec'
|
10
|
-
gem 'capybara'
|
11
|
-
gem 'yard'
|
12
|
-
gem 'kramdown' # used by yard to format documentation, but not a dependency as far as the yard gem is concerned
|
13
|
-
gem 'jeweler'
|
14
|
-
gem 'reek'
|
15
|
-
gem 'sinatra'
|
16
|
-
gem 'find_a_port'
|
17
|
-
gem 'json'
|
18
|
-
end
|
3
|
+
# Specify your gem's dependencies in kookaburra.gemspec
|
4
|
+
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,97 +1,91 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
kookaburra (1.2.1)
|
5
|
+
rest-client
|
6
|
+
|
1
7
|
GEM
|
2
|
-
remote:
|
8
|
+
remote: https://rubygems.org/
|
3
9
|
specs:
|
4
|
-
|
5
|
-
bouncy-castle-java (1.5.0146.1)
|
6
|
-
capybara (1.1.2)
|
10
|
+
capybara (2.2.0)
|
7
11
|
mime-types (>= 1.16)
|
8
12
|
nokogiri (>= 1.3.3)
|
9
13
|
rack (>= 1.0.0)
|
10
14
|
rack-test (>= 0.5.4)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
ffi (1.1.5)
|
17
|
-
ffi (1.1.5-java)
|
15
|
+
xpath (~> 2.0)
|
16
|
+
childprocess (0.3.9)
|
17
|
+
ffi (~> 1.0, >= 1.0.11)
|
18
|
+
diff-lcs (1.2.5)
|
19
|
+
ffi (1.9.3)
|
18
20
|
find_a_port (1.0.1)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
libwebsocket (0.1.5)
|
31
|
-
addressable
|
32
|
-
mime-types (1.19)
|
33
|
-
multi_json (1.3.6)
|
34
|
-
nokogiri (1.5.5)
|
35
|
-
nokogiri (1.5.5-java)
|
36
|
-
rack (1.4.1)
|
37
|
-
rack-protection (1.2.0)
|
21
|
+
json (1.8.1)
|
22
|
+
kramdown (1.2.0)
|
23
|
+
macaddr (1.6.1)
|
24
|
+
systemu (~> 2.5.0)
|
25
|
+
mime-types (2.0)
|
26
|
+
mini_portile (0.5.2)
|
27
|
+
multi_json (1.8.2)
|
28
|
+
nokogiri (1.6.0)
|
29
|
+
mini_portile (~> 0.5.0)
|
30
|
+
rack (1.5.2)
|
31
|
+
rack-protection (1.5.1)
|
38
32
|
rack
|
39
33
|
rack-test (0.6.2)
|
40
34
|
rack (>= 1.0)
|
41
|
-
rake (
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
ruby2ruby (~> 1.2.5)
|
47
|
-
ruby_parser (~> 2.0)
|
48
|
-
sexp_processor (~> 3.0)
|
35
|
+
rake (10.1.0)
|
36
|
+
reek (1.3.4)
|
37
|
+
ruby2ruby (~> 2.0.2)
|
38
|
+
ruby_parser (~> 3.2)
|
39
|
+
sexp_processor
|
49
40
|
rest-client (1.6.7)
|
50
41
|
mime-types (>= 1.16)
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
rspec-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
rspec-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
sexp_processor (~>
|
64
|
-
|
65
|
-
|
66
|
-
rubyzip (0.9.9)
|
67
|
-
selenium-webdriver (2.25.0)
|
42
|
+
rspec (2.14.1)
|
43
|
+
rspec-core (~> 2.14.0)
|
44
|
+
rspec-expectations (~> 2.14.0)
|
45
|
+
rspec-mocks (~> 2.14.0)
|
46
|
+
rspec-core (2.14.7)
|
47
|
+
rspec-expectations (2.14.4)
|
48
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
49
|
+
rspec-mocks (2.14.4)
|
50
|
+
ruby2ruby (2.0.6)
|
51
|
+
ruby_parser (~> 3.1)
|
52
|
+
sexp_processor (~> 4.0)
|
53
|
+
ruby_parser (3.2.2)
|
54
|
+
sexp_processor (~> 4.1)
|
55
|
+
rubyzip (1.0.0)
|
56
|
+
selenium-webdriver (2.37.0)
|
68
57
|
childprocess (>= 0.2.5)
|
69
|
-
libwebsocket (~> 0.1.3)
|
70
58
|
multi_json (~> 1.0)
|
71
|
-
rubyzip
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
rack
|
76
|
-
|
77
|
-
|
78
|
-
|
59
|
+
rubyzip (~> 1.0.0)
|
60
|
+
websocket (~> 1.0.4)
|
61
|
+
sexp_processor (4.4.0)
|
62
|
+
sinatra (1.4.4)
|
63
|
+
rack (~> 1.4)
|
64
|
+
rack-protection (~> 1.4)
|
65
|
+
tilt (~> 1.3, >= 1.3.4)
|
66
|
+
systemu (2.5.2)
|
67
|
+
tilt (1.4.1)
|
68
|
+
uuid (2.3.7)
|
69
|
+
macaddr (~> 1.0)
|
70
|
+
websocket (1.0.7)
|
71
|
+
xpath (2.0.0)
|
79
72
|
nokogiri (~> 1.3)
|
80
|
-
yard (0.8.
|
73
|
+
yard (0.8.7.3)
|
81
74
|
|
82
75
|
PLATFORMS
|
83
|
-
java
|
84
76
|
ruby
|
85
77
|
|
86
78
|
DEPENDENCIES
|
79
|
+
bundler (~> 1.3)
|
87
80
|
capybara
|
88
81
|
find_a_port
|
89
|
-
jeweler
|
90
|
-
jruby-openssl
|
91
82
|
json
|
83
|
+
kookaburra!
|
92
84
|
kramdown
|
85
|
+
rake
|
93
86
|
reek
|
94
|
-
rest-client
|
95
87
|
rspec
|
88
|
+
selenium-webdriver
|
96
89
|
sinatra
|
90
|
+
uuid
|
97
91
|
yard
|
data/LICENSE.txt
CHANGED
data/README.markdown
CHANGED
@@ -5,8 +5,8 @@ order to keep acceptance tests maintainable.
|
|
5
5
|
|
6
6
|
## Requirements ##
|
7
7
|
|
8
|
-
Requires Ruby 1.9. Tested with both MRI and JRuby (note
|
9
|
-
JRuby in 1.9 compatability mode.)
|
8
|
+
Requires Ruby 1.9.3 or greater. Tested with both MRI and JRuby (note
|
9
|
+
that you must run JRuby in 1.9 compatability mode.)
|
10
10
|
|
11
11
|
## Installation ##
|
12
12
|
|
data/Rakefile
CHANGED
@@ -1,53 +1,10 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
|
-
require '
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
|
-
require 'rake'
|
13
|
-
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "kookaburra"
|
18
|
-
gem.homepage = "http://github.com/projectdx/kookaburra"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{WindowDriver testing pattern for Ruby apps}
|
21
|
-
gem.description = %Q{Cucumber + Capybara = Kookaburra? It made sense at the time.}
|
22
|
-
gem.email = "johnwilger@gmail.com"
|
23
|
-
gem.authors = ["John Wilger", "Sam Livingston-Gray", "Ravi Gadad"]
|
24
|
-
# dependencies defined in Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
27
|
-
|
3
|
+
require 'bundler/gem_tasks'
|
28
4
|
require 'rspec/core/rake_task'
|
29
5
|
|
30
6
|
task :default => :spec
|
31
|
-
|
32
|
-
# TODO: figure out how to get rake task working under JRuby and rbenv
|
33
|
-
if defined?(JRUBY_VERSION) && ENV['RBENV_VERSION']
|
34
|
-
desc 'Run specs'
|
35
|
-
task :spec do
|
36
|
-
msg = <<-EOM
|
37
|
-
********************************************************************************
|
38
|
-
* You appear to be running under JRuby and using rbenv.
|
39
|
-
*
|
40
|
-
* For some reason the `rake spec` command isn't working correctly in
|
41
|
-
* these circumstances. However, you should be able to just run the
|
42
|
-
* `rspec` command directly.
|
43
|
-
********************************************************************************
|
44
|
-
EOM
|
45
|
-
raise msg
|
46
|
-
end
|
47
|
-
else
|
48
|
-
desc 'Run specs'
|
49
|
-
RSpec::Core::RakeTask.new
|
50
|
-
end
|
7
|
+
RSpec::Core::RakeTask.new
|
51
8
|
|
52
9
|
require 'reek/rake/task'
|
53
10
|
Reek::Rake::Task.new do |t|
|
@@ -58,13 +15,3 @@ end
|
|
58
15
|
|
59
16
|
require 'yard'
|
60
17
|
YARD::Rake::YardocTask.new
|
61
|
-
|
62
|
-
desc "Run rake on all supported rubies"
|
63
|
-
task :all_rubies do
|
64
|
-
rubies = %w[ruby-1.9.3 ruby-1.9.2 ree-1.8.7 ruby-1.8.7]
|
65
|
-
rubies.each do |ruby_version|
|
66
|
-
puts "Testing with #{ruby_version}"
|
67
|
-
system "rvm #{ruby_version}@kookaburra do rake" \
|
68
|
-
or raise "Failed to run rake with #{ruby_version}!"
|
69
|
-
end
|
70
|
-
end
|
data/kookaburra.gemspec
CHANGED
@@ -1,112 +1,35 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'kookaburra/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "kookaburra"
|
8
|
+
spec.version = Kookaburra::VERSION
|
9
|
+
spec.authors = ["John Wilger", "Sam Livingston-Gray", "Ravi Gadad"]
|
10
|
+
spec.email = ["johnwilger@gmail.com"]
|
11
|
+
spec.description = %q{Cucumber + Capybara = Kookaburra? It made sense at the time.}
|
12
|
+
spec.summary = %q{Window Driver pattern for acceptance tests}
|
13
|
+
spec.homepage = "http://johnwilger.com/kookaburra/"
|
14
|
+
spec.license = "MIT"
|
9
15
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
s.email = "johnwilger@gmail.com"
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.markdown"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".rspec",
|
22
|
-
".rvmrc",
|
23
|
-
".yardopts",
|
24
|
-
"Gemfile",
|
25
|
-
"Gemfile.lock",
|
26
|
-
"LICENSE.txt",
|
27
|
-
"README.markdown",
|
28
|
-
"Rakefile",
|
29
|
-
"VERSION",
|
30
|
-
"kookaburra.gemspec",
|
31
|
-
"lib/core_ext/object/to_param.rb",
|
32
|
-
"lib/core_ext/object/to_query.rb",
|
33
|
-
"lib/kookaburra.rb",
|
34
|
-
"lib/kookaburra/api_driver.rb",
|
35
|
-
"lib/kookaburra/assertion.rb",
|
36
|
-
"lib/kookaburra/configuration.rb",
|
37
|
-
"lib/kookaburra/dependency_accessor.rb",
|
38
|
-
"lib/kookaburra/exceptions.rb",
|
39
|
-
"lib/kookaburra/given_driver.rb",
|
40
|
-
"lib/kookaburra/mental_model.rb",
|
41
|
-
"lib/kookaburra/mental_model_matcher.rb",
|
42
|
-
"lib/kookaburra/rack_app_server.rb",
|
43
|
-
"lib/kookaburra/test_helpers.rb",
|
44
|
-
"lib/kookaburra/ui_driver.rb",
|
45
|
-
"lib/kookaburra/ui_driver/has_ui_components.rb",
|
46
|
-
"lib/kookaburra/ui_driver/scoped_browser.rb",
|
47
|
-
"lib/kookaburra/ui_driver/ui_component.rb",
|
48
|
-
"lib/kookaburra/ui_driver/ui_component/address_bar.rb",
|
49
|
-
"spec/integration/test_a_rack_application_spec.rb",
|
50
|
-
"spec/kookaburra/api_driver_spec.rb",
|
51
|
-
"spec/kookaburra/configuration_spec.rb",
|
52
|
-
"spec/kookaburra/mental_model_matcher_spec.rb",
|
53
|
-
"spec/kookaburra/mental_model_spec.rb",
|
54
|
-
"spec/kookaburra/test_helpers_spec.rb",
|
55
|
-
"spec/kookaburra/ui_driver/scoped_browser_spec.rb",
|
56
|
-
"spec/kookaburra/ui_driver/ui_component/address_bar_spec.rb",
|
57
|
-
"spec/kookaburra/ui_driver/ui_component_spec.rb",
|
58
|
-
"spec/kookaburra/ui_driver_spec.rb",
|
59
|
-
"spec/kookaburra_spec.rb",
|
60
|
-
"spec/support/shared_examples/it_can_have_ui_components.rb",
|
61
|
-
"spec/support/shared_examples/it_can_make_assertions.rb",
|
62
|
-
"spec/support/shared_examples/it_has_a_dependency_accessor.rb"
|
63
|
-
]
|
64
|
-
s.homepage = "http://github.com/projectdx/kookaburra"
|
65
|
-
s.licenses = ["MIT"]
|
66
|
-
s.require_paths = ["lib"]
|
67
|
-
s.rubygems_version = "1.8.23"
|
68
|
-
s.summary = "WindowDriver testing pattern for Ruby apps"
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
69
20
|
|
70
|
-
|
71
|
-
s.specification_version = 3
|
21
|
+
spec.add_dependency 'rest-client'
|
72
22
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
else
|
86
|
-
s.add_dependency(%q<rest-client>, [">= 0"])
|
87
|
-
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
88
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
89
|
-
s.add_dependency(%q<capybara>, [">= 0"])
|
90
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
91
|
-
s.add_dependency(%q<kramdown>, [">= 0"])
|
92
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
93
|
-
s.add_dependency(%q<reek>, [">= 0"])
|
94
|
-
s.add_dependency(%q<sinatra>, [">= 0"])
|
95
|
-
s.add_dependency(%q<find_a_port>, [">= 0"])
|
96
|
-
s.add_dependency(%q<json>, [">= 0"])
|
97
|
-
end
|
98
|
-
else
|
99
|
-
s.add_dependency(%q<rest-client>, [">= 0"])
|
100
|
-
s.add_dependency(%q<jruby-openssl>, [">= 0"])
|
101
|
-
s.add_dependency(%q<rspec>, [">= 0"])
|
102
|
-
s.add_dependency(%q<capybara>, [">= 0"])
|
103
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
104
|
-
s.add_dependency(%q<kramdown>, [">= 0"])
|
105
|
-
s.add_dependency(%q<jeweler>, [">= 0"])
|
106
|
-
s.add_dependency(%q<reek>, [">= 0"])
|
107
|
-
s.add_dependency(%q<sinatra>, [">= 0"])
|
108
|
-
s.add_dependency(%q<find_a_port>, [">= 0"])
|
109
|
-
s.add_dependency(%q<json>, [">= 0"])
|
110
|
-
end
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "selenium-webdriver"
|
27
|
+
spec.add_development_dependency "capybara"
|
28
|
+
spec.add_development_dependency "reek"
|
29
|
+
spec.add_development_dependency "yard"
|
30
|
+
spec.add_development_dependency "kramdown"
|
31
|
+
spec.add_development_dependency "sinatra"
|
32
|
+
spec.add_development_dependency "uuid"
|
33
|
+
spec.add_development_dependency "find_a_port"
|
34
|
+
spec.add_development_dependency "json"
|
111
35
|
end
|
112
|
-
|
@@ -20,8 +20,9 @@ class Kookaburra
|
|
20
20
|
# '/signup'
|
21
21
|
# end
|
22
22
|
#
|
23
|
+
# # If it can't be inferred from the class name
|
23
24
|
# def component_locator
|
24
|
-
# '#
|
25
|
+
# '#user-sign-up'
|
25
26
|
# end
|
26
27
|
#
|
27
28
|
# def email
|
@@ -70,9 +71,10 @@ class Kookaburra
|
|
70
71
|
# You can get around this by calling it as `self.select`. See
|
71
72
|
# https://gist.github.com/3192103 for an example of this behavior.
|
72
73
|
#
|
73
|
-
# @abstract
|
74
|
-
#
|
75
|
-
#
|
74
|
+
# @abstract Unless you override the default implementation of {#url}, you
|
75
|
+
# must override the {#component_path} method if you want the component to
|
76
|
+
# be navigable by the {Kookaburra::UIDriver::UIComponent::AddressBar}
|
77
|
+
# component.
|
76
78
|
class UIComponent < SimpleDelegator
|
77
79
|
include Assertion
|
78
80
|
extend HasUIComponents
|
@@ -132,12 +134,28 @@ class Kookaburra
|
|
132
134
|
raise ConfigurationError, "You must define #{self.class.name}#component_path."
|
133
135
|
end
|
134
136
|
|
135
|
-
#
|
136
|
-
#
|
137
|
-
#
|
138
|
-
#
|
137
|
+
# The CSS3 selector that will find the element in the DOM
|
138
|
+
#
|
139
|
+
# Defaults to a "#" followed by the snake-cased (underscored) version of
|
140
|
+
# the class name with '/' replaced by '-'. Override this method in your
|
141
|
+
# subclasses if you need a different CSS3 selector to find your component.
|
142
|
+
#
|
143
|
+
# @example
|
144
|
+
# class My::Awesome::ComponentThingy < Kookaburra::UIDriver::UIComponent
|
145
|
+
# end
|
146
|
+
#
|
147
|
+
# x = My::Awesome::ComponentThingy.allocate
|
148
|
+
# x.send(:component_locator)
|
149
|
+
# #=> '#my-awesome-component_thingy'
|
150
|
+
#
|
151
|
+
# @return [String]
|
139
152
|
def component_locator
|
140
|
-
|
153
|
+
"#" + self.class.name.gsub(/::/, '/').
|
154
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
155
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
156
|
+
tr("-", "_").
|
157
|
+
gsub('/', '-').
|
158
|
+
downcase
|
141
159
|
end
|
142
160
|
|
143
161
|
# Runs the server error detection function specified in
|
@@ -2,6 +2,7 @@ require 'kookaburra/test_helpers'
|
|
2
2
|
require 'kookaburra/api_driver'
|
3
3
|
require 'kookaburra/rack_app_server'
|
4
4
|
require 'capybara'
|
5
|
+
require 'uuid'
|
5
6
|
|
6
7
|
# These are required for the Rack app used for testing
|
7
8
|
require 'sinatra/base'
|
@@ -102,17 +103,18 @@ describe "testing a Rack application with Kookaburra" do
|
|
102
103
|
else
|
103
104
|
{:name => params['name']}
|
104
105
|
end
|
105
|
-
widget_data[:id] =
|
106
|
+
widget_data[:id] = UUID.new.generate
|
106
107
|
@@widgets << widget_data
|
107
108
|
@@last_widget_created = widget_data
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
109
|
+
request.accept.each do |type|
|
110
|
+
case type.to_s
|
111
|
+
when 'application/json'
|
112
|
+
status 201
|
113
|
+
headers 'Content-Type' => 'application/json'
|
114
|
+
halt widget_data.to_json
|
115
|
+
else
|
116
|
+
halt redirect to('/widgets')
|
117
|
+
end
|
116
118
|
end
|
117
119
|
end
|
118
120
|
|
@@ -216,9 +218,11 @@ describe "testing a Rack application with Kookaburra" do
|
|
216
218
|
'/session/new'
|
217
219
|
end
|
218
220
|
|
219
|
-
|
220
|
-
|
221
|
-
|
221
|
+
# Use default component locator value
|
222
|
+
#
|
223
|
+
# def component_locator
|
224
|
+
# '#sign_in_screen'
|
225
|
+
# end
|
222
226
|
|
223
227
|
def sign_in(user_data)
|
224
228
|
fill_in 'Email:', :with => user_data['email']
|
@@ -5,18 +5,18 @@ describe Kookaburra::APIDriver do
|
|
5
5
|
URI.join('http://example.com', uri).to_s
|
6
6
|
end
|
7
7
|
|
8
|
-
let(:configuration) {
|
8
|
+
let(:configuration) { double('Configuration', :app_host => 'http://example.com') }
|
9
9
|
|
10
10
|
let(:api) { Kookaburra::APIDriver.new(configuration, client) }
|
11
11
|
|
12
|
-
let(:response) {
|
12
|
+
let(:response) { double('RestClient::Response', body: 'foo', code: 200) }
|
13
13
|
|
14
|
-
let(:client) {
|
14
|
+
let(:client) { double('RestClient') }
|
15
15
|
|
16
16
|
shared_examples_for 'any type of HTTP request' do |http_verb|
|
17
17
|
context "(#{http_verb})" do
|
18
18
|
before(:each) do
|
19
|
-
client.stub
|
19
|
+
client.stub(http_verb => response)
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'returns the response body' do
|
@@ -24,8 +24,8 @@ describe Kookaburra::APIDriver do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
it 'raises an UnexpectedResponse if the request is not successful' do
|
27
|
-
response.stub
|
28
|
-
client.stub
|
27
|
+
response.stub(code: 500)
|
28
|
+
client.stub(http_verb).and_raise(RestClient::Exception.new(response))
|
29
29
|
lambda { api.send(http_verb, '/foo') } \
|
30
30
|
.should raise_error(Kookaburra::UnexpectedResponse)
|
31
31
|
end
|
@@ -116,7 +116,7 @@ describe Kookaburra::APIDriver do
|
|
116
116
|
shared_examples_for 'it encodes request data' do |http_verb|
|
117
117
|
context "(#{http_verb})" do
|
118
118
|
before(:each) do
|
119
|
-
client.stub
|
119
|
+
client.stub(http_verb => response)
|
120
120
|
end
|
121
121
|
|
122
122
|
context 'when a custom encoder is specified' do
|
@@ -2,7 +2,7 @@ require 'kookaburra/ui_driver/scoped_browser'
|
|
2
2
|
|
3
3
|
describe Kookaburra::UIDriver::ScopedBrowser do
|
4
4
|
it 'forwards all method calls to the browser but scopes them to the component locator' do
|
5
|
-
browser =
|
5
|
+
browser = double('Browser')
|
6
6
|
browser.should_receive(:within).with('#a_component_locator').and_yield
|
7
7
|
browser.should_receive(:some_other_method).with(:foo)
|
8
8
|
subject = Kookaburra::UIDriver::ScopedBrowser.new(browser, lambda { '#a_component_locator' })
|
@@ -3,13 +3,13 @@ require 'kookaburra/ui_driver/ui_component/address_bar'
|
|
3
3
|
describe Kookaburra::UIDriver::UIComponent::AddressBar do
|
4
4
|
describe '#go_to' do
|
5
5
|
let(:browser) {
|
6
|
-
|
6
|
+
double('Capybara::Session').tap do |b|
|
7
7
|
b.should_receive(:visit).with('http://site.example.com')
|
8
8
|
end
|
9
9
|
}
|
10
10
|
|
11
11
|
let(:configuration) {
|
12
|
-
|
12
|
+
double('Configuration', :browser => browser, :app_host => nil, :server_error_detection => nil)
|
13
13
|
}
|
14
14
|
|
15
15
|
let(:address_bar) {
|
@@ -24,7 +24,7 @@ describe Kookaburra::UIDriver::UIComponent::AddressBar do
|
|
24
24
|
|
25
25
|
context 'when given a string' do
|
26
26
|
it 'causes the browser to navigate to the (presumably URL) string' do
|
27
|
-
addressable =
|
27
|
+
addressable = double('addressable', :url => 'http://site.example.com')
|
28
28
|
address_bar.go_to addressable
|
29
29
|
end
|
30
30
|
end
|
@@ -3,18 +3,18 @@ require 'support/shared_examples/it_can_make_assertions'
|
|
3
3
|
require 'support/shared_examples/it_can_have_ui_components'
|
4
4
|
|
5
5
|
describe Kookaburra::UIDriver::UIComponent do
|
6
|
-
let(:configuration) {
|
6
|
+
let(:configuration) { double('Configuration', :browser => nil, :app_host => nil, :server_error_detection => nil) }
|
7
7
|
let(:component) { Kookaburra::UIDriver::UIComponent.new(configuration) }
|
8
8
|
|
9
9
|
it_behaves_like :it_can_have_ui_components, Kookaburra::UIDriver::UIComponent
|
10
10
|
|
11
11
|
describe '#visible?' do
|
12
12
|
it 'returns true if the component_locator is found in the DOM and is visible' do
|
13
|
-
browser =
|
13
|
+
browser = double('Browser Driver')
|
14
14
|
browser.should_receive(:has_css?) \
|
15
15
|
.with('#my_component', :visible) \
|
16
16
|
.and_return(true)
|
17
|
-
configuration.stub
|
17
|
+
configuration.stub(:browser => browser)
|
18
18
|
def component.component_locator
|
19
19
|
'#my_component'
|
20
20
|
end
|
@@ -22,12 +22,12 @@ describe Kookaburra::UIDriver::UIComponent do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'returns false if the component_locator id not found in the DOM' do
|
25
|
-
browser =
|
26
|
-
configuration.stub
|
25
|
+
browser = double('Browser Driver', :has_css? => false)
|
26
|
+
configuration.stub(:browser => browser)
|
27
27
|
server_error_detection = lambda { |browser|
|
28
28
|
false
|
29
29
|
}
|
30
|
-
configuration.stub
|
30
|
+
configuration.stub(:server_error_detection => server_error_detection)
|
31
31
|
def component.component_locator
|
32
32
|
'#my_component'
|
33
33
|
end
|
@@ -35,12 +35,12 @@ describe Kookaburra::UIDriver::UIComponent do
|
|
35
35
|
end
|
36
36
|
|
37
37
|
it 'raises UnexpectedResponse if the component_locator is not found and a server error is detected' do
|
38
|
-
browser =
|
39
|
-
configuration.stub
|
38
|
+
browser = double('Browser Driver', :has_css? => false)
|
39
|
+
configuration.stub(:browser => browser)
|
40
40
|
server_error_detection = lambda { |browser|
|
41
41
|
true
|
42
42
|
}
|
43
|
-
configuration.stub
|
43
|
+
configuration.stub(:server_error_detection => server_error_detection)
|
44
44
|
def component.component_locator
|
45
45
|
'#my_component'
|
46
46
|
end
|
@@ -51,7 +51,7 @@ describe Kookaburra::UIDriver::UIComponent do
|
|
51
51
|
|
52
52
|
describe '#url' do
|
53
53
|
it 'returns the app_host + #component_path' do
|
54
|
-
configuration.stub
|
54
|
+
configuration.stub(:app_host => 'http://my.example.com')
|
55
55
|
def component.component_path
|
56
56
|
'/foo/bar'
|
57
57
|
end
|
@@ -68,9 +68,14 @@ describe Kookaburra::UIDriver::UIComponent do
|
|
68
68
|
end
|
69
69
|
|
70
70
|
describe '#component_locator' do
|
71
|
-
it '
|
72
|
-
|
73
|
-
|
71
|
+
it 'defaults to a string based on the class name' do
|
72
|
+
expected = "#" + component.class.name.gsub(/::/, '/').
|
73
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
74
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
75
|
+
tr("-", "_").
|
76
|
+
gsub('/', '-').
|
77
|
+
downcase
|
78
|
+
expect(component.send(:component_locator)).to eq expected
|
74
79
|
end
|
75
80
|
end
|
76
81
|
|
@@ -8,7 +8,7 @@ describe Kookaburra::UIDriver do
|
|
8
8
|
|
9
9
|
describe '.ui_driver' do
|
10
10
|
it 'adds an accessor method for the named driver that defaults to an instance of the specified class' do
|
11
|
-
foo_driver_class =
|
11
|
+
foo_driver_class = double(Class)
|
12
12
|
foo_driver_class.should_receive(:new) \
|
13
13
|
.with(:configuration) \
|
14
14
|
.and_return(:a_foo_driver)
|
@@ -24,13 +24,13 @@ describe Kookaburra::UIDriver do
|
|
24
24
|
|
25
25
|
describe '#url' do
|
26
26
|
it 'returns the configured app_host' do
|
27
|
-
config =
|
27
|
+
config = double('Configuration', :app_host => 'http://my.example.com')
|
28
28
|
driver = Kookaburra::UIDriver.new(config)
|
29
29
|
driver.url.should == 'http://my.example.com'
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
it_behaves_like :it_can_make_assertions do
|
34
|
-
let(:subject) { Kookaburra::UIDriver.new(
|
34
|
+
let(:subject) { Kookaburra::UIDriver.new(double('Configuration')) }
|
35
35
|
end
|
36
36
|
end
|
data/spec/kookaburra_spec.rb
CHANGED
@@ -9,32 +9,32 @@ describe Kookaburra do
|
|
9
9
|
|
10
10
|
describe '#given' do
|
11
11
|
it 'returns an instance of the configured GivenDriver' do
|
12
|
-
my_given_driver_class =
|
12
|
+
my_given_driver_class = double(Class)
|
13
13
|
my_given_driver_class.should_receive(:new) \
|
14
14
|
.with(configuration) \
|
15
15
|
.and_return(:a_given_driver)
|
16
|
-
configuration.stub
|
16
|
+
configuration.stub(:given_driver_class => my_given_driver_class)
|
17
17
|
k.given.should == :a_given_driver
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
describe '#ui' do
|
22
22
|
it 'returns an instance of the configured UIDriver' do
|
23
|
-
my_ui_driver_class =
|
23
|
+
my_ui_driver_class = double(Class)
|
24
24
|
my_ui_driver_class.should_receive(:new) \
|
25
25
|
.with(configuration) \
|
26
26
|
.and_return(:a_ui_driver)
|
27
|
-
configuration.stub
|
27
|
+
configuration.stub(:ui_driver_class => my_ui_driver_class)
|
28
28
|
k.ui.should == :a_ui_driver
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
32
|
describe '#get_data' do
|
33
33
|
it 'returns a dup of the specified MentalModel::Collection' do
|
34
|
-
collection =
|
34
|
+
collection = double('MentalModel::Collection')
|
35
35
|
collection.should_receive(:dup) \
|
36
36
|
.and_return(:mental_model_collection_dup)
|
37
|
-
configuration.stub
|
37
|
+
configuration.stub(:mental_model => double(:foos => collection))
|
38
38
|
k.get_data(:foos).should == :mental_model_collection_dup
|
39
39
|
end
|
40
40
|
end
|
@@ -54,9 +54,9 @@ describe Kookaburra do
|
|
54
54
|
|
55
55
|
describe '.configure' do
|
56
56
|
it 'yields Kookaburra.configuration' do
|
57
|
-
configuration =
|
57
|
+
configuration = double('Kookaburra::Configuration')
|
58
58
|
configuration.should_receive(:foo=).with(:bar)
|
59
|
-
Kookaburra.stub
|
59
|
+
Kookaburra.stub(:configuration => configuration)
|
60
60
|
Kookaburra.configure do |c|
|
61
61
|
c.foo = :bar
|
62
62
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
shared_examples_for :it_can_have_ui_components do |subject_class|
|
2
2
|
describe '.ui_component' do
|
3
3
|
it 'adds an accessor method for the named component that defaults to an instance of the specified class' do
|
4
|
-
configuration =
|
5
|
-
foo_component_class =
|
4
|
+
configuration = double('Kookaburra::Configuration').as_null_object
|
5
|
+
foo_component_class = double(Class)
|
6
6
|
foo_component_class.should_receive(:new) \
|
7
7
|
.with(configuration, :option => :value) \
|
8
8
|
.and_return(:a_foo_component)
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kookaburra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
5
|
-
prerelease:
|
4
|
+
version: 1.2.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- John Wilger
|
@@ -11,202 +10,207 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2013-
|
13
|
+
date: 2013-11-22 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rest-client
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - '>='
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '0'
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- -
|
26
|
+
- - '>='
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: '0'
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
|
-
name:
|
30
|
+
name: bundler
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- -
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '1.3'
|
36
|
+
type: :development
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - ~>
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.3'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rake
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - '>='
|
38
48
|
- !ruby/object:Gem::Version
|
39
49
|
version: '0'
|
40
50
|
type: :development
|
41
51
|
prerelease: false
|
42
52
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
53
|
requirements:
|
45
|
-
- -
|
54
|
+
- - '>='
|
46
55
|
- !ruby/object:Gem::Version
|
47
56
|
version: '0'
|
48
57
|
- !ruby/object:Gem::Dependency
|
49
58
|
name: rspec
|
50
59
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
60
|
requirements:
|
53
|
-
- -
|
61
|
+
- - '>='
|
54
62
|
- !ruby/object:Gem::Version
|
55
63
|
version: '0'
|
56
64
|
type: :development
|
57
65
|
prerelease: false
|
58
66
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
67
|
requirements:
|
61
|
-
- -
|
68
|
+
- - '>='
|
62
69
|
- !ruby/object:Gem::Version
|
63
70
|
version: '0'
|
64
71
|
- !ruby/object:Gem::Dependency
|
65
|
-
name:
|
72
|
+
name: selenium-webdriver
|
66
73
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
74
|
requirements:
|
69
|
-
- -
|
75
|
+
- - '>='
|
70
76
|
- !ruby/object:Gem::Version
|
71
77
|
version: '0'
|
72
78
|
type: :development
|
73
79
|
prerelease: false
|
74
80
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
81
|
requirements:
|
77
|
-
- -
|
82
|
+
- - '>='
|
78
83
|
- !ruby/object:Gem::Version
|
79
84
|
version: '0'
|
80
85
|
- !ruby/object:Gem::Dependency
|
81
|
-
name:
|
86
|
+
name: capybara
|
82
87
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
88
|
requirements:
|
85
|
-
- -
|
89
|
+
- - '>='
|
86
90
|
- !ruby/object:Gem::Version
|
87
91
|
version: '0'
|
88
92
|
type: :development
|
89
93
|
prerelease: false
|
90
94
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
95
|
requirements:
|
93
|
-
- -
|
96
|
+
- - '>='
|
94
97
|
- !ruby/object:Gem::Version
|
95
98
|
version: '0'
|
96
99
|
- !ruby/object:Gem::Dependency
|
97
|
-
name:
|
100
|
+
name: reek
|
98
101
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
102
|
requirements:
|
101
|
-
- -
|
103
|
+
- - '>='
|
102
104
|
- !ruby/object:Gem::Version
|
103
105
|
version: '0'
|
104
106
|
type: :development
|
105
107
|
prerelease: false
|
106
108
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
109
|
requirements:
|
109
|
-
- -
|
110
|
+
- - '>='
|
110
111
|
- !ruby/object:Gem::Version
|
111
112
|
version: '0'
|
112
113
|
- !ruby/object:Gem::Dependency
|
113
|
-
name:
|
114
|
+
name: yard
|
114
115
|
requirement: !ruby/object:Gem::Requirement
|
115
|
-
none: false
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - '>='
|
118
118
|
- !ruby/object:Gem::Version
|
119
119
|
version: '0'
|
120
120
|
type: :development
|
121
121
|
prerelease: false
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
123
|
-
none: false
|
124
123
|
requirements:
|
125
|
-
- -
|
124
|
+
- - '>='
|
126
125
|
- !ruby/object:Gem::Version
|
127
126
|
version: '0'
|
128
127
|
- !ruby/object:Gem::Dependency
|
129
|
-
name:
|
128
|
+
name: kramdown
|
130
129
|
requirement: !ruby/object:Gem::Requirement
|
131
|
-
none: false
|
132
130
|
requirements:
|
133
|
-
- -
|
131
|
+
- - '>='
|
134
132
|
- !ruby/object:Gem::Version
|
135
133
|
version: '0'
|
136
134
|
type: :development
|
137
135
|
prerelease: false
|
138
136
|
version_requirements: !ruby/object:Gem::Requirement
|
139
|
-
none: false
|
140
137
|
requirements:
|
141
|
-
- -
|
138
|
+
- - '>='
|
142
139
|
- !ruby/object:Gem::Version
|
143
140
|
version: '0'
|
144
141
|
- !ruby/object:Gem::Dependency
|
145
142
|
name: sinatra
|
146
143
|
requirement: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
144
|
requirements:
|
149
|
-
- -
|
145
|
+
- - '>='
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0'
|
148
|
+
type: :development
|
149
|
+
prerelease: false
|
150
|
+
version_requirements: !ruby/object:Gem::Requirement
|
151
|
+
requirements:
|
152
|
+
- - '>='
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '0'
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: uuid
|
157
|
+
requirement: !ruby/object:Gem::Requirement
|
158
|
+
requirements:
|
159
|
+
- - '>='
|
150
160
|
- !ruby/object:Gem::Version
|
151
161
|
version: '0'
|
152
162
|
type: :development
|
153
163
|
prerelease: false
|
154
164
|
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
none: false
|
156
165
|
requirements:
|
157
|
-
- -
|
166
|
+
- - '>='
|
158
167
|
- !ruby/object:Gem::Version
|
159
168
|
version: '0'
|
160
169
|
- !ruby/object:Gem::Dependency
|
161
170
|
name: find_a_port
|
162
171
|
requirement: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
172
|
requirements:
|
165
|
-
- -
|
173
|
+
- - '>='
|
166
174
|
- !ruby/object:Gem::Version
|
167
175
|
version: '0'
|
168
176
|
type: :development
|
169
177
|
prerelease: false
|
170
178
|
version_requirements: !ruby/object:Gem::Requirement
|
171
|
-
none: false
|
172
179
|
requirements:
|
173
|
-
- -
|
180
|
+
- - '>='
|
174
181
|
- !ruby/object:Gem::Version
|
175
182
|
version: '0'
|
176
183
|
- !ruby/object:Gem::Dependency
|
177
184
|
name: json
|
178
185
|
requirement: !ruby/object:Gem::Requirement
|
179
|
-
none: false
|
180
186
|
requirements:
|
181
|
-
- -
|
187
|
+
- - '>='
|
182
188
|
- !ruby/object:Gem::Version
|
183
189
|
version: '0'
|
184
190
|
type: :development
|
185
191
|
prerelease: false
|
186
192
|
version_requirements: !ruby/object:Gem::Requirement
|
187
|
-
none: false
|
188
193
|
requirements:
|
189
|
-
- -
|
194
|
+
- - '>='
|
190
195
|
- !ruby/object:Gem::Version
|
191
196
|
version: '0'
|
192
197
|
description: Cucumber + Capybara = Kookaburra? It made sense at the time.
|
193
|
-
email:
|
198
|
+
email:
|
199
|
+
- johnwilger@gmail.com
|
194
200
|
executables: []
|
195
201
|
extensions: []
|
196
|
-
extra_rdoc_files:
|
197
|
-
- LICENSE.txt
|
198
|
-
- README.markdown
|
202
|
+
extra_rdoc_files: []
|
199
203
|
files:
|
200
204
|
- .document
|
205
|
+
- .gitignore
|
201
206
|
- .rspec
|
202
|
-
- .
|
207
|
+
- .travis.yml
|
203
208
|
- .yardopts
|
204
209
|
- Gemfile
|
205
210
|
- Gemfile.lock
|
206
211
|
- LICENSE.txt
|
207
212
|
- README.markdown
|
208
213
|
- Rakefile
|
209
|
-
- VERSION
|
210
214
|
- kookaburra.gemspec
|
211
215
|
- lib/core_ext/object/to_param.rb
|
212
216
|
- lib/core_ext/object/to_query.rb
|
@@ -226,6 +230,7 @@ files:
|
|
226
230
|
- lib/kookaburra/ui_driver/scoped_browser.rb
|
227
231
|
- lib/kookaburra/ui_driver/ui_component.rb
|
228
232
|
- lib/kookaburra/ui_driver/ui_component/address_bar.rb
|
233
|
+
- lib/kookaburra/version.rb
|
229
234
|
- spec/integration/test_a_rack_application_spec.rb
|
230
235
|
- spec/kookaburra/api_driver_spec.rb
|
231
236
|
- spec/kookaburra/configuration_spec.rb
|
@@ -240,32 +245,43 @@ files:
|
|
240
245
|
- spec/support/shared_examples/it_can_have_ui_components.rb
|
241
246
|
- spec/support/shared_examples/it_can_make_assertions.rb
|
242
247
|
- spec/support/shared_examples/it_has_a_dependency_accessor.rb
|
243
|
-
homepage: http://
|
248
|
+
homepage: http://johnwilger.com/kookaburra/
|
244
249
|
licenses:
|
245
250
|
- MIT
|
251
|
+
metadata: {}
|
246
252
|
post_install_message:
|
247
253
|
rdoc_options: []
|
248
254
|
require_paths:
|
249
255
|
- lib
|
250
256
|
required_ruby_version: !ruby/object:Gem::Requirement
|
251
|
-
none: false
|
252
257
|
requirements:
|
253
|
-
- -
|
258
|
+
- - '>='
|
254
259
|
- !ruby/object:Gem::Version
|
255
260
|
version: '0'
|
256
|
-
segments:
|
257
|
-
- 0
|
258
|
-
hash: -356630097343812047
|
259
261
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
|
-
none: false
|
261
262
|
requirements:
|
262
|
-
- -
|
263
|
+
- - '>='
|
263
264
|
- !ruby/object:Gem::Version
|
264
265
|
version: '0'
|
265
266
|
requirements: []
|
266
267
|
rubyforge_project:
|
267
|
-
rubygems_version:
|
268
|
+
rubygems_version: 2.0.3
|
268
269
|
signing_key:
|
269
|
-
specification_version:
|
270
|
-
summary:
|
271
|
-
test_files:
|
270
|
+
specification_version: 4
|
271
|
+
summary: Window Driver pattern for acceptance tests
|
272
|
+
test_files:
|
273
|
+
- spec/integration/test_a_rack_application_spec.rb
|
274
|
+
- spec/kookaburra/api_driver_spec.rb
|
275
|
+
- spec/kookaburra/configuration_spec.rb
|
276
|
+
- spec/kookaburra/mental_model_matcher_spec.rb
|
277
|
+
- spec/kookaburra/mental_model_spec.rb
|
278
|
+
- spec/kookaburra/test_helpers_spec.rb
|
279
|
+
- spec/kookaburra/ui_driver/scoped_browser_spec.rb
|
280
|
+
- spec/kookaburra/ui_driver/ui_component/address_bar_spec.rb
|
281
|
+
- spec/kookaburra/ui_driver/ui_component_spec.rb
|
282
|
+
- spec/kookaburra/ui_driver_spec.rb
|
283
|
+
- spec/kookaburra_spec.rb
|
284
|
+
- spec/support/shared_examples/it_can_have_ui_components.rb
|
285
|
+
- spec/support/shared_examples/it_can_make_assertions.rb
|
286
|
+
- spec/support/shared_examples/it_has_a_dependency_accessor.rb
|
287
|
+
has_rdoc:
|
data/.rvmrc
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.2.0
|