lapis_lazuli 2.0.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +1 -1
  3. data/lapis_lazuli.gemspec +10 -8
  4. data/lib/lapis_lazuli/api.rb +1 -1
  5. data/lib/lapis_lazuli/argparse.rb +1 -1
  6. data/lib/lapis_lazuli/browser.rb +37 -61
  7. data/lib/lapis_lazuli/browser/error.rb +89 -62
  8. data/lib/lapis_lazuli/browser/find.rb +1 -2
  9. data/lib/lapis_lazuli/cli.rb +1 -1
  10. data/lib/lapis_lazuli/cucumber.rb +1 -1
  11. data/lib/lapis_lazuli/generators/cucumber.rb +1 -1
  12. data/lib/lapis_lazuli/generators/cucumber/template/README.md +2 -0
  13. data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +6 -21
  14. data/lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml +42 -13
  15. data/lib/lapis_lazuli/generators/cucumber/template/config/users.yml +21 -0
  16. data/lib/lapis_lazuli/generators/cucumber/template/features/1_basic.feature +49 -0
  17. data/lib/lapis_lazuli/generators/cucumber/template/features/2_account.feature +38 -0
  18. data/lib/lapis_lazuli/generators/cucumber/template/features/3_todo_list.feature +23 -0
  19. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/authentication_helper.rb +122 -0
  20. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/navigation_helper.rb +64 -0
  21. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/registration_helper.rb +102 -0
  22. data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/user_helper.rb +74 -0
  23. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/account_steps.rb +60 -0
  24. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/basic_steps.rb +70 -0
  25. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/todo_steps.rb +27 -0
  26. data/lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb +3 -2
  27. data/lib/lapis_lazuli/generic/xpath.rb +1 -1
  28. data/lib/lapis_lazuli/options.rb +3 -2
  29. data/lib/lapis_lazuli/placeholders.rb +1 -1
  30. data/lib/lapis_lazuli/proxy.rb +1 -1
  31. data/lib/lapis_lazuli/runtime.rb +1 -1
  32. data/lib/lapis_lazuli/scenario.rb +1 -1
  33. data/lib/lapis_lazuli/storage.rb +1 -1
  34. data/lib/lapis_lazuli/version.rb +2 -2
  35. data/lib/lapis_lazuli/versions.rb +1 -1
  36. data/lib/lapis_lazuli/world/config.rb +348 -334
  37. data/lib/lapis_lazuli/world/hooks.rb +85 -84
  38. data/lib/lapis_lazuli/world/logging.rb +1 -1
  39. data/test/Gemfile +2 -16
  40. data/test/config/config.yml +7 -6
  41. data/test/config/cucumber.yml +6 -8
  42. data/test/features/bindings.feature +1 -1
  43. data/test/features/browser.feature +1 -1
  44. data/test/features/step_definitions/interaction_steps.rb +5 -2
  45. data/test/features/step_definitions/validation_steps.rb +2 -2
  46. data/test/features/support/env.rb +21 -1
  47. data/test/results/latest_results.json +0 -0
  48. metadata +74 -28
  49. data/lib/lapis_lazuli/generators/cucumber/template/features/account.feature +0 -26
  50. data/lib/lapis_lazuli/generators/cucumber/template/features/example.feature +0 -30
  51. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb +0 -165
  52. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/precondition_steps.rb +0 -63
  53. data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb +0 -67
  54. data/lib/lapis_lazuli/generators/cucumber/template/features/support/functions.rb +0 -68
@@ -7,112 +7,113 @@
7
7
  #
8
8
 
9
9
  module LapisLazuli
10
- module WorldModule
11
- ##
12
- # Module with cucumber hooks
13
- #
14
- # The module is special in that it does not include other modules. Instead it
15
- # always tests whether World responds to a function before calling it.
16
- module Hooks
10
+ module WorldModule
17
11
  ##
