Sha256: e532d7d560cd5ee1058fa87817f5e999bc95729ff7dda04a3ae27391c065c8d9

Contents?: true

Size: 1.44 KB

Versions: 27

Compression:

Stored size: 1.44 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

require 'rack'
require 'fake_server'
require 'new_relic/rack/agent_hooks'

require 'json' if RUBY_VERSION >= '1.9'

module NewRelic
  class FakeExternalServer < FakeServer

    STATUS_MESSAGE = "<html><head><title>FakeExternalServer status</title></head>" +
      "<body>The FakeExternalServer is rockin'</body></html>"

    attr_reader :overridden_response_headers

    def initialize( * )
      super
      @requests = []
    end

    attr_reader :requests

    def call(env)
      @requests << env.dup

      req = ::Rack::Request.new(env)
      res = ::Rack::Response.new
      res.status = req.params["status"].to_i if req.params["status"]

      in_transaction('test') do
        res.write STATUS_MESSAGE
      end
      res.finish
    end

    def reset
      @requests.clear
      @overridden_response_headers = {}
    end

    def override_response_headers(headers)
      @overridden_response_headers.merge!(headers)
    end

    def app
      inner_app = NewRelic::Rack::AgentHooks.new(self)
      server = self
      Proc.new do |env|
        result = inner_app.call(env)
        result[1].merge!(server.overridden_response_headers)
        result
      end
    end
  end

  class FakeSecureExternalServer < FakeExternalServer
    def initialize
      super(0)
      self.use_ssl = true
    end
  end
end

Version data entries

27 entries across 27 versions & 2 rubygems

Version Path
newrelic_rpm-3.17.2.327 test/new_relic/fake_external_server.rb
newrelic_rpm-3.17.1.326 test/new_relic/fake_external_server.rb
newrelic_rpm-3.17.0.325 test/new_relic/fake_external_server.rb
newrelic_rpm-3.16.3.323 test/new_relic/fake_external_server.rb
newrelic_rpm-3.16.2.321 test/new_relic/fake_external_server.rb
newrelic_rpm-3.16.1.320 test/new_relic/fake_external_server.rb
newrelic_rpm-3.16.0.318 test/new_relic/fake_external_server.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/new_relic/fake_external_server.rb
newrelic_rpm-3.15.2.317 test/new_relic/fake_external_server.rb
newrelic_rpm-3.15.1.316 test/new_relic/fake_external_server.rb
newrelic_rpm-3.15.0.314 test/new_relic/fake_external_server.rb
newrelic_rpm-3.14.3.313 test/new_relic/fake_external_server.rb
newrelic_rpm-3.14.2.312 test/new_relic/fake_external_server.rb
newrelic_rpm-3.14.1.311 test/new_relic/fake_external_server.rb
newrelic_rpm-3.14.0.305 test/new_relic/fake_external_server.rb
newrelic_rpm-3.13.2.302 test/new_relic/fake_external_server.rb
newrelic_rpm-3.13.1.300 test/new_relic/fake_external_server.rb
newrelic_rpm-3.13.0.299 test/new_relic/fake_external_server.rb
newrelic_rpm-3.12.1.298 test/new_relic/fake_external_server.rb
newrelic_rpm-3.12.0.288 test/new_relic/fake_external_server.rb