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.
- 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
|