test/helper.rb in bmizerany-sinatra-0.9.0.5 vs test/helper.rb in bmizerany-sinatra-0.9.1
- old
+ new
@@ -6,34 +6,53 @@
end
libdir = File.dirname(File.dirname(__FILE__)) + '/lib'
$LOAD_PATH.unshift libdir unless $LOAD_PATH.include?(libdir)
-require 'sinatra/base'
-require 'sinatra/test/unit'
+require 'test/unit'
+require 'sinatra/test'
-module 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
-end
-class Sinatra::Base
- # Allow assertions in request context
- include Test::Unit::Assertions
+ 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) && 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)
@@ -42,9 +61,20 @@
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