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.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/lapis_lazuli.gemspec +10 -8
- data/lib/lapis_lazuli/api.rb +1 -1
- data/lib/lapis_lazuli/argparse.rb +1 -1
- data/lib/lapis_lazuli/browser.rb +37 -61
- data/lib/lapis_lazuli/browser/error.rb +89 -62
- data/lib/lapis_lazuli/browser/find.rb +1 -2
- data/lib/lapis_lazuli/cli.rb +1 -1
- data/lib/lapis_lazuli/cucumber.rb +1 -1
- data/lib/lapis_lazuli/generators/cucumber.rb +1 -1
- data/lib/lapis_lazuli/generators/cucumber/template/README.md +2 -0
- data/lib/lapis_lazuli/generators/cucumber/template/config/config.yml +6 -21
- data/lib/lapis_lazuli/generators/cucumber/template/config/cucumber.yml +42 -13
- data/lib/lapis_lazuli/generators/cucumber/template/config/users.yml +21 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/1_basic.feature +49 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/2_account.feature +38 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/3_todo_list.feature +23 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/authentication_helper.rb +122 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/navigation_helper.rb +64 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/registration_helper.rb +102 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/helpers/user_helper.rb +74 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/account_steps.rb +60 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/basic_steps.rb +70 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/todo_steps.rb +27 -0
- data/lib/lapis_lazuli/generators/cucumber/template/features/support/env.rb +3 -2
- data/lib/lapis_lazuli/generic/xpath.rb +1 -1
- data/lib/lapis_lazuli/options.rb +3 -2
- data/lib/lapis_lazuli/placeholders.rb +1 -1
- data/lib/lapis_lazuli/proxy.rb +1 -1
- data/lib/lapis_lazuli/runtime.rb +1 -1
- data/lib/lapis_lazuli/scenario.rb +1 -1
- data/lib/lapis_lazuli/storage.rb +1 -1
- data/lib/lapis_lazuli/version.rb +2 -2
- data/lib/lapis_lazuli/versions.rb +1 -1
- data/lib/lapis_lazuli/world/config.rb +348 -334
- data/lib/lapis_lazuli/world/hooks.rb +85 -84
- data/lib/lapis_lazuli/world/logging.rb +1 -1
- data/test/Gemfile +2 -16
- data/test/config/config.yml +7 -6
- data/test/config/cucumber.yml +6 -8
- data/test/features/bindings.feature +1 -1
- data/test/features/browser.feature +1 -1
- data/test/features/step_definitions/interaction_steps.rb +5 -2
- data/test/features/step_definitions/validation_steps.rb +2 -2
- data/test/features/support/env.rb +21 -1
- data/test/results/latest_results.json +0 -0
- metadata +74 -28
- data/lib/lapis_lazuli/generators/cucumber/template/features/account.feature +0 -26
- data/lib/lapis_lazuli/generators/cucumber/template/features/example.feature +0 -30
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/interaction_steps.rb +0 -165
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/precondition_steps.rb +0 -63
- data/lib/lapis_lazuli/generators/cucumber/template/features/step_definitions/validation_steps.rb +0 -67
- 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
|
-
#
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
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
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|
-
|
37
|
-
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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
|
-
|
57
|
-
|
58
|
-
|
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
|
-
|
62
|
-
|
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
|
-
|
67
|
-
#
|
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
|
-
|
70
|
-
|
71
|
-
scenario.running = false
|
72
|
-
end
|
67
|
+
# Run 'end' queue
|
68
|
+
# FIXME hard to implement; see issue #13
|
73
69
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
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
|
-
|
105
|
-
|
106
|
-
|
105
|
+
private
|
106
|
+
def run_queue(queue, cuke_scenario)
|
107
|
+
@@hooks ||= {}
|
107
108
|
|
108
|
-
|
109
|
-
|
110
|
-
|
109
|
+
if @@hooks[queue].nil?
|
110
|
+
return
|
111
|
+
end
|
111
112
|
|
112
|
-
|
113
|
-
|
113
|
+
@@hooks[queue].each do |hook|
|
114
|
+
self.instance_exec(cuke_scenario, &hook)
|
115
|
+
end
|
114
116
|
end
|
115
|
-
end
|
116
|
-
end # module
|
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.
|
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
|
-
#
|
4
|
-
|
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'
|
data/test/config/config.yml
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
################################################################################
|
10
10
|
# Set the global variables
|
11
|
-
default_env:
|
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
|
-
|
33
|
-
|
34
|
-
|
32
|
+
remote:
|
33
|
+
close_browser_after: feature
|
34
|
+
server:
|
35
|
+
url: local_path
|
35
36
|
|
36
|
-
|
37
|
+
local:
|
37
38
|
close_browser_after: feature
|
38
39
|
server:
|
39
|
-
|
40
|
+
url: http://localhost:9090/
|
data/test/config/cucumber.yml
CHANGED
@@ -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
|
-
|
33
|
-
uat: TEST_ENV=acceptatie -t @u,@uat
|
29
|
+
remote: SELENIUM_ENV=remote -t ~@ignore_on_remote TEST_ENV=remote
|
34
30
|
|
35
|
-
|
36
|
-
|
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
|
@@ -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 "(.*?)")
|
49
|
+
Given(/^I create a firefox browser named "(.*?)"(?: with proxy to "(.*?)")?$/) do |name, proxy_url|
|
47
50
|
b = nil
|
48
|
-
if
|
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 => :
|
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', :
|
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.
|
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:
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
157
|
+
name: deep_merge
|
158
158
|
requirement: !ruby/object:Gem::Requirement
|
159
159
|
requirements:
|
160
160
|
- - "~>"
|
161
161
|
- !ruby/object:Gem::Version
|
162
|
-
version: '
|
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: '
|
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:
|
205
|
+
name: ffi
|
186
206
|
requirement: !ruby/object:Gem::Requirement
|
187
207
|
requirements:
|
188
208
|
- - "~>"
|
189
209
|
- !ruby/object:Gem::Version
|
190
|
-
version: '
|
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: '
|
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/
|
239
|
-
- lib/lapis_lazuli/generators/cucumber/template/features/
|
240
|
-
- lib/lapis_lazuli/generators/cucumber/template/features/
|
241
|
-
- lib/lapis_lazuli/generators/cucumber/template/features/
|
242
|
-
- lib/lapis_lazuli/generators/cucumber/template/features/
|
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
|
-
|
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
|