Sha256: 52f845280ade6e55cc0f24c8c7bbc9f790303d829f805a8cddbd81a1ee7af055

Contents?: true

Size: 1.79 KB

Versions: 16

Compression:

Stored size: 1.79 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.

if NewRelic::Agent::Instrumentation::RackHelpers.rack_version_supported?

require File.join(File.dirname(__FILE__), 'example_app')
require 'new_relic/rack/browser_monitoring'
require 'new_relic/rack/agent_hooks'
require 'new_relic/rack/error_collector'

class HttpResponseContentTypeTest < Minitest::Test
  include MultiverseHelpers

  setup_and_teardown_agent

  include Rack::Test::Methods

  def app
    Rack::Builder.app do
      use ResponseContentTypeMiddleware
      use NewRelic::Rack::AgentHooks
      run ExampleApp.new
    end
  end

  def test_records_response_content_type_on_analytics_events
    rsp = get '/', { 'override-content-type' => 'application/json' }
    assert_equal('application/json', rsp.headers['Content-Type'])
    assert_equal('application/json', get_last_analytics_event[2][:'response.headers.contentType'])

    rsp = get '/', { 'override-content-type' => 'application/xml' }
    assert_equal('application/xml', rsp.headers['Content-Type'])
    assert_equal('application/xml', get_last_analytics_event[2][:'response.headers.contentType'])
  end

  def test_skips_response_content_type_if_middleware_tracing_disabled
    with_config(:disable_middleware_instrumentation => true) do
      rsp = get '/', { 'override-content-type' => 'application/json' }
      assert_equal('application/json', rsp.headers['Content-Type'])
      assert_nil get_last_analytics_event[2][:'response.headers.contentType']

      rsp = get '/', { 'override-content-type' => 'application/xml' }
      assert_equal('application/xml', rsp.headers['Content-Type'])
      assert_nil get_last_analytics_event[2][:'response.headers.contentType']
    end
  end
end

end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
newrelic_rpm-3.18.1.330 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.18.0.329 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.17.2.327 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.17.1.326 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.17.0.325 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.16.3.323 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.16.2.321 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.16.1.320 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.16.0.318 test/multiverse/suites/rack/response_content_type_test.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.15.2.317 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.15.1.316 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.15.0.314 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.14.3.313 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.14.2.312 test/multiverse/suites/rack/response_content_type_test.rb
newrelic_rpm-3.14.1.311 test/multiverse/suites/rack/response_content_type_test.rb