Sha256: 89b479cbd16587be6e24a199c16c9d52745a9f63c1cb550abfdd44cff4741b4a

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

require "tmpdir"
require 'watirspec/guards'
require 'watirspec/implementation'
require 'watirspec/runner'
require 'watirspec/server'

module WatirSpec
  class << self
    attr_accessor :browser_args, :unguarded, :implementation

    def html
      @html ||= File.expand_path("../../spec/watirspec/html", __FILE__)
    end

    def run!
      WatirSpec::Runner.execute_if_necessary
    end

    def url_for(str)
      File.join(host, str)
    end

    def host
      @host ||= "http://#{Server.bind}:#{Server.port}"
    end

    def unguarded?
      @unguarded ||= false
    end

    def implementation
      @implementation ||= (
        imp = WatirSpec::Implementation.new
        yield imp if block_given?

        imp
      )
    end

    def implementation=(imp)
      unless imp.is_a?(WatirSpec::Implementation)
        raise TypeError, "expected WatirSpec::Implementation, got #{imp.class}"
      end

      @implementation = imp
    end

    def new_browser
      klass = WatirSpec.implementation.browser_class
      args = Array(WatirSpec.implementation.browser_args).map { |e| Hash === e ? e.dup : e }

      instance = klass.new(*args)
      print_browser_info_once(instance)

      instance
    end

    private

    def print_browser_info_once(instance)
      return if defined?(@did_print_browser_info) && @did_print_browser_info
      @did_print_browser_info = true

      info = []
      info << instance.class.name

      if instance.respond_to?(:driver) && instance.driver.class.name == "Selenium::WebDriver::Driver"
        info << "(webdriver)"
        caps = instance.driver.capabilities

        info << "#{caps.browser_name}"
        info << "#{caps.version}"
      end

      $stderr.puts "running watirspec against #{info.join ' '} using args #{WatirSpec.implementation.browser_args.inspect}"
    rescue
      # ignored
    end

  end # class << WatirSpec
end # WatirSpec

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
watir-6.0.2 lib/watirspec.rb
watir-6.0.1 lib/watirspec.rb
watir-6.0.0 lib/watirspec.rb