Sha256: 72449647ffffd7e695308493024eb47aaf05ba3cbaf97f48e7513ba9a6a136e3

Contents?: true

Size: 1.95 KB

Versions: 3

Compression:

Stored size: 1.95 KB

Contents

require "test/test_helper"

# Not supported for rails3
if !defined?(Rails::Railtie) && ActiveRecord::Base.connected?
  require "phusion_passenger/spawn_manager"

  class PassengerTest < Test::Unit::TestCase
    def setup
      super
      ActiveRecord::Base.connection.disconnect! # Otherwise AR metric tests fail
      @original = Vanity.playground.connection
      File.unlink "test/myapp/config/vanity.yml" rescue nil
      File.open("test/myapp/config/vanity.yml", "w") do |io|
      io.write YAML.dump({ "production"=>DATABASE })
      end
      @server = PhusionPassenger::SpawnManager.new
      @server.start
      Thread.pass until @server.started?
      app_root = File.expand_path("myapp", File.dirname(__FILE__))
      @app = @server.spawn_application "app_root"=>app_root, "spawn_method"=>"smart"
    end

    def test_reconnect
      # When using AR adapter, we're not responsible to reconnect, and we're going
      # to get the same "connect" (AR connection handler) either way.
      # return if defined?(Vanity::Adapters::ActiveRecordAdapter) && Vanity::Adapters::ActiveRecordAdapter === Vanity.playground.connection

      sleep 0.1
      case @app.listen_socket_type
      when "tcp" ; socket = TCPSocket.new(*@app.listen_socket_name.split(":"))
      when "unix"; socket = UNIXSocket.new(@app.listen_socket_name)
      else fail
      end
      channel = PhusionPassenger::MessageChannel.new(socket)
      request = {"REQUEST_PATH"=>"/", "REQUEST_METHOD"=>"GET", "QUERY_STRING"=>" "}
      channel.write_scalar request.to_a.join("\0")
      response = socket.read.split("\r\n\r\n").last
      socket.close
      conn, obj_id = response.split("\n")
      assert_equal @original.to_s, conn
      assert_not_equal @original.object_id.to_s, obj_id
    end

    def teardown
      super
      @server.cleanup
      @server.stop
      Process.kill('SIGKILL', @app.pid.to_i) # Just in case...KIDS, GET OUT OF THE POOL!
      File.unlink "test/myapp/config/vanity.yml"
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vanity-1.9.3 test/passenger_test.rb
vanity-1.9.2 test/passenger_test.rb
vanity-1.9.1 test/passenger_test.rb