18
- # Add hooks to one of the four queues :before, :after, :start or :end.
19
- HOOK_QUEUES = [
20
- :before,
21
- :after,
22
- :start,
12
+ # Module with cucumber hooks
13
+ #
14
+ # The module is special in that it does not include other modules. Instead it
15
+ # always tests whether World responds to a function before calling it.
16
+ module Hooks
17
+ ##
18
+ # Add hooks to one of the four queues :before, :after, :start or :end.
19
+ HOOK_QUEUES = [
20
+ :before,
21
+ :after,
22
+ :start,
23
23
  # :end # FIXME hard to implement. See issue #13
24
- ]
25
- def self.add_hook(queue, hook)
26
- if not HOOK_QUEUES.include?(queue)
27
- raise "Invalid hook queue #{queue}"
28
- end
24
+ ]
29
25
 
30
- @@hooks ||= {}
31
- @@hooks[queue] ||= []
32
- @@hooks[queue] << hook
33
- end
26
+ def self.add_hook(queue, hook)
27
+ if not HOOK_QUEUES.include?(queue)
28
+ raise "Invalid hook queue #{queue}"
29
+ end
34
30
 
35
- ##
36
- # Hook invoked in BeforeScenario
37
- def before_scenario_hook(cuke_scenario)
38
- # Update the scenario informaton
39
- if respond_to? :scenario
40
- scenario.running = true
41
- scenario.update(cuke_scenario)
31
+ @@hooks ||= {}
32
+ @@hooks[queue] ||= []
33
+ @@hooks[queue] << hook
42
34
  end
43
35
 
44
- # Show the name
45
- if respond_to? :log
46
- log.info("Starting Scenario: #{scenario.id}")
47
- end
36
+ ##
37
+ # Hook invoked in BeforeScenario
38
+ def before_scenario_hook(cuke_scenario)
39
+ # Update the scenario informaton
40
+ if respond_to? :scenario
41
+ scenario.running = true
42
+ scenario.update(cuke_scenario)
43
+ end
48
44
 
49
- # Run 'start' queue once.
50
- @@started ||= false
51
- if not @@started
52
- @@started = true
53
- run_queue(:start, cuke_scenario)
54
- end
45
+ # Show the name
46
+ if respond_to? :log
47
+ log.info("Starting Scenario: #{scenario.id}")
48
+ end
55
49
 
56
- # Run 'before' queue
57
- run_queue(:before, cuke_scenario)
58
- end
50
+ # Run 'start' queue once.
51
+ @@started ||= false
52
+ if not @@started
53
+ @@started = true
54
+ run_queue(:start, cuke_scenario)
55
+ end
59
56
 
60
- ##
61
- # Hook invoked in AfterScenario
62
- def after_scenario_hook(cuke_scenario)
63
- # Run 'after' queue
64
- run_queue(:after, cuke_scenario)
57
+ # Run 'before' queue
58
+ run_queue(:before, cuke_scenario)
59
+ end
65
60
 
66
- # Run 'end' queue
67
- # FIXME hard to implement; see issue #13
61
+ ##
62
+ # Hook invoked in AfterScenario
63
+ def after_scenario_hook(cuke_scenario)
64
+ # Run 'after' queue
65
+ run_queue(:after, cuke_scenario)
68
66
 
69
- # The current scenario has finished
70
- if respond_to? :scenario
71
- scenario.running = false
72
- end
67
+ # Run 'end' queue
68
+ # FIXME hard to implement; see issue #13
73
69
 
74
- # Sleep if needed
75
- if respond_to? :config and has_env_or_config?("step_pause_time")
76
- sleep env_or_config("step_pause_time")
77
- end
70
+ # The current scenario has finished
71
+ if respond_to? :scenario
72
+ scenario.running = false
73
+ end
74
+
75
+ # Sleep if needed
76
+ if respond_to? :config and has_env_or_config?("step_pause_time")
77
+ sleep env_or_config("step_pause_time")
78
+ end
78
79
 
