rainforest_ruby_runtime 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4340afeebc12c607980d704c88783c3b2276b404
4
- data.tar.gz: bbb7b788017d82bee9487fa1ad51cb0fd8e3f52d
3
+ metadata.gz: d12bd4da6f90002d9083b6b02f4a35fce42df209
4
+ data.tar.gz: caabdbef344fb27cf6e0cede1b9209ce66db6579
5
5
  SHA512:
6
- metadata.gz: 5a4a3eb68e24e6fe9a6e24a27c0120de0479851bc60f3caea7283ac4c27a65950dd83759f34d932fe65fb52e0f39701a03be860864bd2971a3d6df7f73d34ccf
7
- data.tar.gz: f9d60bcef218c27099050803cad4b161eb30b9655b09b4db8abda6a6e6d1216439f15931a1df1918c0906945eba3c943787b05d8f418811ae57564200dfbfecb
6
+ metadata.gz: 90c4ddf50e7eba5665186c1eed38dcc1b950792e9e701a339deb78fa5824910c6567d5e3466372e2c1e5ce56f49d18e2a63f6228d6c5c567d23495e563ee4422
7
+ data.tar.gz: 2d2fe0da4b72fe4ecde81800131b3cabb4270c3a9f126c067c1178625987655a7d3c84f1e97a9d343d96c5472d1995c6a206207890957c41b66952a692386ec0
data/.gitignore CHANGED
@@ -1,9 +1,9 @@
1
1
  *.gem
2
2
  *.rbc
3
+ Gemfile.lock
3
4
  .bundle
4
5
  .config
5
6
  .yardoc
6
- Gemfile.lock
7
7
  InstalledFiles
8
8
  _yardoc
9
9
  coverage
@@ -0,0 +1 @@
1
+ rainforest_ruby_runtime
@@ -0,0 +1 @@
1
+ 2.3.3
@@ -7,6 +7,6 @@ notifications:
7
7
  on_failure: always
8
8
 
9
9
  rvm:
10
- - 2.1.1
11
-
10
+ - 2.3.3
11
+
12
12
  script: bundle exec rake test
data/Gemfile CHANGED
@@ -1,8 +1,10 @@
1
1
  source 'https://rubygems.org'
2
+ ruby '2.3.3'
2
3
 
3
4
  # Specify your gem's dependencies in rainforest_ruby_runtime.gemspec
4
5
  gemspec
5
6
 
6
7
  gem 'pry'
7
8
  gem 'awesome_print'
