Sha256: 806e489754496e2618e60aa33dca98ce348c063ee893b4cb3b62cd831d5207e7

Contents?: true

Size: 1.97 KB

Versions: 4

Compression:

Stored size: 1.97 KB

Contents

begin
  require 'rack'
rescue LoadError
  require 'rubygems'
  require 'rack'
end

libdir = File.dirname(File.dirname(__FILE__)) + '/lib'
$LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)

require 'test/unit'
require 'sinatra/test'

class Sinatra::Base
  # Allow assertions in request context
  include Test::Unit::Assertions
end

class Test::Unit::TestCase
  include Sinatra::Test

  def setup
    Sinatra::Default.set :environment, :test
  end

  # Sets up a Sinatra::Base subclass defined with the block
  # given. Used in setup or individual spec methods to establish
  # the application.
  def mock_app(base=Sinatra::Base, &block)
    @app = Sinatra.new(base, &block)
  end

  def restore_default_options
    Sinatra::Default.set(
      :environment => :development,
      :raise_errors => Proc.new { test? },
      :dump_errors => true,
      :sessions => false,
      :logging => Proc.new { ! test? },
      :methodoverride => true,
      :static => true,
      :run => Proc.new { ! test? }
    )
  end
end

##
# test/spec/mini
# http://pastie.caboo.se/158871
# chris@ozmm.org
#
def describe(*args, &block)
  return super unless (name = args.first.capitalize) && block
  name = "#{name.gsub(/\W/, '')}Test"
  Object.send :const_set, name, Class.new(Test::Unit::TestCase)
  klass = Object.const_get(name)
  klass.class_eval do
    def self.it(name, &block)
      define_method("test_#{name.gsub(/\W/,'_').downcase}", &block)
    end
    def self.xspecify(*args) end
    def self.before(&block) define_method(:setup, &block)    end
    def self.after(&block)  define_method(:teardown, &block) end
  end
  klass.class_eval &block
  klass
end

def describe_option(name, &block)
  klass = describe("Option #{name}", &block)
  klass.before do
    restore_default_options
    @base    = Sinatra.new
    @default = Class.new(Sinatra::Default)
  end
  klass
end

# Do not output warnings for the duration of the block.
def silence_warnings
  $VERBOSE, v = nil, $VERBOSE
  yield
ensure
  $VERBOSE = v
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
bmizerany-sinatra-0.9.1 test/helper.rb
darkhelmet-sinatra-0.9.0.5 test/helper.rb
darkhelmet-sinatra-0.9.1 test/helper.rb
sinatra-sinatra-0.9.1 test/helper.rb