Sha256: 1f72ff27a896bdb86bb846e0eb7c4e12f88b4f10e6c21313b9286f8eea97cbc4

Contents?: true

Size: 1.92 KB

Versions: 7

Compression:

Stored size: 1.92 KB

Contents

require 'sauce/utilities'
require "sauce_whisk"

begin
  require 'spec'
  module Sauce
    module RSpec
      class SeleniumExampleGroup < Spec::Example::ExampleGroup
        attr_reader :selenium
        @@need_tunnel = false

        def self.inherited(subclass)
          # only setup tunnel if somebody needs it
          @@need_tunnel = true
          super(subclass)
        end

        before :suite do
          config = Sauce::Config.new
          if @@need_tunnel
            if config[:application_host]
              Sauce::Utilities::Connect.start(:host => config[:application_host], :port => config[:application_port])
            end
            if config[:start_local_application] &&
              Sauce::Utilities::RailsServer.is_rails_app?
              @@server = Sauce::Utilities::RailsServer.new
              @@server.start
            end
          end
        end

        after :suite do
          Sauce::Utilities::Connect.close
          @@server.stop if defined? @@server
        end

        def execute(*args)
          config = Sauce::Config.new
          description = [self.class.description, self.description].join(" ")
          config[:browsers].each do |os, browser, version|
            @selenium = Sauce::Selenium2.new({:os => os, :browser => browser,
                                              :browser_version => version,
                                              :job_name => description})
            
            begin
              success = super(*args)
              SauceWhisk::Jobs.change_status @selenium.session_id, success
            ensure
              @selenium.stop
            end
          end
        end

        alias_method :page, :selenium
        alias_method :s, :selenium

        Spec::Example::ExampleGroupFactory.register(:selenium, self)
      end
    end
  end
rescue LoadError
  # User doesn't have RSpec 1.x installed
rescue => e
  STDERR.puts "Exception occured: #{e.to_s}"
  exit 1
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
sauce_ruby-3.5.10 lib/sauce/rspec/rspec_one_support.rb
sauce_ruby-3.5.9 lib/sauce/rspec/rspec_one_support.rb
sauce_ruby-3.5.8 lib/sauce/rspec/rspec_one_support.rb
sauce_ruby-3.5.7 lib/sauce/rspec/rspec_one_support.rb
sauce_ruby-3.5.6 lib/sauce/rspec/rspec_one_support.rb
sauce-3.5.6 lib/sauce/rspec/rspec_one_support.rb
sauce-3.5.5 lib/sauce/rspec/rspec_one_support.rb