8
- gem 'm'
9
+ gem 'm', '~> 1.5.0'
10
+ gem 'minitest', '~> 5.10.0'
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Build Status](https://travis-ci.org/rainforestapp/rainforest_ruby_runtime.svg)](https://travis-ci.org/rainforestapp/rainforest_ruby_runtime)
4
4
 
5
- TODO: Write a gem description
5
+ Gem to run Rainforest Automated Tests locally or on Sauce Labs.
6
6
 
7
7
  ## Installation
8
8
 
@@ -20,7 +20,12 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+ You can then run the tests using the following command:
24
+ ```
25
+ bundle exec rainforest_test <test-file.rb>
26
+ ```
27
+
28
+ To run the tests on Sauce Labs you should set the `SAUCE_USERNAME` and `SAUCE_ACCESS_KEY` environment variables.
24
29
 
25
30
  ## Contributing
26
31
 
@@ -1,13 +1,20 @@
1
1
  require "sauce"
2
2
  require "sauce/capybara"
3
- require 'rspec/expectations'
3
+ require "testingbot"
4
+ require "testingbot/capybara"
5
+ require "rspec/expectations"
6
+ require "logger"
4
7
 
5
8
  require "rainforest_ruby_runtime/version"
6
9
  require "rainforest_ruby_runtime/exceptions"
7
10
  require "rainforest_ruby_runtime/test"
11
+ require "rainforest_ruby_runtime/empty"
12
+ require "rainforest_ruby_runtime/nil_delegator"
8
13
  require "rainforest_ruby_runtime/dsl"
9
14
  require "rainforest_ruby_runtime/runner"
10
15
  require "rainforest_ruby_runtime/drivers/sauce"
16
+ require "rainforest_ruby_runtime/drivers/browser_stack"
17
+ require "rainforest_ruby_runtime/drivers/testing_bot"
11
18
  require "rainforest_ruby_runtime/drivers/selenium"
12
19
  require "rainforest_ruby_runtime/variables/value"
13
20
  require "rainforest_ruby_runtime/variables/registery"
@@ -0,0 +1,42 @@
1
+ require 'selenium/webdriver'
2
+
3
+ module RainforestRubyRuntime
4
+ module Drivers
5
+ class BrowserStack
6
+ attr_reader :options
7
+
8
+ def initialize(options)
9
+ @options = options
10
+ end
11
+
12
+ def call
13
+ url = "https://#{ENV['BROWSER_STACK_USERNAME']}:#{ENV['BROWSER_STACK_PASSWORD']}@hub.browserstack.com/wd/hub"
14
+ capabilities = ::Selenium::WebDriver::Remote::Capabilities.new browsers.first
15
+ capabilities['browserstack.debug'] = 'true'
16
+
17
+ ::Capybara.register_driver :browser_stack do |app|
18
+ ::Capybara::Selenium::Driver.new(app, browser: :remote, url: url, desired_capabilities: capabilities)
19
+ end
20
+ end
21
+
22
+ private
23
+
24
+ def browsers
25
+ Array(options[:browsers]).map do |browser|
26
+ {
27
+ "ie8" => {platform: "WINDOWS", browser: "internet explorer", browser_version: 8},
28
+ "ie9" => {platform: "WINDOWS", browser: "internet explorer", browser_version: 9},
29
+ "ie10" => {platform: "WINDOWS", browser: "internet explorer", browser_version: 10},
30
+ "ie11" => {platform: "WINDOWS", browser: "internet explorer", browser_version: 11},
31
+ "chrome" => {platform: "WINDOWS", browser: "chrome"},
32
+ "firefox" => {platform: "WINDOWS", browser: "firefox", browser_version: 30.0},
33
+ "safari" => {platform: "MAC", browser: "safari", browser_version: 7},
34
+ }.fetch(browser)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ Capybara.register_driver :browser_stack do |app|
42
+ end
@@ -0,0 +1,34 @@
1
+ module RainforestRubyRuntime
2
+ module Drivers
3
+ class TestingBot
4
+ attr_reader :options
5
+
6
+ def initialize(options)
7
+ @options = options
8
+ end
9
+
10
+ def call
11
+ ::TestingBot.config do |c|
12
+ c[:desired_capabilities] = browsers
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def browsers
19
+ Array(options[:browsers]).map do |browser|
20
+ {
21
+ "ie8" => {platform: "WINDOWS", browserName: "internet explorer", version: 8, idletimeout: 90},
22
+ "ie9" => {platform: "WINDOWS", browserName: "internet explorer", version: 9, idletimeout: 90},
23
+ "ie10" => {platform: "WINDOWS", browserName: "internet explorer", version: 10, idletimeout: 90},
24
+ "ie11" => {platform: "WINDOWS", browserName: "internet explorer", version: 11, idletimeout: 90},
25
+ "chrome" => {platform: "XP", browserName: "googlechrome", idletimeout: 90},
26
+ "firefox" => {platform: "XP", browserName: "firefox", version: 30.0, idletimeout: 90},
27
+ "safari" => {platform: "MAC", browserName: "safari", version: 7, idletimeout: 90},
28
+ }.fetch(browser)
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+
@@ -1,13 +1,21 @@
1
1
  module RainforestRubyRuntime
2
- module DSL
2
+ class DSL
3
+ def initialize(callback: )
4
+ @callback = callback
5
+ end
6
+
3
7
  def test(id: , title: , &block)
4
- RainforestRubyRuntime::Test.new(id: id, title: title, &block)
8
+ RainforestRubyRuntime::Test.new(id: id, title: title, callback: @callback, &block)
5
9
  end
6
10
 
7
11
  def define_variable_scope(name, &block)
8
12
  scope = Variables::Scope.new(name, &block)
9
13
  Variables.scope_registery.register(scope)
10
14
  end
15
+
16
+ def run_code(code)
17
+ eval(code)
18
+ end
11
19
  end
12
20
  end
13
21
 
@@ -0,0 +1,7 @@
1
+ module RainforestRubyRuntime
2
+ class Empty
3
+ def method_missing(*)
4
+ nil
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ module RainforestRubyRuntime
2
+ class NilDelegator
3
+ def initialize(object)
4
+ @object = object
5
+ end
6
+
7
+ def method_missing(meth, *args, &block)
8
+ if @object.respond_to?(meth)
9
+ @object.public_send(meth, *args, &block)
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -1,21 +1,30 @@
1
1
  module RainforestRubyRuntime
2
2
  class Runner
3
- attr_reader :config_options
3
+ attr_reader :config_options, :logger
4
+
5
+ FAILURE_EXCEPTIONS = [
6
+ RSpec::Expectations::ExpectationNotMetError,
7
+ Capybara::ElementNotFound,
8
+ ].freeze
4
9
 
5
10
  def initialize(options = {})
6
11
  @config_options = options.dup.freeze
7
12
  @step_variables = options[:step_variables]
13
+ @callback = NilDelegator.new(options.fetch(:callback) { Empty.new })
14
+ @logger = options.fetch(:logger) { Logger.new(StringIO.new) }
8
15
  end
9
16
 
10
17
  def run(code)
11
- extend RainforestRubyRuntime::DSL
18
+ logger.debug "Running code:\n#{code}\nDriver: #{driver}"
12
19
  Capybara.default_driver = :"#{driver}"
13
- Capybara.default_wait_time = wait_time
20
+ Capybara.default_max_wait_time = wait_time
14
21
 
15
22
  apply_config!
16
23
  setup_scope_registery!
17
24
 
18
- test = eval(code)
25
+ dsl = RainforestRubyRuntime::DSL.new(callback: @callback)
26
+
27
+ test = dsl.run_code(code)
19
28
  if Test === test
20
29
  test.run
21
30
  else
@@ -33,7 +42,7 @@ module RainforestRubyRuntime
33
42
  stdout, stderr = capture_output2 do
34
43
  run(code)
35
44
  end
36
- rescue RSpec::Expectations::ExpectationNotMetError => e
45
+ rescue *FAILURE_EXCEPTIONS => e
37
46
  payload = exception_to_payload e, status: 'failed'
38
47
  rescue StandardError => e
39
48
  payload = exception_to_payload e, status: 'error'
@@ -43,17 +52,38 @@ module RainforestRubyRuntime
43
52
 
44
53
  payload ||= { status: 'passed' }
45
54
 
46
- payload.merge({
55
+ sid = fake_session_id || session_id
56
+
57
+ payload = payload.merge({
47
58
  stdout: stdout,
48
59
  stderr: stderr,
49
- session_id: fake_session_id || session_id
60
+ session_id: sid,
61
+ driver: driver,
50
62
  })
63
+
64
+
65
+ logger.debug("Payload")
66
+ logger.debug(payload.inspect)
67
+
68
+ payload
51
69
  end
52
70
 
53
71
  def driver
54
72
  ENV.fetch("CAPYBARA_DRIVER") { "selenium" }
55
73
  end
56
74
 
75
+ def current_browser
76
+ current_driver.browser
77
+ end
78
+
79
+ def session_id
80
+ current_browser.session_id if current_driver.browser.respond_to?(:session_id)
81
+ rescue Selenium::WebDriver::Error::WebDriverError => e
82
+ logger.error "Can't retrieve session id"
83
+ logger.error "#{e.class} #{e.message}\n#{e.backtrace.join("\n")}"
84
+ nil
85
+ end
86
+
57
87
  private
58
88
  def exception_to_payload(e, payload = {})
59
89
  payload.merge({
@@ -67,6 +97,8 @@ module RainforestRubyRuntime
67
97
  config = {
68
98
  "selenium" => Drivers::Selenium,
69
99
  "sauce" => Drivers::Sauce,
100
+ "testingbot" => Drivers::TestingBot,
101
+ "browser_stack" => Drivers::BrowserStack,
70
102
  }.fetch(driver)
71
103
 
72
104
  config.new(config_options).call
@@ -78,17 +110,24 @@ module RainforestRubyRuntime
78
110
 
79
111
  def terminate_session!
80
112
  # Terminate the Sauce session if needed
81
- current_driver.finish! if current_driver.respond_to?(:finish!)
113
+ if current_driver.respond_to?(:finish!)
114
+ current_driver.finish!
115
+ elsif current_driver.respond_to?(:quit)
116
+ current_driver.quit
117
+ else
118
+ logger.warn "Cannot terminate session. Driver #{driver}" and return
119
+ end
120
+ logger.debug "Session successfuly terminated"
121
+ rescue Selenium::WebDriver::Error::WebDriverError => e
122
+ # Ignore
123
+ logger.warn "Exception while terminating session. Driver #{driver}. Class: #{e.class}"
124
+ logger.warn "#{e.message}\n#{e.backtrace.join("\n")}"
82
125
  end
83
126
 
84
127
  def wait_time
85
128
  ENV.fetch("CAPYBARA_WAIT_TIME", 20).to_i
86
129
  end
87
130
 
88
- def session_id
89
- current_driver.browser.session_id if current_driver.browser.respond_to?(:session_id)
90
- end
91
-
92
131
  def capture_output2
93
132
  previous_stdout, $stdout = $stdout, StringIO.new
94
133
  previous_stderr, $stderr = $stderr, StringIO.new
@@ -101,6 +140,7 @@ module RainforestRubyRuntime
101
140
  end
102
141
 
103
142
  def setup_scope_registery!
143
+ # TODO this should not be set globally, but passed in the DSL
104
144
  if @step_variables.nil?
105
145
  Variables.scope_registery = Variables::Registery.new
106
146
  else
@@ -2,15 +2,16 @@ module RainforestRubyRuntime
2
2
  class Test
3
3
  attr_reader :id, :title, :steps
4
4
 
5
- def initialize(id: , title: , &block)
5
+ def initialize(id: , title: , callback: , &block)
6
6
  @id = id
7
7
  @title = title
8
8
  @steps = []
9
9
  @block = block
10
+ @callback = callback
10
11
  end
11
12
 
12
- def step(**args, &block)
13
- step = Step.new(**args, &block)
13
+ def step(options, &block)
14
+ step = Step.new(options.merge(callback: @callback), &block)
14
15
  @steps << step
15
16
  step.run
16
17
  step
@@ -19,7 +20,9 @@ module RainforestRubyRuntime
19
20
  def run
20
21
  extend RSpec::Matchers
21
22
  extend Capybara::DSL
23
+ @callback.before_test(self)
22
24
  instance_eval &@block
25
+ @callback.after_test(self)
23
26
  end
24
27
 
25
28
  def method_missing(name, *args, &block)
@@ -34,15 +37,18 @@ module RainforestRubyRuntime
34
37
  class Step
35
38
  attr_reader :id, :action, :response
36
39
 
37
- def initialize(id: , action: , response: , &block)
40
+ def initialize(id: , action: , response: , callback: , &block)
38
41
  @id = id
39
42
  @action = action
40
43
  @response = response
41
44
  @block = block
45
+ @callback = callback
42
46
  end
43
47
 
44
48
  def run
49
+ @callback.before_step(self)
45
50
  @block.call
51
+ @callback.after_step(self)
46
52
  end
47
53
  end
48
54
  end
@@ -1,3 +1,3 @@
1
1
  module RainforestRubyRuntime
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -6,11 +6,11 @@ require 'rainforest_ruby_runtime/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "rainforest_ruby_runtime"
8
8
  spec.version = RainforestRubyRuntime::VERSION
9
- spec.authors = ["Simon Mathieu"]
10
- spec.email = ["simon@rainforestqa.com"]
11
- spec.summary = %q{}
12
- spec.description = %q{}
13
- spec.homepage = ""
9
+ spec.authors = ["Simon Mathieu", "Russell Smith"]
10
+ spec.email = ["simon@rainforestqa.com", "russ@rainforestqa.com"]
11
+ spec.summary = %q{Rainforest Ruby Runtime}
12
+ spec.description = %q{Rainforest Ruby Runtime}
13
+ spec.homepage = "https://www.rainforestqa.com/"
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
@@ -18,10 +18,14 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.6"
21
+ spec.add_development_dependency "bundler", "~> 1.14"
22
22
  spec.add_development_dependency "rake"
23
- spec.add_dependency "sauce", "~> 3.4"
24
- spec.add_dependency "sauce-connect", "~> 3.4"
23
+ spec.add_dependency "sauce", "~> 3.7"
24
+ spec.add_dependency "sauce-connect", "~> 3.6"
25
25
  spec.add_dependency "rspec-expectations", "~> 3.0"
26
- spec.add_dependency 'capybara', "~> 2.4"
26
+ spec.add_dependency "capybara", "~> 2.7.1"
27
+ spec.add_dependency "selenium-client", "~> 1.2.0"
28
+ spec.add_dependency "selenium-webdriver", "~> 3.3"
29
+ spec.add_dependency "net-http-persistent", "~> 3.0"
30
+ spec.add_dependency "testingbot", "~> 0.1.7"
27
31
  end
@@ -0,0 +1,8 @@
1
+ test(id: 1, title: "My Test") do
2
+ step id: 1, action: 'action 1', response: 'response 1' do
3
+ end
4
+
5
+ step id: 2, action: 'action 2', response: 'response 2' do
6
+ end
7
+ end
8
+
@@ -4,6 +4,14 @@ module RainforestRubyRuntime
4
4
  describe Runner do
5
5
  subject { Runner.new }
6
6
  let(:code) { read_sample "empty" }
7
+
8
+ describe "#session_id" do
9
+ it "returns a session id" do
10
+ subject.stub(:current_driver, OpenStruct.new(browser: OpenStruct.new(session_id: 'session'))) do
11
+ subject.session_id.must_equal 'session'
12
+ end
13
+ end
14
+ end
7
15
 
8
16
  describe "#run" do
9
17
  describe "with a limited browser set" do
@@ -41,8 +49,8 @@ module RainforestRubyRuntime
41
49
  it "makes the variable accessible in the test" do
42
50
  subject.run(code)
43
51
  $step_variable_1_was.wont_be_nil
44
- $step_variable_2_was.must_match /time is: .*/
45
- $step_variable_3_was.must_equal "1"
52
+ $step_variable_2_was.must_match(/time is: .*/)
53
+ $step_variable_3_was.must_equal("1")
46
54
  end
47
55
  end
48
56
  end
@@ -58,6 +66,13 @@ module RainforestRubyRuntime
58
66
  end
59
67
  end
60
68
 
69
+ describe "select capybara error" do
70
+ let(:code) { format_step "raise Capybara::ElementNotFound" }
71
+ it "catches failled rspec assertions" do
72
+ subject[:status].must_equal "failed"
73
+ end
74
+ end
75
+
61
76
  describe "a passing spec" do
62
77
  let(:code) { format_step "expect(1).to eq(1)" }
63
78
  it "returns a 'passed'" do
@@ -128,6 +143,64 @@ module RainforestRubyRuntime
128
143
  end
129
144
  end
130
145
 
146
+ describe "callbacks" do
147
+ let(:callback) do
148
+ Class.new do
149
+ attr_reader :before_steps, :before_tests, :after_steps, :after_tests
150
+
151
+ def initialize
152
+ @before_steps = []
153
+ @after_steps = []
154
+ @after_tests = []
155
+ @before_tests = []
156
+ end
157
+
158
+ def before_step(step)
159
+ @before_steps << step
160
+ end
161
+
162
+ def after_step(step)
163
+ @after_steps << step
164
+ end
165
+
166
+ def after_test(test)
167
+ @after_tests << test
168
+ end
169
+
170
+ def before_test(test)
171
+ @before_tests << test
172
+ end
173
+ end.new
174
+ end
175
+
176
+ let(:code) { read_sample "two_steps" }
177
+ subject { Runner.new callback: callback }
178
+
179
+ it "calls the right method on the callback object" do
180
+ subject.run(code)
181
+ callback.before_tests.size.must_equal 1
182
+ callback.after_tests.size.must_equal 1
183
+ callback.before_steps.size.must_equal 2
184
+ callback.after_steps.size.must_equal 2
185
+
186
+ callback.before_steps.map(&:id).must_equal [1, 2]
187
+ callback.after_steps.map(&:id).must_equal [1, 2]
188
+
189
+ callback.before_steps.map(&:action).must_equal ["action 1", "action 2"]
190
+ end
191
+
192
+ describe "a partially define callback object" do
193
+ let(:callback) do
194
+ Class.new do
195
+ end.new
196
+ end
197
+
198
+ it "should not rise a method missing exception" do
199
+ subject.run(code)
200
+ end
201
+ end
202
+ end
203
+
131
204
  def read_sample(name)
132
205
  File.read(File.expand_path("../sample_tests/#{name}.rb", __dir__))
133
206
  end
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rainforest_ruby_runtime
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Mathieu
8
+ - Russell Smith
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-07-18 00:00:00.000000000 Z
12
+ date: 2017-04-24 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
@@ -16,14 +17,14 @@ dependencies:
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: '1.6'
20
+ version: '1.14'
20
21
  type: :development
21
22
  prerelease: false
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - "~>"
25
26
  - !ruby/object:Gem::Version
26
- version: '1.6'
27
+ version: '1.14'
27
28
  - !ruby/object:Gem::Dependency
28
29
  name: rake
29
30
  requirement: !ruby/object:Gem::Requirement
@@ -44,28 +45,28 @@ dependencies:
44
45
  requirements:
45
46
  - - "~>"
46
47
  - !ruby/object:Gem::Version
47
- version: '3.4'
48
+ version: '3.7'
48
49
  type: :runtime
49
50
  prerelease: false
50
51
  version_requirements: !ruby/object:Gem::Requirement
51
52
  requirements:
52
53
  - - "~>"
53
54
  - !ruby/object:Gem::Version
54
- version: '3.4'
55
+ version: '3.7'
55
56
  - !ruby/object:Gem::Dependency
56
57
  name: sauce-connect
57
58
  requirement: !ruby/object:Gem::Requirement
58
59
  requirements:
59
60
  - - "~>"
60
61
  - !ruby/object:Gem::Version
61
- version: '3.4'
62
+ version: '3.6'
62
63
  type: :runtime
63
64
  prerelease: false
64
65
  version_requirements: !ruby/object:Gem::Requirement
65
66
  requirements:
66
67
  - - "~>"
67
68
  - !ruby/object:Gem::Version
68
- version: '3.4'
69
+ version: '3.6'
69
70
  - !ruby/object:Gem::Dependency
70
71
  name: rspec-expectations
71
72
  requirement: !ruby/object:Gem::Requirement
@@ -86,24 +87,82 @@ dependencies:
86
87
  requirements:
87
88
  - - "~>"
88
89
  - !ruby/object:Gem::Version
89
- version: '2.4'
90
+ version: 2.7.1
90
91
  type: :runtime
91
92
  prerelease: false
92
93
  version_requirements: !ruby/object:Gem::Requirement
93
94
  requirements:
94
95
  - - "~>"
95
96
  - !ruby/object:Gem::Version
96
- version: '2.4'
97
- description: ''
97
+ version: 2.7.1
98
+ - !ruby/object:Gem::Dependency
99
+ name: selenium-client
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: 1.2.0
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: 1.2.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: selenium-webdriver
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.3'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '3.3'
126
+ - !ruby/object:Gem::Dependency
127
+ name: net-http-persistent
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '3.0'
133
+ type: :runtime
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '3.0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: testingbot
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: 0.1.7
147
+ type: :runtime
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 0.1.7
154
+ description: Rainforest Ruby Runtime
98
155
  email:
99
156
  - simon@rainforestqa.com
157
+ - russ@rainforestqa.com
100
158
  executables:
101
159
  - rainforest_test
102
160
  extensions: []
103
161
  extra_rdoc_files: []
104
162
  files:
105
163
  - ".gitignore"
106
- - ".rvmrc"
164
+ - ".ruby-gemset"
165
+ - ".ruby-version"
107
166
  - ".travis.yml"
108
167
  - Gemfile
109
168
  - LICENSE.txt
@@ -111,10 +170,14 @@ files:
111
170
  - Rakefile
112
171
  - bin/rainforest_test
113
172
  - lib/rainforest_ruby_runtime.rb
173
+ - lib/rainforest_ruby_runtime/drivers/browser_stack.rb
114
174
  - lib/rainforest_ruby_runtime/drivers/sauce.rb
115
175
  - lib/rainforest_ruby_runtime/drivers/selenium.rb
176
+ - lib/rainforest_ruby_runtime/drivers/testing_bot.rb
116
177
  - lib/rainforest_ruby_runtime/dsl.rb
178
+ - lib/rainforest_ruby_runtime/empty.rb
117
179
  - lib/rainforest_ruby_runtime/exceptions.rb
180
+ - lib/rainforest_ruby_runtime/nil_delegator.rb
118
181
  - lib/rainforest_ruby_runtime/runner.rb
119
182
  - lib/rainforest_ruby_runtime/test.rb
120
183
  - lib/rainforest_ruby_runtime/variables/registery.rb
@@ -130,9 +193,10 @@ files:
130
193
  - sample_tests/real.rb
131
194
  - sample_tests/simple.rb
132
195
  - sample_tests/step_variables.rb
196
+ - sample_tests/two_steps.rb
133
197
  - test/runner_test.rb
134
198
  - test/test_helper.rb
135
- homepage: ''
199
+ homepage: https://www.rainforestqa.com/
136
200
  licenses:
137
201
  - MIT
138
202
  metadata: {}
@@ -152,10 +216,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
152
216
  version: '0'
153
217
  requirements: []
154
218
  rubyforge_project:
155
- rubygems_version: 2.2.2
219
+ rubygems_version: 2.5.2
156
220
  signing_key:
157
221
  specification_version: 4
158
- summary: ''
222
+ summary: Rainforest Ruby Runtime
159
223
  test_files:
160
224
  - test/runner_test.rb
161
225
  - test/test_helper.rb
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm use 2.1.2@rainforest_ruby_runtime --create