79
- # Did we fail?
80
- if respond_to? :scenario and respond_to? :has_browser? and respond_to? :browser and respond_to? :config
81
- if has_browser? and (cuke_scenario.failed? or (scenario.check_browser_errors and browser.has_error?))
82
- # Take a screenshot if needed
83
- if has_env_or_config?('screenshot_on_failure')
84
- if env_or_config("screenshot_scheme") == "new"
85
- # Take screenshots on all active browsers
86
- LapisLazuli::Browser.browsers.each do |b|
87
- fileloc = b.take_screenshot()
80
+ # Did we fail?
81
+ if respond_to? :scenario and respond_to? :has_browser? and respond_to? :browser and respond_to? :config
82
+ if has_browser? and (cuke_scenario.failed? or (scenario.check_browser_errors and browser.has_error?))
83
+ # Take a screenshot if needed
84
+ if has_env_or_config?('screenshot_on_failure')
85
+ if env_or_config("screenshot_scheme") == "new"
86
+ # Take screenshots on all active browsers
87
+ LapisLazuli::Browser.browsers.each do |b|
88
+ fileloc = b.take_screenshot()
89
+ end
90
+ else
91
+ browser.take_screenshot()
88
92
  end
89
- else
90
- browser.take_screenshot()
91
93
  end
92
94
  end
93
95
  end
94
- end
95
96
 
96
- # Close browser if needed
97
- if respond_to? :has_browser? and respond_to? :browser
98
- if has_browser?
99
- browser.close_after_scenario(cuke_scenario)
97
+ # Close browser if needed
98
+ if respond_to? :has_browser? and respond_to? :browser
99
+ if has_browser?
100
+ browser.close_after_scenario(cuke_scenario)
101
+ end
100
102
  end
101
103
  end
102
- end
103
104
 
104
- private
105
- def run_queue(queue, cuke_scenario)
106
- @@hooks ||= {}
105
+ private
106
+ def run_queue(queue, cuke_scenario)
107
+ @@hooks ||= {}
107
108
 
108
- if @@hooks[queue].nil?
109
- return
110
- end
109
+ if @@hooks[queue].nil?
110
+ return
111
+ end
111
112
 
112
- @@hooks[queue].each do |hook|
113
- self.instance_exec(cuke_scenario, &hook)
113
+ @@hooks[queue].each do |hook|
114
+ self.instance_exec(cuke_scenario, &hook)
115
+ end
114
116
  end
115
- end
116
- end # module Hooks
117
- end # module WorldModule
117
+ end # module Hooks
118
+ end # module WorldModule
118
119
  end # module LapisLazuli
@@ -37,7 +37,7 @@ module WorldModule
37
37
  end
38
38
 
39
39
  # Start the logger with the config filename
40
- log_file = "#{dir}#{File::SEPARATOR}#{File.basename(Config.config_file, ".*")}.log"
40
+ log_file = "#{dir}#{File::SEPARATOR}#{File.basename(Config.config_files[0], ".*")}.log"
41
41
  # Or a filename from the environment
42
42
  if has_env_or_config?("log_file")
43
43
  log_file = env_or_config("log_file")
data/test/Gemfile CHANGED
@@ -1,22 +1,8 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- # Windows specific
4
- platforms :mswin, :mingw do
5
- gem 'win32console'
6
- gem 'term-ansicolor'
7
- end
3
+ # Build and include the LL gem from the parent directory
4
+ gem "lapis_lazuli", path: './../'
8
5
 
9
- # LapisLazul itself; test code should point to the current repo and branch
10
- # repo = `git config --get remote.origin.url`
11
- # branch = `git rev-parse --abbrev-ref HEAD`
12
- # Local gem
13
- # gem "lapis_lazuli", path: './../'
14
-
15
- # Development gem
16
- # gem 'lapis_lazuli', :git => 'https://github.com/spriteCloud/lapis-lazuli.git', :branch => 'development'
17
-
18
- # Production gem
19
- gem "lapis_lazuli"
20
6
 
21
7
  # Project specific gems
22
8
  gem 'watir-scroll'
@@ -8,7 +8,7 @@
8
8
 
9
9
  ################################################################################
10
10
  # Set the global variables
11
- default_env: production # defines the environment
11
+ default_env: local # defines the environment
12
12
  default_device: desktop720 # set the default browser dimensions and/or user agent (See devices.yml)
13
13
  screenshots_dir: screenshots # where to save the screenshots
14
14
  screenshots_height: full # When 'full' the window will be resized to max height before taking a screenshot
@@ -29,11 +29,12 @@ error_strings:
29
29
 
30
30
  ################################################################################
31
31
  # Environment specific variables
32
- test:
33
-
34
- uat:
32
+ remote:
33
+ close_browser_after: feature
34
+ server:
35
+ url: local_path
35
36
 
