lapis_lazuli 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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