cucumber_steps 0.0.1.sketch → 0.0.1
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 +4 -4
- data/Gemfile +1 -3
- data/README.md +10 -1
- data/Rakefile +43 -0
- data/VERSION +1 -1
- data/cucumber_steps.gemspec +3 -0
- data/lib/cucumber_steps.rb +10 -1
- data/lib/cucumber_steps/browser.rb +47 -0
- data/lib/cucumber_steps/browser/browser_steps.rb +11 -0
- data/lib/cucumber_steps/browser/click_steps.rb +16 -0
- data/lib/cucumber_steps/browser/expect_steps.rb +33 -0
- data/lib/cucumber_steps/browser/hover_steps.rb +7 -0
- data/lib/cucumber_steps/browser/instance.rb +17 -0
- data/lib/cucumber_steps/browser/instance/defaults.rb +32 -0
- data/lib/cucumber_steps/browser/instance/scope_handler.rb +35 -0
- data/lib/cucumber_steps/browser/locating_scope_steps.rb +15 -0
- data/lib/cucumber_steps/browser/sketch_steps.rb +17 -0
- data/lib/cucumber_steps/browser/typing_steps.rb +21 -0
- data/lib/cucumber_steps/browser/visit_steps.rb +7 -0
- data/lib/cucumber_steps/debug.rb +21 -0
- data/lib/cucumber_steps/env_fetcher.rb +40 -0
- metadata +46 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45beaf5b6ca6bd6506e2ca36e6a581c239617fe4
|
4
|
+
data.tar.gz: a4737c0e677888d5187695011019fc9950c3579b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82bc10db105114a1cbaa1533c23bac2a4dd927a94e186c25b4bb7cb8cdaae9714ea8e31b21beb9db86b7c927ba1997bc69408457fee2c417b9f14ad176ac0448
|
7
|
+
data.tar.gz: 51df69ea1ef561d2ec2f04ee6fdf15d946e084b83acdb22fbfe8fd8b5350c80a53d4e7cf44ab9a715b1f55055bd1593c232d58a95754d8051e9a5a3da32fa552
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -18,7 +18,16 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
-
|
21
|
+
### ENV variables
|
22
|
+
|
23
|
+
* BROWSER_NAME
|
24
|
+
* phantomjs
|
25
|
+
* chrome
|
26
|
+
* firefox
|
27
|
+
* etx
|
28
|
+
|
29
|
+
* BROWSER_NOT_EXIT_AFTER_TEST
|
30
|
+
* Do not apply browser object to close on exit
|
22
31
|
|
23
32
|
## Contributing
|
24
33
|
|
data/Rakefile
CHANGED
@@ -1,2 +1,45 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
|
3
|
+
# From https://gist.github.com/778535
|
4
|
+
# In turn based on http://www.natontesting.com/2010/01/11/updated-script-to-list-all-cucumber-step-definitions/
|
5
|
+
desc "List all available steps"
|
6
|
+
task :steps do
|
7
|
+
require 'hirb'
|
8
|
+
extend Hirb::Console
|
9
|
+
features_dir = ENV['FEATURES_PATH'] || "features"
|
10
|
+
step_candidates = Dir.glob(File.join(features_dir,'**/*.rb'))
|
11
|
+
|
12
|
+
# Follow all the gem requires, and identify which files have steps in them
|
13
|
+
step_files = []
|
14
|
+
step_candidates.each do |candidate|
|
15
|
+
|
16
|
+
File.foreach(candidate) do |line|
|
17
|
+
if line =~ /require ['"](.*\/.*)['"]/
|
18
|
+
if libfile = `gem which #{$1} 2>/dev/null`.chomp
|
19
|
+
step_candidates << libfile unless step_candidates.include?(libfile)
|
20
|
+
end
|
21
|
+
elsif line =~ /^\s*(?:Given|When|Then)\s+/
|
22
|
+
step_files << candidate
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
step_files.uniq.each do |step_file|
|
28
|
+
puts "File: #{step_file}"
|
29
|
+
puts ""
|
30
|
+
results = []
|
31
|
+
File.new(step_file).read.each_line.each_with_index do |line, number|
|
32
|
+
next unless line =~ /^\s*(?:Given|When|Then)\s+|\//
|
33
|
+
res = /(?:Given|When|Then)[\s\(]*\/(.*)\/([imxo]*)[\s\)]*do\s*(?:$|\|(.*)\|)/.match(line)
|
34
|
+
next unless res
|
35
|
+
matches = res.captures
|
36
|
+
results << OpenStruct.new(
|
37
|
+
:steps => matches[0],
|
38
|
+
:args => matches[2]
|
39
|
+
)
|
40
|
+
end
|
41
|
+
table results, :resize => false, :fields=>[:steps, :args]
|
42
|
+
puts ""
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.1
|
1
|
+
0.0.1
|
data/cucumber_steps.gemspec
CHANGED
@@ -23,7 +23,10 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.6"
|
24
24
|
spec.add_development_dependency "rake"
|
25
25
|
|
26
|
+
spec.add_dependency 'watir'
|
26
27
|
spec.add_dependency 'rspec'
|
27
28
|
spec.add_dependency 'cucumber'
|
28
29
|
|
30
|
+
spec.add_development_dependency 'hirb'
|
31
|
+
|
29
32
|
end
|
data/lib/cucumber_steps.rb
CHANGED
@@ -1,3 +1,12 @@
|
|
1
1
|
module CucumberSteps
|
2
|
-
|
2
|
+
|
3
|
+
require 'cucumber_steps/env_fetcher'
|
4
|
+
|
5
|
+
require 'cucumber_steps/debug' if CucumberSteps::ENVFetcher.development?
|
6
|
+
|
7
|
+
require 'cucumber'
|
8
|
+
require 'cucumber/rb_support/rb_dsl'
|
9
|
+
|
10
|
+
require 'cucumber_steps/browser'
|
11
|
+
|
3
12
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'cucumber_steps/browser/browser_steps'
|
2
|
+
require 'cucumber_steps/browser/click_steps'
|
3
|
+
require 'cucumber_steps/browser/expect_steps'
|
4
|
+
require 'cucumber_steps/browser/hover_steps'
|
5
|
+
require 'cucumber_steps/browser/sketch_steps'
|
6
|
+
require 'cucumber_steps/browser/typing_steps'
|
7
|
+
require 'cucumber_steps/browser/visit_steps'
|
8
|
+
|
9
|
+
module CucumberSteps::Browser
|
10
|
+
|
11
|
+
require 'cucumber_steps/browser/instance'
|
12
|
+
|
13
|
+
def browser
|
14
|
+
@browser || reopen_browser!
|
15
|
+
end
|
16
|
+
|
17
|
+
def reopen_browser!
|
18
|
+
|
19
|
+
if @browser.is_a?(::CucumberSteps::Browser::Instance)
|
20
|
+
@browser.close
|
21
|
+
end
|
22
|
+
|
23
|
+
browser = ::CucumberSteps::Browser::Instance.new(browser_name)
|
24
|
+
@browser = browser
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
def browser_name=(new_browser_name)
|
29
|
+
@browser_name = new_browser_name.to_s.strip
|
30
|
+
end
|
31
|
+
|
32
|
+
def browser_name
|
33
|
+
CucumberSteps::ENVFetcher.browser_name || @browser_name || 'phantomjs'
|
34
|
+
end
|
35
|
+
|
36
|
+
def parse_html_attributes(raw_attributes)
|
37
|
+
raw_attributes.scan(/(\w+)="([^"]+)"/).reduce({}) do |all_matcher, (attr_name, value)|
|
38
|
+
all_matcher[attr_name.downcase.to_sym]=value
|
39
|
+
all_matcher
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
World(CucumberSteps::Browser)
|
46
|
+
|
47
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
And /^I use "([^"]+)"(?: as the)? browser$/i do |new_browser_name|
|
2
|
+
self.browser_name= new_browser_name
|
3
|
+
end
|
4
|
+
|
5
|
+
And /^the browser is (.*)$/i do |new_browser_name|
|
6
|
+
self.browser_name= new_browser_name
|
7
|
+
end
|
8
|
+
|
9
|
+
And /^the browser resolution is (\d+)x(\d+) pixels$/i do |width, height|
|
10
|
+
browser.window.resize_to(width.to_i, height.to_i)
|
11
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
|
2
|
+
And /^I click to the "([^"]+)" field that is near to the "([^"]+)" label$/i do |tag_name,label_text|
|
3
|
+
relative_positioned_label = browser.current_scope.label(text: label_text).when_present
|
4
|
+
element_to_click = relative_positioned_label.parent.element(tag_name: tag_name).when_present
|
5
|
+
element_to_click.click
|
6
|
+
end
|
7
|
+
|
8
|
+
And /^I press the "([^"]+)" button$/i do |button_text|
|
9
|
+
element_to_click = browser.current_scope.element(text: button_text).when_present
|
10
|
+
element_to_click.click
|
11
|
+
end
|
12
|
+
|
13
|
+
And /^I press click to the element that html attributes match the following: (.*)$/ do |raw_html_attributes|
|
14
|
+
element_to_click = browser.current_scope.element(parse_html_attributes(raw_html_attributes)).when_present
|
15
|
+
element_to_click.click
|
16
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Then(/^the browser url should include "([^"]*)"$/) do |include_text|
|
2
|
+
Watir::Wait.until(10, "the url do not include the #{include_text.inspect} text") do
|
3
|
+
browser.url.include?(include_text)
|
4
|
+
end
|
5
|
+
end
|
6
|
+
|
7
|
+
Then(/^the browser url should not include "([^"]*)"$/) do |include_text|
|
8
|
+
Watir::Wait.until(10, "the url do include the #{include_text.inspect} text\n#{browser.url}") do
|
9
|
+
not browser.url.include?(include_text)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
And(/^The browser's url should match the following: \/(.*)\/$/i) do |expected_url|
|
14
|
+
Watir::Wait.until(10, "the url do not match the /#{expected_url}/ regular expression") do
|
15
|
+
!!(browser.url =~ Regexp.new(expected_url))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
And(/^the (\w+) with the attributes: (.*?) should match the following text: (.*)$/i) do |tag_name, raw_attr_matcher, expected_match_text|
|
20
|
+
Watir::Wait.until(10, "the url do not match the /#{expected_match_text}/ regular expression") do
|
21
|
+
begin
|
22
|
+
!!((browser.current_scope.element({tag_name: tag_name}.merge(parse_html_attributes(raw_attr_matcher))).when_present.text) =~ Regexp.new(expected_match_text))
|
23
|
+
rescue
|
24
|
+
false
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
And(/^the browser should include the following text:$/) do |text|
|
30
|
+
Watir::Wait.until(10, "the browser do not include the following text: #{text}") do
|
31
|
+
browser.current_scope.text.include?(text.strip)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
And /^I hover(?: mouse)? to the "([^"])" button$/i do |button_text|
|
2
|
+
browser.current_scope.element(text: button_text).when_present.hover
|
3
|
+
end
|
4
|
+
|
5
|
+
And /^I hover mouse to the element that html attributes match the following: (.*)$/ do |raw_html_attributes|
|
6
|
+
browser.current_scope.element(parse_html_attributes(raw_html_attributes)).when_present.hover
|
7
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'watir'
|
2
|
+
class CucumberSteps::Browser::Instance < Watir::Browser
|
3
|
+
|
4
|
+
require 'cucumber_steps/browser/instance/defaults'
|
5
|
+
extend CucumberSteps::Browser::Instance::Defaults
|
6
|
+
|
7
|
+
require 'cucumber_steps/browser/instance/scope_handler'
|
8
|
+
include CucumberSteps::Browser::Instance::ScopeHandler
|
9
|
+
|
10
|
+
protected
|
11
|
+
|
12
|
+
def initialize(browser_name, *args)
|
13
|
+
super(browser_name, *self.class.args_with_default_options(browser_name, *args))
|
14
|
+
Kernel.at_exit { self.close rescue nil } if CucumberSteps::ENVFetcher.close_browser_at_exit?
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module CucumberSteps::Browser::Instance::Defaults
|
2
|
+
|
3
|
+
BROWSER_ARGUMENTS = {
|
4
|
+
'phantomjs' => {
|
5
|
+
# --load-plugins=[yes|no] Load all plugins (i.e. 'Flash', 'Silverlight', ...) (default is 'no').
|
6
|
+
# --ignore-ssl-errors=[yes|no] Ignore SSL errors (i.e. expired or self-signed certificate errors).
|
7
|
+
# --ssl-protocol=any
|
8
|
+
# --config=/path/to/config
|
9
|
+
# # javascriptCanCloseWindows: true
|
10
|
+
# # javascriptCanOpenWindows: true
|
11
|
+
# # javascriptEnabled: true
|
12
|
+
args: ['--ssl-protocol=any']
|
13
|
+
}
|
14
|
+
|
15
|
+
}
|
16
|
+
|
17
|
+
def args_with_default_options(browser_name, *args)
|
18
|
+
|
19
|
+
unless args.any? { |e| e.is_a?(Hash) }
|
20
|
+
args.unshift({})
|
21
|
+
end
|
22
|
+
|
23
|
+
options = args.find { |e| e.is_a?(Hash) }
|
24
|
+
|
25
|
+
pare_defined_options = ::CucumberSteps::Browser::Instance::Defaults::BROWSER_ARGUMENTS[browser_name.to_s] || {}
|
26
|
+
options.merge!(pare_defined_options) if pare_defined_options.is_a?(Hash)
|
27
|
+
|
28
|
+
return args
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module CucumberSteps::Browser::Instance::ScopeHandler
|
2
|
+
|
3
|
+
def current_scope
|
4
|
+
target_scope = self
|
5
|
+
|
6
|
+
locating_scopes.each do |location_def|
|
7
|
+
target_scope = location_def.call(target_scope)
|
8
|
+
end
|
9
|
+
|
10
|
+
target_scope
|
11
|
+
end
|
12
|
+
|
13
|
+
def add_locating_scope(locating_scope_name, &block)
|
14
|
+
locating_scopes.push([locating_scope_name.to_s.to_sym, block])
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def pop_locating_scope(locating_scope_name)
|
19
|
+
locating_scope_name = locating_scope_name.to_s.to_sym
|
20
|
+
locating_scopes.delete_if { |name, block| name == locating_scope_name }
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
|
24
|
+
def clear_locating_scopes!
|
25
|
+
locating_scopes.clear
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
|
31
|
+
def locating_scopes
|
32
|
+
@locating_scopes ||= []
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
And /^From here I work (?:in|with) iframe$/i do
|
2
|
+
browser.add_locating_scope :work_with_iframe do |scope|
|
3
|
+
::Watir::Wait.until { scope.iframes.count > 0 }
|
4
|
+
|
5
|
+
scope.iframe
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
And /^I no longer work (?:in|with) iframe$/i do
|
10
|
+
browser.pop_locating_scope(:work_with_iframe)
|
11
|
+
end
|
12
|
+
|
13
|
+
And /^in the browser(?: without any additional scoping)?$/ do
|
14
|
+
browser.clear_locating_scopes!
|
15
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# And(/fill Password text\-field with "([^"]*)"$/i) do |password_text|
|
2
|
+
#
|
3
|
+
# password_element = browser.elements(text: /^ *passw(?:or)?d:? *$/i).sort_by { |e| e.text.length }.first.to_subtype
|
4
|
+
#
|
5
|
+
# case password_element
|
6
|
+
#
|
7
|
+
# when Watir::TableDataCell
|
8
|
+
# # [:cell_index, :tab_index]
|
9
|
+
# value_td = password_element.parent.td(index: password_element.cell_index + 1)
|
10
|
+
# value_td.elements.first.set(password_text)
|
11
|
+
#
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# # $element = password_element
|
15
|
+
# # irb_session
|
16
|
+
#
|
17
|
+
# end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
And /^I type the following into the browser:$/i do |text_to_be_typed|
|
2
|
+
browser.send_keys(text_to_be_typed.to_s)
|
3
|
+
end
|
4
|
+
|
5
|
+
[
|
6
|
+
|
7
|
+
:null, :cancel, :help, :backspace, :tab, :clear, :return, :enter, :shift, :left_shift, :control, :left_control, :alt, :left_alt,
|
8
|
+
:pause, :escape, :space, :page_up, :page_down, :end, :home, :left, :arrow_left, :up, :arrow_up, :right, :arrow_right, :down, :arrow_down, :insert, :delete, :semicolon, :equals,
|
9
|
+
:numpad0, :numpad1, :numpad2, :numpad3, :numpad4, :numpad5, :numpad6, :numpad7, :numpad8, :numpad9,
|
10
|
+
:multiply, :add, :separator, :subtract, :decimal, :divide,
|
11
|
+
:f1, :f2, :f3, :f4, :f5, :f6, :f7, :f8, :f9, :f10, :f11, :f12,
|
12
|
+
:meta, :command
|
13
|
+
|
14
|
+
].each do |special_key|
|
15
|
+
|
16
|
+
And /^I hit #{special_key.to_s.inspect} to the browser$/ do
|
17
|
+
browser.send_keys(:enter)
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
def start_irb
|
2
|
+
require 'irb'
|
3
|
+
require 'irb/completion'
|
4
|
+
ARGV.clear
|
5
|
+
IRB.start
|
6
|
+
end
|
7
|
+
|
8
|
+
module DebugSteps
|
9
|
+
|
10
|
+
def irb_session
|
11
|
+
$b = $browser = browser
|
12
|
+
start_irb
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
World(DebugSteps)
|
18
|
+
|
19
|
+
And /irb/i do
|
20
|
+
irb_session
|
21
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module CucumberSteps::ENVFetcher
|
2
|
+
extend self
|
3
|
+
|
4
|
+
CLI_ALIASES_FOR_TRUE = %W[yes true]
|
5
|
+
CLI_ALIASES_FOR_FALSE = %W[no false]
|
6
|
+
|
7
|
+
def development?
|
8
|
+
lookup_for_true_case('DEVELOPER_ENV')
|
9
|
+
end
|
10
|
+
|
11
|
+
def close_browser_at_exit?
|
12
|
+
lookup_for_true_case('CLOSE_BROWSER_AT_EXIT') or
|
13
|
+
not lookup_for_false_case('BROWSER_NOT_EXIT_AFTER_TEST', 'BROWSER_NOT_EXIT_AT_EXIT')
|
14
|
+
end
|
15
|
+
|
16
|
+
def browser_name
|
17
|
+
lookup_value_by('BROWSER','BROWSER_NAME')
|
18
|
+
end
|
19
|
+
|
20
|
+
protected
|
21
|
+
|
22
|
+
def lookup_for_true_case(*env_keys)
|
23
|
+
filtered_env(env_keys).any? { |k, v| CLI_ALIASES_FOR_TRUE.include?(v.to_s.downcase) }
|
24
|
+
end
|
25
|
+
|
26
|
+
def lookup_for_false_case(*env_keys)
|
27
|
+
filtered_env(env_keys).any? { |k, v| CLI_ALIASES_FOR_FALSE.include?(v.to_s.downcase) }
|
28
|
+
end
|
29
|
+
|
30
|
+
def lookup_value_by(*env_keys)
|
31
|
+
filtered_env(env_keys).values.first
|
32
|
+
end
|
33
|
+
|
34
|
+
def filtered_env(env_keys)
|
35
|
+
lookup_env_keys = env_keys.map(&:to_s).map(&:upcase)
|
36
|
+
|
37
|
+
ENV.select { |env_key, value| lookup_env_keys.include?(env_key) }
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cucumber_steps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adam Luzsi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: watir
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +80,20 @@ dependencies:
|
|
66
80
|
- - ">="
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: hirb
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
69
97
|
description: collection of often used cucumber steps to avoid the violation of DRY
|
70
98
|
principle
|
71
99
|
email:
|
@@ -82,6 +110,20 @@ files:
|
|
82
110
|
- VERSION
|
83
111
|
- cucumber_steps.gemspec
|
84
112
|
- lib/cucumber_steps.rb
|
113
|
+
- lib/cucumber_steps/browser.rb
|
114
|
+
- lib/cucumber_steps/browser/browser_steps.rb
|
115
|
+
- lib/cucumber_steps/browser/click_steps.rb
|
116
|
+
- lib/cucumber_steps/browser/expect_steps.rb
|
117
|
+
- lib/cucumber_steps/browser/hover_steps.rb
|
118
|
+
- lib/cucumber_steps/browser/instance.rb
|
119
|
+
- lib/cucumber_steps/browser/instance/defaults.rb
|
120
|
+
- lib/cucumber_steps/browser/instance/scope_handler.rb
|
121
|
+
- lib/cucumber_steps/browser/locating_scope_steps.rb
|
122
|
+
- lib/cucumber_steps/browser/sketch_steps.rb
|
123
|
+
- lib/cucumber_steps/browser/typing_steps.rb
|
124
|
+
- lib/cucumber_steps/browser/visit_steps.rb
|
125
|
+
- lib/cucumber_steps/debug.rb
|
126
|
+
- lib/cucumber_steps/env_fetcher.rb
|
85
127
|
homepage: ''
|
86
128
|
licenses:
|
87
129
|
- MIT
|
@@ -97,9 +139,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
97
139
|
version: '0'
|
98
140
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
141
|
requirements:
|
100
|
-
- - "
|
142
|
+
- - ">="
|
101
143
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
144
|
+
version: '0'
|
103
145
|
requirements: []
|
104
146
|
rubyforge_project:
|
105
147
|
rubygems_version: 2.2.2
|