Sha256: 4f553a5fdb6bcbc08d0dda5d75990cec0b9c7f77d5842559c344f82abfded437

Contents?: true

Size: 1.74 KB

Versions: 2

Compression:

Stored size: 1.74 KB

Contents

unless defined?(INTEGRATION_SPEC_HELPER_LOADED)
  INTEGRATION_SPEC_HELPER_LOADED = true

  require File.dirname(__FILE__) + "/../spec_helper"
  require File.dirname(__FILE__) + "/../hacks/tcp_socket"

  Spec::Runner.configure do |config|
    CLIENT_LIB_ROOT = File.expand_path(File.dirname(__FILE__) + "/../..")
    GATEWAY_ROOT = File.expand_path("#{CLIENT_LIB_ROOT}/../gateway")
    GATEWAY_PID_FILE = "/tmp/gateway_server_#{Braintree::Configuration.port}.pid"
    SPHINX_PID_FILE = "#{GATEWAY_ROOT}/log/searchd.integration.pid"

    gateway_already_started = File.exist?(GATEWAY_PID_FILE)
    sphinx_already_started = File.exist?(SPHINX_PID_FILE)
    config.before(:suite) do
       Dir.chdir(CLIENT_LIB_ROOT) do
        system "rake start_gateway" or raise "rake start_gateway failed" unless gateway_already_started
        system "rake start_sphinx" or raise "rake start_sphinx failed" unless sphinx_already_started
      end
    end

    config.after(:suite) do
      Dir.chdir(CLIENT_LIB_ROOT) do
        system "rake stop_gateway" or raise "rake stop_gateway failed" unless gateway_already_started
        system "rake stop_sphinx" or raise "rake stop_sphinx failed" unless sphinx_already_started
      end
    end
  end

  def start_ssl_server
    web_server_pid_file = File.expand_path(File.join(File.dirname(__FILE__), "..", "httpsd.pid"))

    FileUtils.rm(web_server_pid_file) if File.exist?(web_server_pid_file)
    command = File.expand_path(File.join(File.dirname(__FILE__), "..", "script", "httpsd.rb"))
    `#{command} #{web_server_pid_file}`
    TCPSocket.wait_for_service :host => "127.0.0.1", :port => 8443

    yield

    10.times { unless File.exists?(web_server_pid_file); sleep 1; end }
    Process.kill "INT", File.read(web_server_pid_file).to_i
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
braintree-1.1.3 spec/integration/spec_helper.rb
braintree-1.1.2 spec/integration/spec_helper.rb