Sha256: 6e733e906d76ac786021552c81832e13083ac48463a563b75960b22bb46d9143

Contents?: true

Size: 1.92 KB

Versions: 9

Compression:

Stored size: 1.92 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 File.expand_path(File.join(File.dirname(__FILE__), 'sinatra_test_cases'))
require File.expand_path(File.join(File.dirname(__FILE__), '..', '..', '..', 'agent_helper'))

class SinatraModularTestApp < Sinatra::Base
  configure do
    # display exceptions so we see what's going on
    disable :show_exceptions

    # create a condition (sintra's version of a before_filter) that returns the
    # value that was passed into it.
    set :my_condition do |boolean|
      condition do
        halt 404 unless boolean
      end
    end
  end

  get '/user/login' do
    "please log in"
  end

  # this action will always return 404 because of the condition.
  get '/user/:id', :my_condition => false do |id|
    "Welcome #{id}"
  end

  get '/raise' do
    raise "Uh-oh"
  end

  # check that pass works properly
  condition { pass { halt 418, "I'm a teapot." } }
  get('/pass') { }

  get '/pass' do
    "I'm not a teapot."
  end

  class Error < StandardError; end
  error(Error) { halt 200, 'nothing happened' }
  condition { raise Error }
  get('/error') { }

  condition do
    raise "Boo" if $precondition_already_checked
    $precondition_already_checked = true
  end
  get('/precondition') { 'precondition only happened once' }

  get '/route/:name' do |name|
    # usually this would be a db test or something
    pass if name != 'match'
    'first route'
  end

  get '/route/no_match' do
    'second route'
  end

  before '/filtered' do
    @filtered = true
  end

  get '/filtered' do
    @filtered ? 'got filtered' : 'nope'
  end

  newrelic_ignore '/ignored'
  get '/ignored' do
    "don't trace me bro"
  end

  get /\/regex.*/ do
    "Yeah, regex's!"
  end
end

class SinatraModularTest < MiniTest::Unit::TestCase
  include SinatraTestCases

  def app
    SinatraModularTestApp
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
newrelic_rpm-3.7.0.177 test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.7.0.174.beta test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.9.171 test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.8.168 test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.8.164 test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.7.159 test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.7.159.beta test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.7.152 test/multiverse/suites/sinatra/sinatra_modular_test.rb
newrelic_rpm-3.6.6.147 test/multiverse/suites/sinatra/sinatra_modular_test.rb