36
- production:
37
+ local:
37
38
  close_browser_after: feature
38
39
  server:
39
- url: http://localhost:9090/
40
+ url: http://localhost:9090/
@@ -24,13 +24,11 @@ chrome: BROWSER=chrome
24
24
  ie: BROWSER=ie
25
25
  safari: BROWSER=safari
26
26
 
27
- ################################################################################
28
- # Listed environments (default is set in config.yml)
29
- t: TEST_ENV=test -t @t,@test
30
- test: TEST_ENV=test -t @t,@test
27
+ local: TEST_ENV=local -t @p,@prod
31
28
 
32
- u: TEST_ENV=acceptatie -t @u,@uat
33
- uat: TEST_ENV=acceptatie -t @u,@uat
29
+ remote: SELENIUM_ENV=remote -t ~@ignore_on_remote TEST_ENV=remote
34
30
 
35
- p: TEST_ENV=production -t @p,@prod
36
- production: TEST_ENV=production -t @p,@prod
31
+ ################################################################################
32
+ # Calliope.pro settings
33
+ calliope_key: API_KEY=
34
+ calliope_import: -p calliope_key -c -f pretty -f calliope_import --out ./results/latest_results.json
@@ -1,4 +1,4 @@
1
- @bindings @p
1
+ @bindings @p @ignore_on_remote
2
2
  Feature: binding
3
3
  When I want to test the Lapis Lazuli library
4
4
  I want to run a webserver with some test files
@@ -1,4 +1,4 @@
1
- @browser @p
1
+ @browser @p @ignore_on_remote
2
2
  Feature: Browsers
3
3
  When I want to test the Lapis Lazuli library
4
4
  And test if I can start a browser with options
@@ -11,6 +11,9 @@ Given(/^I navigate to the (.*) test page$/) do |page|
11
11
  config = "server.url"
12
12
  if has_env?(config)
13
13
  url = env(config)
14
+ if url == 'local_path'
15
+ url = 'file://' + File.expand_path(File.dirname(File.dirname(__FILE__))) + '/../server/www/'
16
+ end
14
17
  browser.goto "#{url}#{page.downcase.gsub(" ", "_")}.html"
15
18
  else
16
19
  error(:env => config)
@@ -43,9 +46,9 @@ Given(/I click (the|a) (first|last|random|[0-9]+[a-z]+) (.*)$/) do |arg1, index,
43
46
  end
44
47
 
45
48
 
46
- Given(/^I create a firefox browser named "(.*?)"( with proxy to "(.*?)")$/) do |name, proxy, proxy_url|
49
+ Given(/^I create a firefox browser named "(.*?)"(?: with proxy to "(.*?)")?$/) do |name, proxy_url|
47
50
  b = nil
48
- if proxy
51
+ if proxy_url
49
52
  log.debug("Starting with profile")
50
53
  require 'selenium-webdriver'
51
54
  profile = Selenium::WebDriver::Firefox::Profile.new
@@ -126,11 +126,11 @@ Then(/^within (\d+) seconds I should see added elements with matching$/) do |tim
126
126
  elems = browser.multi_wait_all(
127
127
  :timeout => timeout,
128
128
  :condition => :until,
129
- :mode => :match_all,
129
+ :mode => :match_any,
130
130
  :groups => ["wait"],
131
131
  :selectors => [
132
132
  {:tag_name => 'span', :class => /foo/, :text => /foo/},
133
- {:tag_name => 'div', :id => 'bar', :html => "bar"}
133
+ {:tag_name => 'div', :id => 'bar', :text => "bar"}
134
134
  ]
135
135
  )
136
136
  assert (2 == elems.length), "Expected two elements, found #{elems.length}"
@@ -11,7 +11,7 @@ module TestModule
11
11
  end
12
12
  end
13
13
 
14
- LapisLazuli::WorldModule::Config.config_file = "config/config.yml"
14
+ LapisLazuli::WorldModule::Config.add_config "config/config.yml"
15
15
  World(LapisLazuli, TestModule)
16
16
 
17
17
  LapisLazuli::WorldModule::Browser.browser_module(TestModule)
@@ -22,7 +22,27 @@ LapisLazuli.Start do
22
22
  print "Lapis Lazuli: #{Gem.loaded_specs['lapis_lazuli'].version}\n"
23
23
  print "Selenium webdriver: #{Gem.loaded_specs['selenium-webdriver'].version}\n"
24
24
  print "Watir: #{Gem.loaded_specs['watir'].version}\n"
25
+ print "Cucumber: #{Gem.loaded_specs['cucumber'].version}\n"
25
26
  print "---- VERSION INFO ----\n\n"
27
+
28
+ if ENV['SELENIUM_ENV'] == 'remote'
29
+ require 'selenium-webdriver'
30
+ if ENV['BROWSER'] == 'firefox'
31
+ remote_url = 'http://selenium__standalone-firefox:4444/wd/hub/'
32
+ caps = Selenium::WebDriver::Remote::Capabilities.firefox
33
+ else
34
+ remote_url = 'http://selenium__standalone-chrome:4444/wd/hub/'
35
+ caps = Selenium::WebDriver::Remote::Capabilities.chrome
36
+ end
37
+ client = Selenium::WebDriver::Remote::Http::Default.new
38
+ client.timeout = 120
39
+
40
+ browser :remote, {desired_capabilities: caps, http_client: client, url: remote_url}
41
+ end
42
+
43
+ ENV['TA_OS'] = RUBY_PLATFORM
44
+ ENV['TA_PLATFORM'] = "#{browser.driver.browser} #{browser.driver.capabilities.version}"
45
+ ENV['TA_BUILD'] = "Lapis Lazuli #{Gem.loaded_specs['lapis_lazuli'].version}"
26
46
  end
27
47
 
28
48
  # Transition function from old codebase to new
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lapis_lazuli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Onno Steenbergen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-11-13 00:00:00.000000000 Z
14
+ date: 2021-07-14 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -19,56 +19,56 @@ dependencies:
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: '1.6'
22
+ version: '2.0'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '1.6'
29
+ version: '2.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rake
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '12.0'
36
+ version: '12.3'
37
37
  type: :development
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: '12.0'
43
+ version: '12.3'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: simplecov
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: '0.12'
50
+ version: '0.17'
51
51
  type: :development
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: '0.12'
57
+ version: '0.17'
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: faraday_middleware
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '0.10'
64
+ version: '0.13'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '0.10'
71
+ version: '0.13'
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: faraday_json
74
74
  requirement: !ruby/object:Gem::Requirement
@@ -117,28 +117,28 @@ dependencies:
117
117
  requirements:
118
118
  - - "~>"
119
119
  - !ruby/object:Gem::Version
120
- version: '5.10'
120
+ version: '5.11'
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - "~>"
126
126
  - !ruby/object:Gem::Version
127
- version: '5.10'
127
+ version: '5.11'
128
128
  - !ruby/object:Gem::Dependency
129
129
  name: thor
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: '0.19'
134
+ version: '0.20'
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: '0.19'
141
+ version: '0.20'
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: facets
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -154,19 +154,39 @@ dependencies:
154
154
  - !ruby/object:Gem::Version
155
155
  version: '3.1'
156
156
  - !ruby/object:Gem::Dependency
157
- name: selenium-webdriver
157
+ name: deep_merge
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
160
  - - "~>"
161
161
  - !ruby/object:Gem::Version
162
- version: '3'
162
+ version: '1.2'
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
- version: '3'
169
+ version: '1.2'
170
+ - !ruby/object:Gem::Dependency
171
+ name: selenium-webdriver
172
+ requirement: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '2.0'
177
+ - - "<"
178
+ - !ruby/object:Gem::Version
179
+ version: '4'
180
+ type: :runtime
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - ">="
185
+ - !ruby/object:Gem::Version
186
+ version: '2.0'
187
+ - - "<"
188
+ - !ruby/object:Gem::Version
189
+ version: '4'
170
190
  - !ruby/object:Gem::Dependency
171
191
  name: watir
172
192
  requirement: !ruby/object:Gem::Requirement
@@ -182,19 +202,39 @@ dependencies:
182
202
  - !ruby/object:Gem::Version
183
203
  version: '6'
184
204
  - !ruby/object:Gem::Dependency
185
- name: cucumber
205
+ name: ffi
186
206
  requirement: !ruby/object:Gem::Requirement
187
207
  requirements:
188
208
  - - "~>"
189
209
  - !ruby/object:Gem::Version
190
- version: '2'
210
+ version: '1.11'
191
211
  type: :runtime
192
212
  prerelease: false
193
213
  version_requirements: !ruby/object:Gem::Requirement
194
214
  requirements:
195
215
  - - "~>"
196
216
  - !ruby/object:Gem::Version
197
- version: '2'
217
+ version: '1.11'
218
+ - !ruby/object:Gem::Dependency
219
+ name: cucumber
220
+ requirement: !ruby/object:Gem::Requirement
221
+ requirements:
222
+ - - ">="
223
+ - !ruby/object:Gem::Version
224
+ version: '2.0'
225
+ - - "<"
226
+ - !ruby/object:Gem::Version
227
+ version: '4.0'
228
+ type: :runtime
229
+ prerelease: false
230
+ version_requirements: !ruby/object:Gem::Requirement
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ version: '2.0'
235
+ - - "<"
236
+ - !ruby/object:Gem::Version
237
+ version: '4.0'
198
238
  description: "\n LapisLazuli provides cucumber helper functions and scaffolding
199
239
  for easier (web)\n test automation suite development.\n\n A lot of functionality
200
240
  is aimed at dealing better with [Watir](http://watir.com/),\n such as:\n\n -
@@ -235,13 +275,18 @@ files:
235
275
  - lib/lapis_lazuli/generators/cucumber/template/config/config.yml
236
276
  - lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml
237
277
  - lib/lapis_lazuli/generators/cucumber/template/config/devices.yml
238
- - lib/lapis_lazuli/generators/cucumber/template/features/account.feature
239
- - lib/lapis_lazuli/generators/cucumber/template/features/example.feature
240
- - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb
241
- - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/precondition_steps.rb
242
- - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb
278
+ - lib/lapis_lazuli/generators/cucumber/template/config/users.yml
279
+ - lib/lapis_lazuli/generators/cucumber/template/features/1_basic.feature
280
+ - lib/lapis_lazuli/generators/cucumber/template/features/2_account.feature
281
+ - lib/lapis_lazuli/generators/cucumber/template/features/3_todo_list.feature
282
+ - lib/lapis_lazuli/generators/cucumber/template/features/helpers/authentication_helper.rb
283
+ - lib/lapis_lazuli/generators/cucumber/template/features/helpers/navigation_helper.rb
284
+ - lib/lapis_lazuli/generators/cucumber/template/features/helpers/registration_helper.rb
285
+ - lib/lapis_lazuli/generators/cucumber/template/features/helpers/user_helper.rb
286
+ - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/account_steps.rb
287
+ - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/basic_steps.rb
288
+ - lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/todo_steps.rb
243
289
  - lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb
244
- - lib/lapis_lazuli/generators/cucumber/template/features/support/functions.rb
245
290
  - lib/lapis_lazuli/generic/assertions.rb
246
291
  - lib/lapis_lazuli/generic/xpath.rb
247
292
  - lib/lapis_lazuli/options.rb
@@ -287,6 +332,7 @@ files:
287
332
  - test/features/timing.feature
288
333
  - test/features/variable.feature
289
334
  - test/features/xpath.feature
335
+ - test/results/latest_results.json
290
336
  - test/server/start.rb
291
337
  - test/server/www/button.html
292
338
  - test/server/www/error_html.html
@@ -315,8 +361,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
315
361
  - !ruby/object:Gem::Version
316
362
  version: '0'
317
363
  requirements: []
318
- rubyforge_project:
319
- rubygems_version: 2.6.12
364
+ rubygems_version: 3.0.3
320
365
  signing_key:
321
366
  specification_version: 4
322
367
  summary: Cucumber helper functions and scaffolding for easier test automation suite
@@ -348,6 +393,7 @@ test_files:
348
393
  - test/features/timing.feature
349
394
  - test/features/variable.feature
350
395
  - test/features/xpath.feature
396
+ - test/results/latest_results.json
351
397
  - test/server/start.rb
352
398
  - test/server/www/button.html
353
399
  - test/server/www/error_html.html