diff --git a/test/base_test.rb b/test/base_test.rb
index b5dc4ad7..14fccf00 100644
--- a/test/base_test.rb
+++ b/test/base_test.rb
@@ -7,9 +7,7 @@ class BaseTest < Test::Unit::TestCase
describe 'Sinatra::Base subclasses' do
class TestApp < Sinatra::Base
- get '/' do
- 'Hello World'
- end
+ get('/') { 'Hello World' }
end
it 'include Rack::Utils' do
@@ -99,9 +97,7 @@ class BaseTest < Test::Unit::TestCase
super
end
- get '/' do
- 'Hello from middleware'
- end
+ get('/') { 'Hello from middleware' }
end
middleware = TestMiddleware.new(app)
@@ -125,9 +121,7 @@ class BaseTest < Test::Unit::TestCase
end
class TestMiddleware < Sinatra::Base
- get '/low-level-forward' do
- app.call(env)
- end
+ get('/low-level-forward') { app.call(env) }
end
it 'can call the downstream app directly and return result' do
diff --git a/test/builder_test.rb b/test/builder_test.rb
index 2450e813..65744d13 100644
--- a/test/builder_test.rb
+++ b/test/builder_test.rb
@@ -5,11 +5,11 @@ require 'builder'
class BuilderTest < Test::Unit::TestCase
def builder_app(options = {}, &block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
set options
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -43,49 +43,45 @@ class BuilderTest < Test::Unit::TestCase
end
it 'renders inline blocks' do
- builder_app {
+ builder_app do
@name = "Frank & Mary"
- builder do |xml|
- xml.couple @name
- end
- }
+ builder { |xml| xml.couple @name }
+ end
assert ok?
assert_equal "Frank & Mary\n", body
end
it 'renders .builder files in views path' do
- builder_app {
+ builder_app do
@name = "Blue"
builder :hello
- }
+ end
assert ok?
assert_equal %(You're my boy, Blue!\n), body
end
it "renders with inline layouts" do
- mock_app {
- layout do
- %(xml.layout { xml << yield })
- end
+ mock_app do
+ layout { %(xml.layout { xml << yield }) }
get('/') { builder %(xml.em 'Hello World') }
- }
+ end
get '/'
assert ok?
assert_equal "\nHello World\n\n", body
end
it "renders with file layouts" do
- builder_app {
+ builder_app do
builder %(xml.em 'Hello World'), :layout => :layout2
- }
+ end
assert ok?
assert_equal "\nHello World\n\n", body
end
it "raises error if template not found" do
- mock_app {
+ mock_app do
get('/') { builder :no_such_template }
- }
+ end
assert_raise(Errno::ENOENT) { get('/') }
end
end
diff --git a/test/coffee_test.rb b/test/coffee_test.rb
index b87d23f5..98dea32b 100644
--- a/test/coffee_test.rb
+++ b/test/coffee_test.rb
@@ -12,11 +12,11 @@ end
class CoffeeTest < Test::Unit::TestCase
def coffee_app(options = {}, &block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
set(options)
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -77,9 +77,7 @@ class CoffeeTest < Test::Unit::TestCase
it "passes default coffee options to the coffee engine" do
mock_app do
set :coffee, :no_wrap => true # default coffee style is :nested
- get '/' do
- coffee "alert 'Aye!'\n"
- end
+ get('/') { coffee "alert 'Aye!'\n" }
end
get '/'
assert ok?
diff --git a/test/creole_test.rb b/test/creole_test.rb
index 6de3ccb1..1a51e2b0 100644
--- a/test/creole_test.rb
+++ b/test/creole_test.rb
@@ -7,7 +7,7 @@ class CreoleTest < Test::Unit::TestCase
def creole_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -40,7 +40,9 @@ class CreoleTest < Test::Unit::TestCase
end
it "renders with file layouts" do
- creole_app { creole 'Hello World', :layout => :layout2, :layout_engine => :erb }
+ creole_app do
+ creole 'Hello World', :layout => :layout2, :layout_engine => :erb
+ end
assert ok?
assert_body "ERB Layout!\n
Hello World
"
end
@@ -49,9 +51,7 @@ class CreoleTest < Test::Unit::TestCase
mock_app do
template(:inner) { "hi" }
template(:outer) { "<%= creole :inner %>" }
- get '/' do
- erb :outer
- end
+ get('/') { erb :outer }
end
get '/'
diff --git a/test/delegator_test.rb b/test/delegator_test.rb
index 25eb6e8a..0566fbad 100644
--- a/test/delegator_test.rb
+++ b/test/delegator_test.rb
@@ -63,9 +63,7 @@ class DelegatorTest < Test::Unit::TestCase
%w[get put post delete options patch].each do |verb|
it "delegates #{verb} correctly" do
delegation_app do
- send verb, '/hello' do
- 'Hello World'
- end
+ send(verb, '/hello') { 'Hello World' }
end
request = Rack::MockRequest.new(@app)
diff --git a/test/erb_test.rb b/test/erb_test.rb
index c0b5cbad..75d932de 100644
--- a/test/erb_test.rb
+++ b/test/erb_test.rb
@@ -11,10 +11,10 @@ class ERBTest < Test::Unit::TestCase
end
def erb_app(&block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -35,57 +35,51 @@ class ERBTest < Test::Unit::TestCase
end
it 'takes a :locals option' do
- erb_app {
+ erb_app do
locals = {:foo => 'Bar'}
erb '<%= foo %>', :locals => locals
- }
+ end
assert ok?
assert_equal 'Bar', body
end
it "renders with inline layouts" do
- mock_app {
+ mock_app do
layout { 'THIS. IS. <%= yield.upcase %>!' }
get('/') { erb 'Sparta' }
- }
+ end
get '/'
assert ok?
assert_equal 'THIS. IS. SPARTA!', body
end
it "renders with file layouts" do
- erb_app {
- erb 'Hello World', :layout => :layout2
- }
+ erb_app { erb 'Hello World', :layout => :layout2 }
assert ok?
assert_body "ERB Layout!\nHello World"
end
it "renders erb with blocks" do
- mock_app {
+ mock_app do
def container
@_out_buf << "THIS."
yield
@_out_buf << "SPARTA!"
end
def is; "IS." end
- get '/' do
- erb '<% container do %> <%= is %> <% end %>'
- end
- }
+ get('/') { erb '<% container do %> <%= is %> <% end %>' }
+ end
get '/'
assert ok?
assert_equal 'THIS. IS. SPARTA!', body
end
it "can be used in a nested fashion for partials and whatnot" do
- mock_app {
+ mock_app do
template(:inner) { "<%= 'hi' %>" }
template(:outer) { "<%= erb :inner %>" }
- get '/' do
- erb :outer
- end
- }
+ get('/') { erb :outer }
+ end
get '/'
assert ok?
diff --git a/test/extensions_test.rb b/test/extensions_test.rb
index 739c33e5..a423f8f6 100644
--- a/test/extensions_test.rb
+++ b/test/extensions_test.rb
@@ -42,9 +42,7 @@ class ExtensionsTest < Test::Unit::TestCase
end
it 'allows extending by passing a block' do
- Sinatra::Base.register {
- def im_in_ur_anonymous_module; end
- }
+ Sinatra::Base.register { def im_in_ur_anonymous_module; end }
assert Sinatra::Base.respond_to?(:im_in_ur_anonymous_module)
end
diff --git a/test/filter_test.rb b/test/filter_test.rb
index 534fd5ff..f3db9826 100644
--- a/test/filter_test.rb
+++ b/test/filter_test.rb
@@ -5,14 +5,14 @@ class BeforeFilterTest < Test::Unit::TestCase
count = 0
mock_app do
get('/') { 'Hello World' }
- before {
+ before do
assert_equal 0, count
count = 1
- }
- before {
+ end
+ before do
assert_equal 1, count
count = 2
- }
+ end
end
get '/'
@@ -22,11 +22,11 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "can modify the request" do
- mock_app {
+ mock_app do
get('/foo') { 'foo' }
get('/bar') { 'bar' }
before { request.path_info = '/bar' }
- }
+ end
get '/foo'
assert ok?
@@ -34,10 +34,10 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "can modify instance variables available to routes" do
- mock_app {
+ mock_app do
before { @foo = 'bar' }
get('/foo') { @foo }
- }
+ end
get '/foo'
assert ok?
@@ -45,13 +45,13 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "allows redirects" do
- mock_app {
+ mock_app do
before { redirect '/bar' }
get('/foo') do
fail 'before block should have halted processing'
'ORLY?!'
end
- }
+ end
get '/foo'
assert redirect?
@@ -60,13 +60,13 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "does not modify the response with its return value" do
- mock_app {
+ mock_app do
before { 'Hello World!' }
- get '/foo' do
+ get('/foo') do
assert_equal [], response.body
'cool'
end
- }
+ end
get '/foo'
assert ok?
@@ -74,12 +74,12 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "does modify the response with halt" do
- mock_app {
+ mock_app do
before { halt 302, 'Hi' }
get '/foo' do
"should not happen"
end
- }
+ end
get '/foo'
assert_equal 302, response.status
@@ -87,10 +87,10 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "gives you access to params" do
- mock_app {
+ mock_app do
before { @foo = params['foo'] }
get('/foo') { @foo }
- }
+ end
get '/foo?foo=cool'
assert ok?
@@ -98,10 +98,10 @@ class BeforeFilterTest < Test::Unit::TestCase
end
it "properly unescapes parameters" do
- mock_app {
+ mock_app do
before { @foo = params['foo'] }
get('/foo') { @foo }
- }
+ end
get '/foo?foo=bar%3Abaz%2Fbend'
assert ok?
@@ -112,9 +112,7 @@ class BeforeFilterTest < Test::Unit::TestCase
base = Class.new(Sinatra::Base)
base.before { @foo = 'hello from superclass' }
- mock_app(base) {
- get('/foo') { @foo }
- }
+ mock_app(base) { get('/foo') { @foo } }
get '/foo'
assert_equal 'hello from superclass', body
@@ -122,11 +120,11 @@ class BeforeFilterTest < Test::Unit::TestCase
it 'does not run before filter when serving static files' do
ran_filter = false
- mock_app {
+ mock_app do
before { ran_filter = true }
set :static, true
set :public_folder, File.dirname(__FILE__)
- }
+ end
get "/#{File.basename(__FILE__)}"
assert ok?
assert_equal File.read(__FILE__), body
@@ -176,14 +174,14 @@ class AfterFilterTest < Test::Unit::TestCase
count = 0
mock_app do
get('/') { 'Hello World' }
- after {
+ after do
assert_equal 0, count
count = 1
- }
- after {
+ end
+ after do
assert_equal 1, count
count = 2
- }
+ end
end
get '/'
@@ -193,10 +191,10 @@ class AfterFilterTest < Test::Unit::TestCase
end
it "allows redirects" do
- mock_app {
+ mock_app do
get('/foo') { 'ORLY' }
after { redirect '/bar' }
- }
+ end
get '/foo'
assert redirect?
@@ -205,10 +203,10 @@ class AfterFilterTest < Test::Unit::TestCase
end
it "does not modify the response with its return value" do
- mock_app {
+ mock_app do
get('/foo') { 'cool' }
after { 'Hello World!' }
- }
+ end
get '/foo'
assert ok?
@@ -216,12 +214,12 @@ class AfterFilterTest < Test::Unit::TestCase
end
it "does modify the response with halt" do
- mock_app {
+ mock_app do
get '/foo' do
"should not be returned"
end
after { halt 302, 'Hi' }
- }
+ end
get '/foo'
assert_equal 302, response.status
@@ -245,11 +243,11 @@ class AfterFilterTest < Test::Unit::TestCase
it 'does not run after filter when serving static files' do
ran_filter = false
- mock_app {
+ mock_app do
after { ran_filter = true }
set :static, true
set :public_folder, File.dirname(__FILE__)
- }
+ end
get "/#{File.basename(__FILE__)}"
assert ok?
assert_equal File.read(__FILE__), body
@@ -308,9 +306,9 @@ class AfterFilterTest < Test::Unit::TestCase
before(:host_name => 'example.com') { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_HOST' => 'example.org' }
+ get('/', {}, { 'HTTP_HOST' => 'example.org' })
assert !ran
- get '/', {}, { 'HTTP_HOST' => 'example.com' }
+ get('/', {}, { 'HTTP_HOST' => 'example.com' })
assert ran
end
@@ -320,11 +318,11 @@ class AfterFilterTest < Test::Unit::TestCase
before('/foo', :host_name => 'example.com') { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_HOST' => 'example.com' }
+ get('/', {}, { 'HTTP_HOST' => 'example.com' })
assert !ran
- get '/foo', {}, { 'HTTP_HOST' => 'example.org' }
+ get('/foo', {}, { 'HTTP_HOST' => 'example.org' })
assert !ran
- get '/foo', {}, { 'HTTP_HOST' => 'example.com' }
+ get('/foo', {}, { 'HTTP_HOST' => 'example.com' })
assert ran
end
@@ -334,9 +332,9 @@ class AfterFilterTest < Test::Unit::TestCase
after(:host_name => 'example.com') { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_HOST' => 'example.org' }
+ get('/', {}, { 'HTTP_HOST' => 'example.org' })
assert !ran
- get '/', {}, { 'HTTP_HOST' => 'example.com' }
+ get('/', {}, { 'HTTP_HOST' => 'example.com' })
assert ran
end
@@ -346,11 +344,11 @@ class AfterFilterTest < Test::Unit::TestCase
after('/foo', :host_name => 'example.com') { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_HOST' => 'example.com' }
+ get('/', {}, { 'HTTP_HOST' => 'example.com' })
assert !ran
- get '/foo', {}, { 'HTTP_HOST' => 'example.org' }
+ get('/foo', {}, { 'HTTP_HOST' => 'example.org' })
assert !ran
- get '/foo', {}, { 'HTTP_HOST' => 'example.com' }
+ get('/foo', {}, { 'HTTP_HOST' => 'example.com' })
assert ran
end
@@ -360,9 +358,9 @@ class AfterFilterTest < Test::Unit::TestCase
before(:user_agent => /foo/) { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_USER_AGENT' => 'bar' }
+ get('/', {}, { 'HTTP_USER_AGENT' => 'bar' })
assert !ran
- get '/', {}, { 'HTTP_USER_AGENT' => 'foo' }
+ get('/', {}, { 'HTTP_USER_AGENT' => 'foo' })
assert ran
end
@@ -372,11 +370,11 @@ class AfterFilterTest < Test::Unit::TestCase
before('/foo', :user_agent => /foo/) { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_USER_AGENT' => 'foo' }
+ get('/', {}, { 'HTTP_USER_AGENT' => 'foo' })
assert !ran
- get '/foo', {}, { 'HTTP_USER_AGENT' => 'bar' }
+ get('/foo', {}, { 'HTTP_USER_AGENT' => 'bar' })
assert !ran
- get '/foo', {}, { 'HTTP_USER_AGENT' => 'foo' }
+ get('/foo', {}, { 'HTTP_USER_AGENT' => 'foo' })
assert ran
end
@@ -406,9 +404,9 @@ class AfterFilterTest < Test::Unit::TestCase
after(:user_agent => /foo/) { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_USER_AGENT' => 'bar' }
+ get('/', {}, { 'HTTP_USER_AGENT' => 'bar' })
assert !ran
- get '/', {}, { 'HTTP_USER_AGENT' => 'foo' }
+ get('/', {}, { 'HTTP_USER_AGENT' => 'foo' })
assert ran
end
@@ -418,11 +416,11 @@ class AfterFilterTest < Test::Unit::TestCase
after('/foo', :user_agent => /foo/) { ran = true }
get('/') { 'welcome' }
end
- get '/', {}, { 'HTTP_USER_AGENT' => 'foo' }
+ get('/', {}, { 'HTTP_USER_AGENT' => 'foo' })
assert !ran
- get '/foo', {}, { 'HTTP_USER_AGENT' => 'bar' }
+ get('/foo', {}, { 'HTTP_USER_AGENT' => 'bar' })
assert !ran
- get '/foo', {}, { 'HTTP_USER_AGENT' => 'foo' }
+ get('/foo', {}, { 'HTTP_USER_AGENT' => 'foo' })
assert ran
end
@@ -433,7 +431,7 @@ class AfterFilterTest < Test::Unit::TestCase
get('/') { @type }
end
- get '/', {}, { 'HTTP_ACCEPT' => '*' }
+ get('/', {}, { 'HTTP_ACCEPT' => '*' })
assert_body 'txt'
end
end
diff --git a/test/haml_test.rb b/test/haml_test.rb
index e2779d2a..bc2ddb25 100644
--- a/test/haml_test.rb
+++ b/test/haml_test.rb
@@ -5,10 +5,10 @@ require 'haml'
class HAMLTest < Test::Unit::TestCase
def haml_app(&block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -25,35 +25,29 @@ class HAMLTest < Test::Unit::TestCase
end
it "renders with inline layouts" do
- mock_app {
+ mock_app do
layout { %q(%h1= 'THIS. IS. ' + yield.upcase) }
get('/') { haml '%em Sparta' }
- }
+ end
get '/'
assert ok?
assert_equal "THIS. IS. SPARTA
\n", body
end
it "renders with file layouts" do
- haml_app {
- haml 'Hello World', :layout => :layout2
- }
+ haml_app { haml 'Hello World', :layout => :layout2 }
assert ok?
assert_equal "HAML Layout!
\nHello World
\n", body
end
it "raises error if template not found" do
- mock_app {
- get('/') { haml :no_such_template }
- }
+ mock_app { get('/') { haml :no_such_template } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "passes HAML options to the Haml engine" do
mock_app {
- get '/' do
- haml "!!!\n%h1 Hello World", :format => :html5
- end
+ get('/') { haml "!!!\n%h1 Hello World", :format => :html5 }
}
get '/'
assert ok?
@@ -61,27 +55,23 @@ class HAMLTest < Test::Unit::TestCase
end
it "passes default HAML options to the Haml engine" do
- mock_app {
+ mock_app do
set :haml, {:format => :html5}
- get '/' do
- haml "!!!\n%h1 Hello World"
- end
- }
+ get('/') { haml "!!!\n%h1 Hello World" }
+ end
get '/'
assert ok?
assert_equal "\nHello World
\n", body
end
it "merges the default HAML options with the overrides and passes them to the Haml engine" do
- mock_app {
+ mock_app do
set :haml, {:format => :html5, :attr_wrapper => '"'} # default HAML attr are
- get '/' do
- haml "!!!\n%h1{:class => :header} Hello World"
- end
- get '/html4' do
+ get('/') { haml "!!!\n%h1{:class => :header} Hello World" }
+ get('/html4') {
haml "!!!\n%h1{:class => 'header'} Hello World", :format => :html4
- end
- }
+ }
+ end
get '/'
assert ok?
assert_equal "\n\n", body
diff --git a/test/helpers_test.rb b/test/helpers_test.rb
index f0bd7de1..1c789ce7 100644
--- a/test/helpers_test.rb
+++ b/test/helpers_test.rb
@@ -10,7 +10,7 @@ class HelpersTest < Test::Unit::TestCase
code += 2 if [204, 205, 304].include? code
block ||= proc { }
mock_app do
- get '/' do
+ get('/') do
status code
instance_eval(&block).inspect
end
@@ -119,22 +119,16 @@ class HelpersTest < Test::Unit::TestCase
describe 'body' do
it 'takes a block for defered body generation' do
- mock_app {
- get '/' do
- body { 'Hello World' }
- end
- }
+ mock_app do
+ get('/') { body { 'Hello World' } }
+ end
get '/'
assert_equal 'Hello World', body
end
it 'takes a String, Array, or other object responding to #each' do
- mock_app {
- get '/' do
- body 'Hello World'
- end
- }
+ mock_app { get('/') { body 'Hello World' } }
get '/'
assert_equal 'Hello World', body
@@ -143,12 +137,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'redirect' do
it 'uses a 302 when only a path is given' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
redirect '/foo'
fail 'redirect should halt'
end
- }
+ end
get '/'
assert_equal 302, status
@@ -157,12 +151,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'uses the code given when specified' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
redirect '/foo', 301
fail 'redirect should halt'
end
- }
+ end
get '/'
assert_equal 301, status
@@ -171,11 +165,7 @@ class HelpersTest < Test::Unit::TestCase
end
it 'redirects back to request.referer when passed back' do
- mock_app {
- get '/try_redirect' do
- redirect back
- end
- }
+ mock_app { get('/try_redirect') { redirect back } }
request = Rack::MockRequest.new(@app)
response = request.get('/try_redirect', 'HTTP_REFERER' => '/foo')
@@ -184,11 +174,7 @@ class HelpersTest < Test::Unit::TestCase
end
it 'redirects using a non-standard HTTP port' do
- mock_app {
- get '/' do
- redirect '/foo'
- end
- }
+ mock_app { get('/') { redirect '/foo' } }
request = Rack::MockRequest.new(@app)
response = request.get('/', 'SERVER_PORT' => '81')
@@ -196,11 +182,7 @@ class HelpersTest < Test::Unit::TestCase
end
it 'redirects using a non-standard HTTPS port' do
- mock_app {
- get '/' do
- redirect '/foo'
- end
- }
+ mock_app { get('/') { redirect '/foo' } }
request = Rack::MockRequest.new(@app)
response = request.get('/', 'SERVER_PORT' => '444')
@@ -209,7 +191,7 @@ class HelpersTest < Test::Unit::TestCase
it 'uses 303 for post requests if request is HTTP 1.1' do
mock_app { post('/') { redirect '/'} }
- post '/', {}, 'HTTP_VERSION' => 'HTTP/1.1'
+ post('/', {}, 'HTTP_VERSION' => 'HTTP/1.1')
assert_equal 303, status
assert_equal '', body
assert_equal 'http://example.org/', response['Location']
@@ -217,18 +199,14 @@ class HelpersTest < Test::Unit::TestCase
it 'uses 302 for post requests if request is HTTP 1.0' do
mock_app { post('/') { redirect '/'} }
- post '/', {}, 'HTTP_VERSION' => 'HTTP/1.0'
+ post('/', {}, 'HTTP_VERSION' => 'HTTP/1.0')
assert_equal 302, status
assert_equal '', body
assert_equal 'http://example.org/', response['Location']
end
it 'works behind a reverse proxy' do
- mock_app do
- get '/' do
- redirect '/foo'
- end
- end
+ mock_app { get('/') { redirect '/foo' } }
request = Rack::MockRequest.new(@app)
response = request.get('/', 'HTTP_X_FORWARDED_HOST' => 'example.com', 'SERVER_PORT' => '8080')
@@ -237,7 +215,7 @@ class HelpersTest < Test::Unit::TestCase
it 'accepts absolute URIs' do
mock_app do
- get '/' do
+ get('/') do
redirect 'http://google.com'
fail 'redirect should halt'
end
@@ -251,7 +229,7 @@ class HelpersTest < Test::Unit::TestCase
it 'accepts absolute URIs with a different schema' do
mock_app do
- get '/' do
+ get('/') do
redirect 'mailto:jsmith@example.com'
fail 'redirect should halt'
end
@@ -266,12 +244,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'error' do
it 'sets a status code and halts' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
error 501
fail 'error should halt'
end
- }
+ end
get '/'
assert_equal 501, status
@@ -279,12 +257,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'takes an optional body' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
error 501, 'FAIL'
fail 'error should halt'
end
- }
+ end
get '/'
assert_equal 501, status
@@ -292,12 +270,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'uses a 500 status code when first argument is a body' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
error 'FAIL'
fail 'error should halt'
end
- }
+ end
get '/'
assert_equal 500, status
@@ -307,12 +285,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'not_found' do
it 'halts with a 404 status' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
not_found
fail 'not_found should halt'
end
- }
+ end
get '/'
assert_equal 404, status
@@ -320,12 +298,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'does not set a X-Cascade header' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
not_found
fail 'not_found should halt'
end
- }
+ end
get '/'
assert_equal 404, status
@@ -335,12 +313,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'headers' do
it 'sets headers on the response object when given a Hash' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
headers 'X-Foo' => 'bar', 'X-Baz' => 'bling'
'kthx'
end
- }
+ end
get '/'
assert ok?
@@ -350,12 +328,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'returns the response headers hash when no hash provided' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
headers['X-Foo'] = 'bar'
'kthx'
end
- }
+ end
get '/'
assert ok?
@@ -365,30 +343,30 @@ class HelpersTest < Test::Unit::TestCase
describe 'session' do
it 'uses the existing rack.session' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
session[:foo]
end
- }
+ end
- get '/', {}, { 'rack.session' => { :foo => 'bar' } }
+ get('/', {}, { 'rack.session' => { :foo => 'bar' } })
assert_equal 'bar', body
end
it 'creates a new session when none provided' do
- mock_app {
+ mock_app do
enable :sessions
- get '/' do
+ get('/') do
assert session[:foo].nil?
session[:foo] = 'bar'
redirect '/hi'
end
- get '/hi' do
+ get('/hi') do
"hi #{session[:foo]}"
end
- }
+ end
get '/'
follow_redirect!
@@ -398,7 +376,8 @@ class HelpersTest < Test::Unit::TestCase
it 'inserts session middleware' do
mock_app do
enable :sessions
- get '/' do
+
+ get('/') do
assert env['rack.session']
assert env['rack.session.options']
'ok'
@@ -412,7 +391,8 @@ class HelpersTest < Test::Unit::TestCase
it 'sets a default session secret' do
mock_app do
enable :sessions
- get '/' do
+
+ get('/') do
secret = env['rack.session.options'][:secret]
assert secret
assert_equal secret, settings.session_secret
@@ -428,7 +408,8 @@ class HelpersTest < Test::Unit::TestCase
mock_app do
enable :sessions
disable :session_secret
- get '/' do
+
+ get('/') do
assert !env['rack.session.options'].include?(:session_secret)
'ok'
end
@@ -441,7 +422,8 @@ class HelpersTest < Test::Unit::TestCase
it 'accepts an options hash' do
mock_app do
set :sessions, :foo => :bar
- get '/' do
+
+ get('/') do
assert_equal env['rack.session.options'][:foo], :bar
'ok'
end
@@ -476,13 +458,13 @@ class HelpersTest < Test::Unit::TestCase
end
test 'Base.mime_type registers mime type' do
- mock_app {
+ mock_app do
mime_type :foo, 'application/foo'
- get '/' do
+ get('/') do
"foo is #{mime_type(:foo)}"
end
- }
+ end
get '/'
assert_equal 'foo is application/foo', body
@@ -490,12 +472,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'content_type' do
it 'sets the Content-Type header' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
content_type 'text/plain'
'Hello World'
end
- }
+ end
get '/'
assert_equal 'text/plain;charset=utf-8', response['Content-Type']
@@ -503,12 +485,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'takes media type parameters (like charset=)' do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
content_type 'text/html', :charset => 'latin1'
"Hello, World
"
end
- }
+ end
get '/'
assert ok?
@@ -518,12 +500,12 @@ class HelpersTest < Test::Unit::TestCase
it "looks up symbols in Rack's mime types dictionary" do
Rack::Mime::MIME_TYPES['.foo'] = 'application/foo'
- mock_app {
- get '/foo.xml' do
+ mock_app do
+ get('/foo.xml') do
content_type :foo
"I AM FOO"
end
- }
+ end
get '/foo.xml'
assert ok?
@@ -532,12 +514,12 @@ class HelpersTest < Test::Unit::TestCase
end
it 'fails when no mime type is registered for the argument provided' do
- mock_app {
- get '/foo.xml' do
+ mock_app do
+ get('/foo.xml') do
content_type :bizzle
"I AM FOO"
end
- }
+ end
assert_raise(RuntimeError) { get '/foo.xml' }
end
@@ -549,7 +531,7 @@ class HelpersTest < Test::Unit::TestCase
mime_type :bar, 'application/bar'
mime_type :baz, 'application/baz'
add_charset << mime_type(:baz)
- get '/' do
+ get('/') do
assert_equal content_type(:txt), 'text/plain;charset=utf-8'
assert_equal content_type(:css), 'text/css;charset=utf-8'
assert_equal content_type(:html), 'text/html;charset=utf-8'
@@ -565,28 +547,31 @@ class HelpersTest < Test::Unit::TestCase
"done"
end
end
+
get '/'
assert tests_ran
end
it 'handles already present params' do
mock_app do
- get '/' do
+ get('/') do
content_type 'foo/bar;level=1', :charset => 'utf-8'
'ok'
end
end
+
get '/'
assert_equal 'foo/bar;level=1, charset=utf-8', response['Content-Type']
end
it 'does not add charset if present' do
mock_app do
- get '/' do
+ get('/') do
content_type 'text/plain;charset=utf-16'
'ok'
end
end
+
get '/'
assert_equal 'text/plain;charset=utf-16', response['Content-Type']
end
@@ -594,12 +579,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'attachment' do
def attachment_app(filename=nil)
- mock_app {
- get '/attachment' do
+ mock_app do
+ get('/attachment') do
attachment filename
response.write("")
end
- }
+ end
end
it 'sets the Content-Type response header' do
@@ -618,12 +603,13 @@ class HelpersTest < Test::Unit::TestCase
it 'sets the Content-Type response header without extname' do
mock_app do
- get '/attachment' do
+ get('/attachment') do
content_type :atom
attachment 'test.xml'
response.write("")
end
end
+
get '/attachment'
assert_equal 'application/atom+xml', response['Content-Type']
assert_equal '', body
@@ -697,9 +683,7 @@ class HelpersTest < Test::Unit::TestCase
it "returns a 404 when not found" do
mock_app {
- get '/' do
- send_file 'this-file-does-not-exist.txt'
- end
+ get('/') { send_file 'this-file-does-not-exist.txt' }
}
get '/'
assert not_found?
@@ -746,7 +730,7 @@ class HelpersTest < Test::Unit::TestCase
it "does not override Content-Type if already set and no explicit type is given" do
path = @file
mock_app do
- get '/' do
+ get('/') do
content_type :png
send_file path
end
@@ -758,7 +742,7 @@ class HelpersTest < Test::Unit::TestCase
it "does override Content-Type even if already set, if explicit type is given" do
path = @file
mock_app do
- get '/' do
+ get('/') do
content_type :png
send_file path, :type => :gif
end
@@ -771,12 +755,12 @@ class HelpersTest < Test::Unit::TestCase
describe 'cache_control' do
setup do
mock_app do
- get '/foo' do
+ get('/foo') do
cache_control :public, :no_cache, :max_age => 60.0
'Hello World'
end
- get '/bar' do
+ get('/bar') do
cache_control :public, :no_cache
'Hello World'
end
@@ -797,20 +781,16 @@ class HelpersTest < Test::Unit::TestCase
describe 'expires' do
setup do
mock_app do
- get '/foo' do
+ get('/foo') do
expires 60, :public, :no_cache
'Hello World'
end
- get '/bar' do
- expires Time.now
- end
+ get('/bar') { expires Time.now }
- get '/baz' do
- expires Time.at(0)
- end
+ get('/baz') { expires Time.at(0) }
- get '/blah' do
+ get('/blah') do
obj = Object.new
def obj.method_missing(*a, &b) 60.send(*a, &b) end
def obj.is_a?(thing) 60.is_a?(thing) end
@@ -818,9 +798,7 @@ class HelpersTest < Test::Unit::TestCase
'Hello World'
end
- get '/boom' do
- expires '9999'
- end
+ get('/boom') { expires '9999' }
end
end
@@ -856,9 +834,7 @@ class HelpersTest < Test::Unit::TestCase
describe 'last_modified' do
it 'ignores nil' do
- mock_app do
- get '/' do last_modified nil; 200; end
- end
+ mock_app { get('/') { last_modified nil; 200; } }
get '/'
assert ! response['Last-Modified']
@@ -866,7 +842,7 @@ class HelpersTest < Test::Unit::TestCase
it 'does not change a status other than 200' do
mock_app do
- get '/' do
+ get('/') do
status 299
last_modified Time.at(0)
'ok'
@@ -883,7 +859,7 @@ class HelpersTest < Test::Unit::TestCase
describe "with #{last_modified_time.class.name}" do
setup do
mock_app do
- get '/' do
+ get('/') do
last_modified last_modified_time
'Boo!'
end
@@ -910,12 +886,12 @@ class HelpersTest < Test::Unit::TestCase
context "when there's an invalid If-Modified-Since header" do
it 'sets the Last-Modified header to a valid RFC 2616 date value' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'a really weird date' }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'a really weird date' })
assert_equal @last_modified_time.httpdate, response['Last-Modified']
end
it 'conditional GET misses and returns a body' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'a really weird date' }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'a really weird date' })
assert_equal 200, status
assert_equal 'Boo!', body
end
@@ -923,28 +899,28 @@ class HelpersTest < Test::Unit::TestCase
context "when the resource has been modified since the If-Modified-Since header date" do
it 'sets the Last-Modified header to a valid RFC 2616 date value' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time - 1).httpdate }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time - 1).httpdate })
assert_equal @last_modified_time.httpdate, response['Last-Modified']
end
it 'conditional GET misses and returns a body' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time - 1).httpdate }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time - 1).httpdate })
assert_equal 200, status
assert_equal 'Boo!', body
end
it 'does not rely on string comparison' do
mock_app do
- get '/compare' do
+ get('/compare') do
last_modified "Mon, 18 Oct 2010 20:57:11 GMT"
"foo"
end
end
- get '/compare', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'Sun, 26 Sep 2010 23:43:52 GMT' }
+ get('/compare', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'Sun, 26 Sep 2010 23:43:52 GMT' })
assert_equal 200, status
assert_equal 'foo', body
- get '/compare', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'Sun, 26 Sep 2030 23:43:52 GMT' }
+ get('/compare', {}, { 'HTTP_IF_MODIFIED_SINCE' => 'Sun, 26 Sep 2030 23:43:52 GMT' })
assert_equal 304, status
assert_equal '', body
end
@@ -952,12 +928,12 @@ class HelpersTest < Test::Unit::TestCase
context "when the resource has been modified on the exact If-Modified-Since header date" do
it 'sets the Last-Modified header to a valid RFC 2616 date value' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => @last_modified_time.httpdate }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => @last_modified_time.httpdate })
assert_equal @last_modified_time.httpdate, response['Last-Modified']
end
it 'conditional GET matches and halts' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => @last_modified_time.httpdate }
+ get( '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => @last_modified_time.httpdate })
assert_equal 304, status
assert_equal '', body
end
@@ -965,12 +941,12 @@ class HelpersTest < Test::Unit::TestCase
context "when the resource hasn't been modified since the If-Modified-Since header date" do
it 'sets the Last-Modified header to a valid RFC 2616 date value' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time + 1).httpdate }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time + 1).httpdate })
assert_equal @last_modified_time.httpdate, response['Last-Modified']
end
it 'conditional GET matches and halts' do
- get '/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time + 1).httpdate }
+ get('/', {}, { 'HTTP_IF_MODIFIED_SINCE' => (@last_modified_time + 1).httpdate })
assert_equal 304, status
assert_equal '', body
end
@@ -978,13 +954,13 @@ class HelpersTest < Test::Unit::TestCase
context "If-Unmodified-Since" do
it 'results in 200 if resource has not been modified' do
- get '/', {}, { 'HTTP_IF_UNMODIFIED_SINCE' => 'Sun, 26 Sep 2030 23:43:52 GMT' }
+ get('/', {}, { 'HTTP_IF_UNMODIFIED_SINCE' => 'Sun, 26 Sep 2030 23:43:52 GMT' })
assert_equal 200, status
assert_equal 'Boo!', body
end
it 'results in 412 if resource has been modified' do
- get '/', {}, { 'HTTP_IF_UNMODIFIED_SINCE' => Time.at(0).httpdate }
+ get('/', {}, { 'HTTP_IF_UNMODIFIED_SINCE' => Time.at(0).httpdate })
assert_equal 412, status
assert_equal '', body
end
@@ -997,13 +973,13 @@ class HelpersTest < Test::Unit::TestCase
context "safe requests" do
it 'returns 200 for normal requests' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
end
- get('/')
+ get '/'
assert_status 200
assert_body 'ok'
end
@@ -1011,7 +987,7 @@ class HelpersTest < Test::Unit::TestCase
context "If-None-Match" do
it 'returns 304 when If-None-Match is *' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1024,7 +1000,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-None-Match is * for new resources' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo', :new_resource => true
'ok'
end
@@ -1037,7 +1013,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 304 when If-None-Match is * for existing resources' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo', :new_resource => false
'ok'
end
@@ -1050,7 +1026,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 304 when If-None-Match is the etag' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1063,7 +1039,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 304 when If-None-Match includes the etag' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1076,7 +1052,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-None-Match does not include the etag' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1089,7 +1065,7 @@ class HelpersTest < Test::Unit::TestCase
it 'ignores If-Modified-Since if If-None-Match does not match' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
last_modified Time.at(0)
'ok'
@@ -1103,7 +1079,7 @@ class HelpersTest < Test::Unit::TestCase
it 'does not change a status code other than 2xx or 304' do
mock_app do
- get '/' do
+ get('/') do
status 499
etag 'foo'
'ok'
@@ -1117,7 +1093,7 @@ class HelpersTest < Test::Unit::TestCase
it 'does change 2xx status codes' do
mock_app do
- get '/' do
+ get('/') do
status 299
etag 'foo'
'ok'
@@ -1131,7 +1107,7 @@ class HelpersTest < Test::Unit::TestCase
it 'does not send a body on 304 status codes' do
mock_app do
- get '/' do
+ get('/') do
status 304
etag 'foo'
'ok'
@@ -1147,7 +1123,7 @@ class HelpersTest < Test::Unit::TestCase
context "If-Match" do
it 'returns 200 when If-Match is the etag' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1160,7 +1136,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match includes the etag' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1173,7 +1149,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match is *' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1186,7 +1162,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match is * for new resources' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo', :new_resource => true
'ok'
end
@@ -1199,7 +1175,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match is * for existing resources' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo', :new_resource => false
'ok'
end
@@ -1212,7 +1188,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match does not include the etag' do
mock_app do
- get '/' do
+ get('/') do
etag 'foo'
'ok'
end
@@ -1228,13 +1204,13 @@ class HelpersTest < Test::Unit::TestCase
context "idempotent requests" do
it 'returns 200 for normal requests' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
end
- put('/')
+ put '/'
assert_status 200
assert_body 'ok'
end
@@ -1242,7 +1218,7 @@ class HelpersTest < Test::Unit::TestCase
context "If-None-Match" do
it 'returns 412 when If-None-Match is *' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1255,7 +1231,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-None-Match is * for new resources' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo', :new_resource => true
'ok'
end
@@ -1268,7 +1244,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-None-Match is * for existing resources' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo', :new_resource => false
'ok'
end
@@ -1294,7 +1270,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-None-Match includes the etag' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1307,7 +1283,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-None-Match does not include the etag' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1320,7 +1296,7 @@ class HelpersTest < Test::Unit::TestCase
it 'ignores If-Modified-Since if If-None-Match does not match' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
last_modified Time.at(0)
'ok'
@@ -1336,7 +1312,7 @@ class HelpersTest < Test::Unit::TestCase
context "If-Match" do
it 'returns 200 when If-Match is the etag' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1349,7 +1325,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match includes the etag' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1362,7 +1338,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match is *' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1375,7 +1351,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match is * for new resources' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo', :new_resource => true
'ok'
end
@@ -1388,7 +1364,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match is * for existing resources' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo', :new_resource => false
'ok'
end
@@ -1401,7 +1377,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match does not include the etag' do
mock_app do
- put '/' do
+ put('/') do
etag 'foo'
'ok'
end
@@ -1417,7 +1393,7 @@ class HelpersTest < Test::Unit::TestCase
context "post requests" do
it 'returns 200 for normal requests' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1431,7 +1407,7 @@ class HelpersTest < Test::Unit::TestCase
context "If-None-Match" do
it 'returns 200 when If-None-Match is *' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1444,7 +1420,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-None-Match is * for new resources' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo', :new_resource => true
'ok'
end
@@ -1457,7 +1433,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-None-Match is * for existing resources' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo', :new_resource => false
'ok'
end
@@ -1470,7 +1446,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-None-Match is the etag' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1483,7 +1459,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-None-Match includes the etag' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1496,7 +1472,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-None-Match does not include the etag' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1509,7 +1485,7 @@ class HelpersTest < Test::Unit::TestCase
it 'ignores If-Modified-Since if If-None-Match does not match' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
last_modified Time.at(0)
'ok'
@@ -1525,7 +1501,7 @@ class HelpersTest < Test::Unit::TestCase
context "If-Match" do
it 'returns 200 when If-Match is the etag' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1538,7 +1514,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match includes the etag' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1551,7 +1527,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match is *' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1564,7 +1540,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match is * for new resources' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo', :new_resource => true
'ok'
end
@@ -1577,7 +1553,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 200 when If-Match is * for existing resources' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo', :new_resource => false
'ok'
end
@@ -1590,7 +1566,7 @@ class HelpersTest < Test::Unit::TestCase
it 'returns 412 when If-Match does not include the etag' do
mock_app do
- post '/' do
+ post('/') do
etag 'foo'
'ok'
end
@@ -1605,7 +1581,7 @@ class HelpersTest < Test::Unit::TestCase
it 'uses a weak etag with the :weak option' do
mock_app do
- get '/' do
+ get('/') do
etag 'FOO', :weak
"that's weak, dude."
end
@@ -1616,24 +1592,20 @@ class HelpersTest < Test::Unit::TestCase
it 'raises an ArgumentError for an invalid strength' do
mock_app do
- get '/' do
+ get('/') do
etag 'FOO', :w00t
"that's weak, dude."
end
end
- assert_raise(ArgumentError) { get '/' }
+ assert_raise(ArgumentError) { get('/') }
end
end
describe 'back' do
it "makes redirecting back pretty" do
- mock_app {
- get '/foo' do
- redirect back
- end
- }
+ mock_app { get('/foo') { redirect back } }
- get '/foo', {}, 'HTTP_REFERER' => 'http://github.com'
+ get('/foo', {}, 'HTTP_REFERER' => 'http://github.com')
assert redirect?
assert_equal "http://github.com", response.location
end
@@ -1693,7 +1665,7 @@ class HelpersTest < Test::Unit::TestCase
it 'logging works when logging is enabled' do
mock_app do
enable :logging
- get '/' do
+ get('/') do
logger.info "Program started"
logger.warn "Nothing to do!"
end
@@ -1707,7 +1679,7 @@ class HelpersTest < Test::Unit::TestCase
it 'logging works when logging is disable, but no output is produced' do
mock_app do
disable :logging
- get '/' do
+ get('/') do
logger.info "Program started"
logger.warn "Nothing to do!"
end
@@ -1734,17 +1706,13 @@ class HelpersTest < Test::Unit::TestCase
describe 'Adding new helpers' do
it 'takes a list of modules to mix into the app' do
- mock_app {
+ mock_app do
helpers ::HelperOne, ::HelperTwo
- get '/one' do
- one
- end
+ get('/one') { one }
- get '/two' do
- two
- end
- }
+ get('/two') { two }
+ end
get '/one'
assert_equal '1', body
@@ -1754,32 +1722,26 @@ class HelpersTest < Test::Unit::TestCase
end
it 'takes a block to mix into the app' do
- mock_app {
+ mock_app do
helpers do
def foo
'foo'
end
end
- get '/' do
- foo
- end
- }
+ get('/') { foo }
+ end
get '/'
assert_equal 'foo', body
end
it 'evaluates the block in class context so that methods can be aliased' do
- mock_app {
- helpers do
- alias_method :h, :escape_html
- end
+ mock_app do
+ helpers { alias_method :h, :escape_html }
- get '/' do
- h('42 < 43')
- end
- }
+ get('/') { h('42 < 43') }
+ end
get '/'
assert ok?
diff --git a/test/less_test.rb b/test/less_test.rb
index 979f201c..505ef753 100644
--- a/test/less_test.rb
+++ b/test/less_test.rb
@@ -5,22 +5,26 @@ require 'less'
class LessTest < Test::Unit::TestCase
def less_app(options = {}, &block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
set options
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
it 'renders inline Less strings' do
- less_app { less "@white_color: #fff; #main { background-color: @white_color }" }
+ less_app {
+ less "@white_color: #fff; #main { background-color: @white_color }"
+ }
assert ok?
assert_equal "#main{background-color:#ffffff;}", body.gsub(/\s/, "")
end
it 'defaults content type to css' do
- less_app { less "@white_color: #fff; #main { background-color: @white_color }" }
+ less_app {
+ less "@white_color: #fff; #main { background-color: @white_color }"
+ }
assert ok?
assert_equal "text/css;charset=utf-8", response['Content-Type']
end
@@ -55,9 +59,7 @@ class LessTest < Test::Unit::TestCase
end
it "raises error if template not found" do
- mock_app {
- get('/') { less :no_such_template }
- }
+ mock_app { get('/') { less :no_such_template } }
assert_raise(Errno::ENOENT) { get('/') }
end
end
diff --git a/test/liquid_test.rb b/test/liquid_test.rb
index ef398afd..9d341ca1 100644
--- a/test/liquid_test.rb
+++ b/test/liquid_test.rb
@@ -7,7 +7,7 @@ class LiquidTest < Test::Unit::TestCase
def liquid_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -46,9 +46,9 @@ class LiquidTest < Test::Unit::TestCase
end
it "allows passing locals" do
- liquid_app do
+ liquid_app {
liquid '{{ value }}', :locals => { :value => 'foo' }
- end
+ }
assert ok?
assert_equal 'foo', body
end
diff --git a/test/mapped_error_test.rb b/test/mapped_error_test.rb
index 8b073a78..c02082be 100644
--- a/test/mapped_error_test.rb
+++ b/test/mapped_error_test.rb
@@ -28,13 +28,11 @@ class MappedErrorTest < Test::Unit::TestCase
describe 'Exception Mappings' do
it 'invokes handlers registered with ::error when raised' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(FooError) { 'Foo!' }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 500, status
assert_equal 'Foo!', body
@@ -50,13 +48,11 @@ class MappedErrorTest < Test::Unit::TestCase
end
it 'uses the Exception handler if no matching handler found' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(Exception) { 'Exception!' }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 500, status
@@ -64,13 +60,11 @@ class MappedErrorTest < Test::Unit::TestCase
end
it 'walks down inheritance chain for errors' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(RuntimeError) { 'Exception!' }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 500, status
@@ -78,15 +72,13 @@ class MappedErrorTest < Test::Unit::TestCase
end
it 'favors subclass handler over superclass handler if available' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(Exception) { 'Exception!' }
error(FooError) { 'FooError!' }
error(RuntimeError) { 'Exception!' }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 500, status
@@ -94,68 +86,58 @@ class MappedErrorTest < Test::Unit::TestCase
end
it "sets env['sinatra.error'] to the rescued exception" do
- mock_app {
+ mock_app do
set :raise_errors, false
- error(FooError) {
+ error(FooError) do
assert env.include?('sinatra.error')
assert env['sinatra.error'].kind_of?(FooError)
'looks good'
- }
- get '/' do
- raise FooError
end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 'looks good', body
end
it "raises errors from the app when raise_errors set and no handler defined" do
- mock_app {
+ mock_app do
set :raise_errors, true
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
assert_raise(FooError) { get '/' }
end
it "calls error handlers before raising errors even when raise_errors is set" do
- mock_app {
+ mock_app do
set :raise_errors, true
error(FooError) { "she's there." }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
assert_nothing_raised { get '/' }
assert_equal 500, status
end
it "never raises Sinatra::NotFound beyond the application" do
- mock_app(Sinatra::Application) { get('/') { raise Sinatra::NotFound }}
+ mock_app(Sinatra::Application) do
+ get('/') { raise Sinatra::NotFound }
+ end
assert_nothing_raised { get '/' }
assert_equal 404, status
end
it "cascades for subclasses of Sinatra::NotFound" do
- mock_app {
+ mock_app do
set :raise_errors, true
error(FooNotFound) { "foo! not found." }
- get '/' do
- raise FooNotFound
- end
- }
+ get('/') { raise FooNotFound }
+ end
assert_nothing_raised { get '/' }
assert_equal 404, status
assert_equal 'foo! not found.', body
end
it 'has a not_found method for backwards compatibility' do
- mock_app {
- not_found do
- "Lost, are we?"
- end
- }
+ mock_app { not_found { "Lost, are we?" } }
get '/test'
assert_equal 404, status
@@ -166,12 +148,10 @@ class MappedErrorTest < Test::Unit::TestCase
base = Class.new(Sinatra::Base)
base.error(FooError) { 'base class' }
- mock_app(base) {
+ mock_app(base) do
set :raise_errors, false
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 'base class', body
@@ -181,13 +161,11 @@ class MappedErrorTest < Test::Unit::TestCase
base = Class.new(Sinatra::Base)
base.error(FooError) { 'base class' }
- mock_app(base) {
+ mock_app(base) do
set :raise_errors, false
error(FooError) { 'subclass' }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 'subclass', body
@@ -234,36 +212,36 @@ class MappedErrorTest < Test::Unit::TestCase
end
it "allows a stack of exception_handlers" do
- mock_app {
+ mock_app do
set :raise_errors, false
error(FirstError) { 'First!' }
error(SecondError) { 'Second!' }
get('/'){ raise SecondError }
- }
+ end
get '/'
assert_equal 500, status
assert_equal 'Second!', body
end
it "allows an exception handler to pass control to the next exception handler" do
- mock_app {
+ mock_app do
set :raise_errors, false
error(500, FirstError) { 'First!' }
error(500, SecondError) { pass }
get('/') { raise 500 }
- }
+ end
get '/'
assert_equal 500, status
assert_equal 'First!', body
end
it "allows an exception handler to handle the exception" do
- mock_app {
+ mock_app do
set :raise_errors, false
error(500, FirstError) { 'First!' }
error(500, SecondError) { 'Second!' }
get('/') { raise 500 }
- }
+ end
get '/'
assert_equal 500, status
assert_equal 'Second!', body
@@ -272,39 +250,33 @@ class MappedErrorTest < Test::Unit::TestCase
describe 'Custom Error Pages' do
it 'allows numeric status code mappings to be registered with ::error' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(500) { 'Foo!' }
- get '/' do
- [500, {}, 'Internal Foo Error']
- end
- }
+ get('/') { [500, {}, 'Internal Foo Error'] }
+ end
get '/'
assert_equal 500, status
assert_equal 'Foo!', body
end
it 'allows ranges of status code mappings to be registered with :error' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(500..550) { "Error: #{response.status}" }
- get '/' do
- [507, {}, 'A very special error']
- end
- }
+ get('/') { [507, {}, 'A very special error'] }
+ end
get '/'
assert_equal 507, status
assert_equal 'Error: 507', body
end
it 'allows passing more than one range' do
- mock_app {
+ mock_app do
set :raise_errors, false
error(409..411, 503..509) { "Error: #{response.status}" }
- get '/' do
- [507, {}, 'A very special error']
- end
- }
+ get('/') { [507, {}, 'A very special error'] }
+ end
get '/'
assert_equal 507, status
assert_equal 'Error: 507', body
@@ -314,7 +286,7 @@ class MappedErrorTest < Test::Unit::TestCase
end
it 'runs after exception mappings and overwrites body' do
- mock_app {
+ mock_app do
set :raise_errors, false
error FooError do
response.status = 502
@@ -323,10 +295,8 @@ class MappedErrorTest < Test::Unit::TestCase
error(500) { 'from 500 handler' }
error(502) { 'from custom error page' }
- get '/' do
- raise FooError
- end
- }
+ get('/') { raise FooError }
+ end
get '/'
assert_equal 502, status
assert_equal 'from custom error page', body
diff --git a/test/markaby_test.rb b/test/markaby_test.rb
index d4e06ee6..546fb3c5 100644
--- a/test/markaby_test.rb
+++ b/test/markaby_test.rb
@@ -7,7 +7,7 @@ class MarkabyTest < Test::Unit::TestCase
def markaby_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -67,9 +67,9 @@ class MarkabyTest < Test::Unit::TestCase
end
it "allows passing locals" do
- markaby_app do
+ markaby_app {
markaby 'text value', :locals => { :value => 'foo' }
- end
+ }
assert ok?
assert_equal 'foo', body
end
diff --git a/test/markdown_test.rb b/test/markdown_test.rb
index f9f7a6b8..f553682f 100644
--- a/test/markdown_test.rb
+++ b/test/markdown_test.rb
@@ -4,7 +4,7 @@ MarkdownTest = proc do
def markdown_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -48,7 +48,9 @@ MarkdownTest = proc do
end
it "renders with file layouts" do
- markdown_app { markdown 'Hello World', :layout => :layout2, :layout_engine => :erb }
+ markdown_app {
+ markdown 'Hello World', :layout => :layout2, :layout_engine => :erb
+ }
assert ok?
assert_body "ERB Layout!\nHello World
"
end
@@ -57,9 +59,7 @@ MarkdownTest = proc do
mock_app do
template(:inner) { "hi" }
template(:outer) { "<%= markdown :inner %>" }
- get '/' do
- erb :outer
- end
+ get('/') { erb :outer }
end
get '/'
diff --git a/test/middleware_test.rb b/test/middleware_test.rb
index 7ba0c8b9..ef06625c 100644
--- a/test/middleware_test.rb
+++ b/test/middleware_test.rb
@@ -2,14 +2,14 @@ require File.expand_path('../helper', __FILE__)
class MiddlewareTest < Test::Unit::TestCase
setup do
- @app = mock_app(Sinatra::Application) {
- get '/*' do
+ @app = mock_app(Sinatra::Application) do
+ get('/*')do
response.headers['X-Tests'] = env['test.ran'].
map { |n| n.split('::').last }.
join(', ')
env['PATH_INFO']
end
- }
+ end
end
class MockMiddleware < Struct.new(:app)
diff --git a/test/nokogiri_test.rb b/test/nokogiri_test.rb
index 3d708171..033c45c8 100644
--- a/test/nokogiri_test.rb
+++ b/test/nokogiri_test.rb
@@ -7,7 +7,7 @@ class NokogiriTest < Test::Unit::TestCase
def nokogiri_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -21,9 +21,7 @@ class NokogiriTest < Test::Unit::TestCase
it 'renders inline blocks' do
nokogiri_app do
@name = "Frank & Mary"
- nokogiri do |xml|
- xml.couple @name
- end
+ nokogiri { |xml| xml.couple @name }
end
assert ok?
assert_body %(\nFrank & Mary\n)
@@ -51,9 +49,9 @@ class NokogiriTest < Test::Unit::TestCase
it "renders with file layouts" do
next if Tilt::VERSION <= "1.1"
- nokogiri_app do
+ nokogiri_app {
nokogiri %(xml.em 'Hello World'), :layout => :layout2
- end
+ }
assert ok?
assert_body %(\n\n Hello World\n\n)
end
diff --git a/test/radius_test.rb b/test/radius_test.rb
index 0e990282..2c098e6e 100644
--- a/test/radius_test.rb
+++ b/test/radius_test.rb
@@ -7,7 +7,7 @@ class RadiusTest < Test::Unit::TestCase
def radius_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -46,9 +46,9 @@ class RadiusTest < Test::Unit::TestCase
end
it "allows passing locals" do
- radius_app do
+ radius_app {
radius '', :locals => { :value => 'foo' }
- end
+ }
assert ok?
assert_equal 'foo', body
end
diff --git a/test/rdoc_test.rb b/test/rdoc_test.rb
index 0d588563..7d22a1c1 100644
--- a/test/rdoc_test.rb
+++ b/test/rdoc_test.rb
@@ -8,7 +8,7 @@ class RdocTest < Test::Unit::TestCase
def rdoc_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
@@ -41,7 +41,9 @@ class RdocTest < Test::Unit::TestCase
end
it "renders with file layouts" do
- rdoc_app { rdoc 'Hello World', :layout => :layout2, :layout_engine => :erb }
+ rdoc_app {
+ rdoc 'Hello World', :layout => :layout2, :layout_engine => :erb
+ }
assert ok?
assert_body "ERB Layout!\nHello World
"
end
@@ -50,9 +52,7 @@ class RdocTest < Test::Unit::TestCase
mock_app do
template(:inner) { "hi" }
template(:outer) { "<%= rdoc :inner %>" }
- get '/' do
- erb :outer
- end
+ get('/') { erb :outer }
end
get '/'
diff --git a/test/readme_test.rb b/test/readme_test.rb
index b0a6bce7..26ea0352 100644
--- a/test/readme_test.rb
+++ b/test/readme_test.rb
@@ -11,29 +11,17 @@ class ReadmeTest < Test::Unit::TestCase
section "Routes" do
example do
mock_app do
- get '/' do
- ".. show something .."
- end
+ get('/') { ".. show something .." }
- post '/' do
- ".. create something .."
- end
+ post('/') { ".. create something .." }
- put '/' do
- ".. replace something .."
- end
+ put('/') { ".. replace something .." }
- patch '/' do
- ".. modify something .."
- end
+ patch('/') { ".. modify something .." }
- delete '/' do
- ".. annihilate something .."
- end
+ delete('/') { ".. annihilate something .." }
- options '/' do
- ".. appease something .."
- end
+ options('/') { ".. appease something .." }
end
get '/'
@@ -57,7 +45,7 @@ class ReadmeTest < Test::Unit::TestCase
example do
mock_app do
- get '/hello/:name' do
+ get('/hello/:name') do
# matches "GET /hello/foo" and "GET /hello/bar"
# params[:name] is 'foo' or 'bar'
"Hello #{params[:name]}!"
@@ -72,11 +60,7 @@ class ReadmeTest < Test::Unit::TestCase
end
example do
- mock_app do
- get '/hello/:name' do |n|
- "Hello #{n}!"
- end
- end
+ mock_app { get('/hello/:name') { |n| "Hello #{n}!" } }
get '/hello/foo'
assert_body 'Hello foo!'
@@ -87,12 +71,12 @@ class ReadmeTest < Test::Unit::TestCase
example do
mock_app do
- get '/say/*/to/*' do
+ get('/say/*/to/*') do
# matches /say/hello/to/world
params[:splat].inspect # => ["hello", "world"]
end
- get '/download/*.*' do
+ get('/download/*.*') do
# matches /download/path/to/file.xml
params[:splat].inspect # => ["path/to/file", "xml"]
end
@@ -107,9 +91,9 @@ class ReadmeTest < Test::Unit::TestCase
example do
mock_app do
- get %r{/hello/([\w]+)} do
+ get(%r{/hello/([\w]+)}) {
"Hello, #{params[:captures].first}!"
- end
+ }
end
get '/hello/foo'
@@ -121,9 +105,9 @@ class ReadmeTest < Test::Unit::TestCase
example do
mock_app do
- get %r{/hello/([\w]+)} do |c|
+ get( %r{/hello/([\w]+)}) { |c|
"Hello, #{c}!"
- end
+ }
end
get '/hello/foo'
diff --git a/test/response_test.rb b/test/response_test.rb
index 9d80e4e0..becca508 100644
--- a/test/response_test.rb
+++ b/test/response_test.rb
@@ -3,9 +3,7 @@
require File.expand_path('../helper', __FILE__)
class ResponseTest < Test::Unit::TestCase
- setup do
- @response = Sinatra::Response.new
- end
+ setup { @response = Sinatra::Response.new }
it "initializes with 200, text/html, and empty body" do
assert_equal 200, @response.status
diff --git a/test/result_test.rb b/test/result_test.rb
index 305bcda3..6c59f6b5 100644
--- a/test/result_test.rb
+++ b/test/result_test.rb
@@ -2,11 +2,7 @@ require File.expand_path('../helper', __FILE__)
class ResultTest < Test::Unit::TestCase
it "sets response.body when result is a String" do
- mock_app {
- get '/' do
- 'Hello World'
- end
- }
+ mock_app { get('/') { 'Hello World' } }
get '/'
assert ok?
@@ -14,11 +10,7 @@ class ResultTest < Test::Unit::TestCase
end
it "sets response.body when result is an Array of Strings" do
- mock_app {
- get '/' do
- ['Hello', 'World']
- end
- }
+ mock_app { get('/') { ['Hello', 'World'] } }
get '/'
assert ok?
@@ -26,13 +18,13 @@ class ResultTest < Test::Unit::TestCase
end
it "sets response.body when result responds to #each" do
- mock_app {
- get '/' do
+ mock_app do
+ get('/') do
res = lambda { 'Hello World' }
def res.each ; yield call ; end
- res
+ return res
end
- }
+ end
get '/'
assert ok?
@@ -40,11 +32,7 @@ class ResultTest < Test::Unit::TestCase
end
it "sets response.body to [] when result is nil" do
- mock_app {
- get '/' do
- nil
- end
- }
+ mock_app { get( '/') { nil } }
get '/'
assert ok?
@@ -53,9 +41,7 @@ class ResultTest < Test::Unit::TestCase
it "sets status, headers, and body when result is a Rack response tuple" do
mock_app {
- get '/' do
- [203, {'Content-Type' => 'foo/bar'}, 'Hello World']
- end
+ get('/') { [203, {'Content-Type' => 'foo/bar'}, 'Hello World'] }
}
get '/'
@@ -65,11 +51,7 @@ class ResultTest < Test::Unit::TestCase
end
it "sets status and body when result is a two-tuple" do
- mock_app {
- get '/' do
- [409, 'formula of']
- end
- }
+ mock_app { get('/') { [409, 'formula of'] } }
get '/'
assert_equal 409, status
@@ -78,18 +60,14 @@ class ResultTest < Test::Unit::TestCase
it "raises a ArgumentError when result is a non two or three tuple Array" do
mock_app {
- get '/' do
- [409, 'formula of', 'something else', 'even more']
- end
+ get('/') { [409, 'formula of', 'something else', 'even more'] }
}
assert_raise(ArgumentError) { get '/' }
end
it "sets status when result is a Fixnum status code" do
- mock_app {
- get('/') { 205 }
- }
+ mock_app { get('/') { 205 } }
get '/'
assert_equal 205, status
diff --git a/test/route_added_hook_test.rb b/test/route_added_hook_test.rb
index e621f1b6..b2a22e88 100644
--- a/test/route_added_hook_test.rb
+++ b/test/route_added_hook_test.rb
@@ -11,16 +11,16 @@ module RouteAddedTest
end
class RouteAddedHookTest < Test::Unit::TestCase
- setup {
+ setup do
RouteAddedTest.routes.clear
RouteAddedTest.procs.clear
- }
+ end
it "should be notified of an added route" do
- mock_app(Class.new(Sinatra::Base)) {
+ mock_app(Class.new(Sinatra::Base)) do
register RouteAddedTest
get('/') {}
- }
+ end
assert_equal [["GET", "/"], ["HEAD", "/"]],
RouteAddedTest.routes
@@ -38,21 +38,21 @@ class RouteAddedHookTest < Test::Unit::TestCase
end
it "should only run once per extension" do
- mock_app(Class.new(Sinatra::Base)) {
+ mock_app(Class.new(Sinatra::Base)) do
register RouteAddedTest
register RouteAddedTest
get('/') {}
- }
+ end
assert_equal [["GET", "/"], ["HEAD", "/"]],
RouteAddedTest.routes
end
it "should pass route blocks as an argument" do
- mock_app(Class.new(Sinatra::Base)) {
+ mock_app(Class.new(Sinatra::Base)) do
register RouteAddedTest
get('/') {}
- }
+ end
assert_kind_of Proc, RouteAddedTest.procs.first
end
diff --git a/test/sass_test.rb b/test/sass_test.rb
index f94859ca..b9530262 100644
--- a/test/sass_test.rb
+++ b/test/sass_test.rb
@@ -6,11 +6,11 @@ require 'sass'
class SassTest < Test::Unit::TestCase
def sass_app(options = {}, &block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
set options
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -36,9 +36,9 @@ class SassTest < Test::Unit::TestCase
end
it 'defaults allows setting content type globally' do
- sass_app(:sass => { :content_type => 'html' }) do
+ sass_app(:sass => { :content_type => 'html' }) {
sass "#sass\n :background-color white\n"
- end
+ }
assert ok?
assert_equal "text/html;charset=utf-8", response['Content-Type']
end
@@ -56,50 +56,50 @@ class SassTest < Test::Unit::TestCase
end
it "raises error if template not found" do
- mock_app {
- get('/') { sass :no_such_template }
- }
+ mock_app { get('/') { sass :no_such_template } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "passes SASS options to the Sass engine" do
- sass_app {
- sass "#sass\n :background-color white\n :color black\n",
+ sass_app do
+ sass(
+ "#sass\n :background-color white\n :color black\n",
:style => :compact
- }
+ )
+ end
assert ok?
- assert_equal "#sass { background-color: white; color: black; }\n", body
+ assert_equal("#sass { background-color: white; color: black; }\n", body)
end
it "passes default SASS options to the Sass engine" do
- mock_app {
+ mock_app do
set :sass, {:style => :compact} # default Sass style is :nested
- get '/' do
- sass "#sass\n :background-color white\n :color black\n"
- end
- }
+ get('/') { sass("#sass\n :background-color white\n :color black\n") }
+ end
get '/'
assert ok?
assert_equal "#sass { background-color: white; color: black; }\n", body
end
it "merges the default SASS options with the overrides" do
- mock_app {
+ mock_app do
# default Sass attribute_syntax is :normal (with : in front)
set :sass, {:style => :compact, :attribute_syntax => :alternate }
- get '/' do
- sass "#sass\n background-color: white\n color: black\n"
- end
- get '/raised' do
+ get('/') { sass("#sass\n background-color: white\n color: black\n") }
+ get('/raised') do
# retains global attribute_syntax settings
- sass "#sass\n :background-color white\n :color black\n",
+ sass(
+ "#sass\n :background-color white\n :color black\n",
:style => :expanded
+ )
end
- get '/expanded_normal' do
- sass "#sass\n :background-color white\n :color black\n",
+ get('/expanded_normal') do
+ sass(
+ "#sass\n :background-color white\n :color black\n",
:style => :expanded, :attribute_syntax => :normal
+ )
end
- }
+ end
get '/'
assert ok?
assert_equal "#sass { background-color: white; color: black; }\n", body
diff --git a/test/scss_test.rb b/test/scss_test.rb
index ac2d249c..e5d6857f 100644
--- a/test/scss_test.rb
+++ b/test/scss_test.rb
@@ -6,11 +6,11 @@ require 'sass'
class ScssTest < Test::Unit::TestCase
def scss_app(options = {}, &block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
set options
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -36,9 +36,9 @@ class ScssTest < Test::Unit::TestCase
end
it 'defaults allows setting content type globally' do
- scss_app(:scss => { :content_type => 'html' }) do
+ scss_app(:scss => { :content_type => 'html' }) {
scss "#scss {\n background-color: white; }\n"
- end
+ }
assert ok?
assert_equal "text/html;charset=utf-8", response['Content-Type']
end
@@ -56,28 +56,28 @@ class ScssTest < Test::Unit::TestCase
end
it "raises error if template not found" do
- mock_app {
- get('/') { scss :no_such_template }
- }
+ mock_app { get('/') { scss(:no_such_template) } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "passes scss options to the scss engine" do
- scss_app {
- scss "#scss {\n background-color: white;\n color: black\n}",
+ scss_app do
+ scss(
+ "#scss {\n background-color: white;\n color: black\n}",
:style => :compact
- }
+ )
+ end
assert ok?
assert_equal "#scss { background-color: white; color: black; }\n", body
end
it "passes default scss options to the scss engine" do
- mock_app {
+ mock_app do
set :scss, {:style => :compact} # default scss style is :nested
- get '/' do
- scss "#scss {\n background-color: white;\n color: black;\n}"
- end
- }
+ get('/') {
+ scss("#scss {\n background-color: white;\n color: black;\n}")
+ }
+ end
get '/'
assert ok?
assert_equal "#scss { background-color: white; color: black; }\n", body
diff --git a/test/server_test.rb b/test/server_test.rb
index d4ebdd4d..7a0633c8 100644
--- a/test/server_test.rb
+++ b/test/server_test.rb
@@ -21,11 +21,11 @@ end
class ServerTest < Test::Unit::TestCase
setup do
- mock_app {
+ mock_app do
set :server, 'mock'
set :bind, 'foo.local'
set :port, 9001
- }
+ end
$stderr = StringIO.new
end
diff --git a/test/sinatra_test.rb b/test/sinatra_test.rb
index 3f8cedef..459a37c4 100644
--- a/test/sinatra_test.rb
+++ b/test/sinatra_test.rb
@@ -2,12 +2,7 @@ require File.expand_path('../helper', __FILE__)
class SinatraTest < Test::Unit::TestCase
it 'creates a new Sinatra::Base subclass on new' do
- app =
- Sinatra.new do
- get '/' do
- 'Hello World'
- end
- end
+ app = Sinatra.new { get('/') { 'Hello World' } }
assert_same Sinatra::Base, app.superclass
end
diff --git a/test/slim_test.rb b/test/slim_test.rb
index d294d21c..e13e357c 100644
--- a/test/slim_test.rb
+++ b/test/slim_test.rb
@@ -5,10 +5,10 @@ require 'slim'
class SlimTest < Test::Unit::TestCase
def slim_app(&block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
@@ -25,34 +25,30 @@ class SlimTest < Test::Unit::TestCase
end
it "renders with inline layouts" do
- mock_app {
+ mock_app do
layout { %(h1\n | THIS. IS. \n == yield.upcase ) }
get('/') { slim 'em Sparta' }
- }
+ end
get '/'
assert ok?
assert_equal "THIS. IS. SPARTA
", body
end
it "renders with file layouts" do
- slim_app {
- slim '| Hello World', :layout => :layout2
- }
+ slim_app { slim('| Hello World', :layout => :layout2) }
assert ok?
assert_equal "Slim Layout!
Hello World
", body
end
it "raises error if template not found" do
- mock_app {
- get('/') { slim :no_such_template }
- }
+ mock_app { get('/') { slim(:no_such_template) } }
assert_raise(Errno::ENOENT) { get('/') }
end
HTML4_DOCTYPE = ""
it "passes slim options to the slim engine" do
- mock_app { get('/') { slim "x foo='bar'", :attr_wrapper => "'" }}
+ mock_app { get('/') { slim("x foo='bar'", :attr_wrapper => "'") }}
get '/'
assert ok?
assert_body ""
@@ -61,7 +57,7 @@ class SlimTest < Test::Unit::TestCase
it "passes default slim options to the slim engine" do
mock_app do
set :slim, :attr_wrapper => "'"
- get('/') { slim "x foo='bar'" }
+ get('/') { slim("x foo='bar'") }
end
get '/'
assert ok?
@@ -71,8 +67,8 @@ class SlimTest < Test::Unit::TestCase
it "merges the default slim options with the overrides and passes them to the slim engine" do
mock_app do
set :slim, :attr_wrapper => "'"
- get('/') { slim "x foo='bar'" }
- get('/other') { slim "x foo='bar'", :attr_wrapper => '"' }
+ get('/') { slim("x foo='bar'") }
+ get('/other') { slim("x foo='bar'", :attr_wrapper => '"') }
end
get '/'
assert ok?
diff --git a/test/static_test.rb b/test/static_test.rb
index 3f5b671f..320b70bb 100644
--- a/test/static_test.rb
+++ b/test/static_test.rb
@@ -2,10 +2,10 @@ require File.expand_path('../helper', __FILE__)
class StaticTest < Test::Unit::TestCase
setup do
- mock_app {
+ mock_app do
set :static, true
set :public_folder, File.dirname(__FILE__)
- }
+ end
end
it 'serves GET requests for files in the public directory' do
@@ -82,10 +82,10 @@ class StaticTest < Test::Unit::TestCase
end
it '404s when .. path traverses outside of public directory' do
- mock_app {
+ mock_app do
set :static, true
set :public_folder, File.dirname(__FILE__) + '/data'
- }
+ end
get "/../#{File.basename(__FILE__)}"
assert not_found?
end
@@ -97,11 +97,30 @@ class StaticTest < Test::Unit::TestCase
should_be = file[range]
expected_range = "bytes #{range.begin}-#{range.end}/#{file.length}"
- assert_equal 206,response.status, "Should be HTTP/1.1 206 Partial content"
- assert_equal should_be.length, response.body.length, "Unexpected response length for #{http_range}"
- assert_equal should_be, response.body, "Unexpected response data for #{http_range}"
- assert_equal should_be.length.to_s, response['Content-Length'], "Incorrect Content-Length for #{http_range}"
- assert_equal expected_range, response['Content-Range'], "Incorrect Content-Range for #{http_range}"
+ assert_equal(
+ 206,response.status,
+ "Should be HTTP/1.1 206 Partial content"
+ )
+ assert_equal(
+ should_be.length,
+ response.body.length,
+ "Unexpected response length for #{http_range}"
+ )
+ assert_equal(
+ should_be,
+ response.body,
+ "Unexpected response data for #{http_range}"
+ )
+ assert_equal(
+ should_be.length.to_s,
+ response['Content-Length'],
+ "Incorrect Content-Length for #{http_range}"
+ )
+ assert_equal(
+ expected_range,
+ response['Content-Range'],
+ "Incorrect Content-Range for #{http_range}"
+ )
end
it 'handles valid byte ranges correctly' do
@@ -137,8 +156,16 @@ class StaticTest < Test::Unit::TestCase
request = Rack::MockRequest.new(@app)
response = request.get("/#{File.basename(__FILE__)}", 'HTTP_RANGE' => http_range)
- assert_equal 200,response.status, "Invalid range '#{http_range}' should be ignored"
- assert_equal nil,response['Content-Range'], "Invalid range '#{http_range}' should be ignored"
+ assert_equal(
+ 200,
+ response.status,
+ "Invalid range '#{http_range}' should be ignored"
+ )
+ assert_equal(
+ nil,
+ response['Content-Range'],
+ "Invalid range '#{http_range}' should be ignored"
+ )
end
end
@@ -149,8 +176,16 @@ class StaticTest < Test::Unit::TestCase
request = Rack::MockRequest.new(@app)
response = request.get("/#{File.basename(__FILE__)}", 'HTTP_RANGE' => http_range)
- assert_equal 416,response.status, "Unsatisfiable range '#{http_range}' should return 416"
- assert_equal "bytes */#{length}",response['Content-Range'], "416 response should include actual length"
+ assert_equal(
+ 416,
+ response.status,
+ "Unsatisfiable range '#{http_range}' should return 416"
+ )
+ assert_equal(
+ "bytes */#{length}",
+ response['Content-Range'],
+ "416 response should include actual length"
+ )
end
end
@@ -167,11 +202,17 @@ class StaticTest < Test::Unit::TestCase
assert headers.has_key?('Cache-Control')
assert_equal headers['Cache-Control'], 'public'
- @app.set :static_cache_control, [:public, :must_revalidate, {:max_age => 300}]
+ @app.set(
+ :static_cache_control,
+ [:public, :must_revalidate, {:max_age => 300}]
+ )
env = Rack::MockRequest.env_for("/#{File.basename(__FILE__)}")
status, headers, body = @app.call(env)
assert headers.has_key?('Cache-Control')
- assert_equal headers['Cache-Control'], 'public, must-revalidate, max-age=300'
+ assert_equal(
+ headers['Cache-Control'],
+ 'public, must-revalidate, max-age=300'
+ )
end
end
diff --git a/test/streaming_test.rb b/test/streaming_test.rb
index e7c62d26..df2bf7d3 100644
--- a/test/streaming_test.rb
+++ b/test/streaming_test.rb
@@ -5,7 +5,7 @@ class StreamingTest < Test::Unit::TestCase
it 'returns the concatinated body' do
mock_app do
- get '/' do
+ get('/') do
stream do |out|
out << "Hello" << " "
out << "World!"
@@ -115,7 +115,9 @@ class StreamingTest < Test::Unit::TestCase
it 'gives access to route specific params' do
mock_app do
- get('/:name') { stream { |o| o << params[:name] }}
+ get('/:name') do
+ stream { |o| o << params[:name] }
+ end
end
get '/foo'
assert_body 'foo'
diff --git a/test/templates_test.rb b/test/templates_test.rb
index a692f649..5874862d 100644
--- a/test/templates_test.rb
+++ b/test/templates_test.rb
@@ -17,12 +17,12 @@ end
class TemplatesTest < Test::Unit::TestCase
def render_app(base=Sinatra::Base, options = {}, &block)
base, options = Sinatra::Base, base if base.is_a? Hash
- mock_app(base) {
+ mock_app(base) do
set :views, File.dirname(__FILE__) + '/views'
set options
- get '/', &block
+ get('/', &block)
template(:layout3) { "Layout 3!\n" }
- }
+ end
get '/'
end
@@ -35,26 +35,26 @@ class TemplatesTest < Test::Unit::TestCase
end
it 'renders String templates directly' do
- render_app { render :test, 'Hello World' }
+ render_app { render(:test, 'Hello World') }
assert ok?
assert_equal 'Hello World', body
end
it 'renders Proc templates using the call result' do
- render_app { render :test, Proc.new {'Hello World'} }
+ render_app { render(:test, Proc.new {'Hello World'}) }
assert ok?
assert_equal 'Hello World', body
end
it 'looks up Symbol templates in views directory' do
- render_app { render :test, :hello }
+ render_app { render(:test, :hello) }
assert ok?
assert_equal "Hello World!\n", body
end
it 'uses the default layout template if not explicitly overridden' do
with_default_layout do
- render_app { render :test, :hello }
+ render_app { render(:test, :hello) }
assert ok?
assert_equal "Layout!\nHello World!\n", body
end
@@ -62,34 +62,40 @@ class TemplatesTest < Test::Unit::TestCase
it 'uses the default layout template if not really overriden' do
with_default_layout do
- render_app { render :test, :hello, :layout => true }
+ render_app { render(:test, :hello, :layout => true) }
assert ok?
assert_equal "Layout!\nHello World!\n", body
end
end
it 'uses the layout template specified' do
- render_app { render :test, :hello, :layout => :layout2 }
+ render_app { render(:test, :hello, :layout => :layout2) }
assert ok?
assert_equal "Layout 2!\nHello World!\n", body
end
it 'uses layout templates defined with the #template method' do
- render_app { render :test, :hello, :layout => :layout3 }
+ render_app { render(:test, :hello, :layout => :layout3) }
assert ok?
assert_equal "Layout 3!\nHello World!\n", body
end
it 'avoids wrapping layouts around nested templates' do
- render_app { render :str, :nested, :layout => :layout2 }
+ render_app { render(:str, :nested, :layout => :layout2) }
assert ok?
- assert_equal "String Layout!
\nHello From String
", body
+ assert_equal(
+ "String Layout!
\nHello From String
",
+ body
+ )
end
it 'allows explicitly wrapping layouts around nested templates' do
- render_app { render :str, :explicitly_nested, :layout => :layout2 }
+ render_app { render(:str, :explicitly_nested, :layout => :layout2) }
assert ok?
- assert_equal "String Layout!
\nString Layout!
\nHello From String
", body
+ assert_equal(
+ "String Layout!
\nString Layout!
\nHello From String
",
+ body
+ )
end
it 'two independent render calls do not disable layouts' do
@@ -98,7 +104,10 @@ class TemplatesTest < Test::Unit::TestCase
render :str, :nested, :layout => :layout2
end
assert ok?
- assert_equal "String Layout!
\nHello From String
", body
+ assert_equal(
+ "String Layout!
\nHello From String
",
+ body
+ )
end
it 'is possible to use partials in layouts' do
@@ -111,54 +120,50 @@ class TemplatesTest < Test::Unit::TestCase
end
it 'loads templates from source file' do
- mock_app { enable :inline_templates }
+ mock_app { enable(:inline_templates) }
assert_equal "this is foo\n\n", @app.templates[:foo][0]
assert_equal "X\n= yield\nX\n", @app.templates[:layout][0]
end
it 'ignores spaces after names of inline templates' do
- mock_app { enable :inline_templates }
+ mock_app { enable(:inline_templates) }
assert_equal "There's a space after 'bar'!\n\n", @app.templates[:bar][0]
assert_equal "this is not foo\n\n", @app.templates[:"foo bar"][0]
end
it 'loads templates from given source file' do
- mock_app { set :inline_templates, __FILE__ }
+ mock_app { set(:inline_templates, __FILE__) }
assert_equal "this is foo\n\n", @app.templates[:foo][0]
end
test 'inline_templates ignores IO errors' do
- assert_nothing_raised {
- mock_app {
- set :inline_templates, '/foo/bar'
- }
- }
+ assert_nothing_raised { mock_app { set(:inline_templates, '/foo/bar') } }
assert @app.templates.empty?
end
it 'allows unicode in inline templates' do
- mock_app { set :inline_templates, __FILE__ }
- assert_equal "Den som tror at hemma det är där man bor har aldrig vart hos mig.\n\n",
+ mock_app { set(:inline_templates, __FILE__) }
+ assert_equal(
+ "Den som tror at hemma det är där man bor har aldrig vart hos mig.\n\n",
@app.templates[:umlaut][0]
+ )
end
it 'loads templates from specified views directory' do
- render_app { render :test, :hello, :views => settings.views + '/foo' }
+ render_app { render( :test, :hello, :views => settings.views + '/foo') }
assert_equal "from another views directory\n", body
end
it 'passes locals to the layout' do
- mock_app {
- template :my_layout do
- 'Hello <%= name %>!<%= yield %>'
- end
+ mock_app do
+ template(:my_layout) { 'Hello <%= name %>!<%= yield %>' }
- get '/' do
- erb 'content
', { :layout => :my_layout }, { :name => 'Mike'}
+ get('/') do
+ erb('content
', { :layout => :my_layout }, { :name => 'Mike'})
end
- }
+ end
get '/'
assert ok?
@@ -168,18 +173,22 @@ class TemplatesTest < Test::Unit::TestCase
it 'loads templates defined in subclasses' do
base = Class.new(Sinatra::Base)
base.template(:foo) { 'bar' }
- render_app(base) { render :test, :foo }
+ render_app(base) { render(:test, :foo) }
assert ok?
assert_equal 'bar', body
end
it 'allows setting default content type per template engine' do
- render_app(:str => { :content_type => :txt }) { render :str, 'foo' }
+ render_app(:str => { :content_type => :txt }) {
+ render :str, 'foo'
+ }
assert_equal 'text/plain;charset=utf-8', response['Content-Type']
end
it 'setting default content type does not affect other template engines' do
- render_app(:str => { :content_type => :txt }) { render :test, 'foo' }
+ render_app(:str => { :content_type => :txt }) {
+ render :test, 'foo'
+ }
assert_equal 'text/html;charset=utf-8', response['Content-Type']
end
@@ -196,11 +205,11 @@ class TemplatesTest < Test::Unit::TestCase
base.template(:foo) { 'template in superclass' }
assert_equal 'template in superclass', base.templates[:foo].first.call
- mock_app(base) {
+ mock_app(base) do
set :views, File.dirname(__FILE__) + '/views'
template(:foo) { 'template in subclass' }
get('/') { render :test, :foo }
- }
+ end
assert_equal 'template in subclass', @app.templates[:foo].first.call
get '/'
@@ -240,11 +249,9 @@ class TemplatesTest < Test::Unit::TestCase
it "passes scope to the template" do
mock_app do
- template :scoped do
- 'Hello <%= foo %>'
- end
+ template(:scoped) { 'Hello <%= foo %>' }
- get '/' do
+ get('/') do
some_scope = Object.new
def some_scope.foo() 'World!' end
erb :scoped, :scope => some_scope
@@ -263,9 +270,7 @@ class TemplatesTest < Test::Unit::TestCase
Array(views).each { |v| super(v, name, engine, &block) }
end
- get('/:name') do
- render :str, params[:name].to_sym
- end
+ get('/:name') { render(:str, params[:name].to_sym) }
end
get '/in_a'
diff --git a/test/textile_test.rb b/test/textile_test.rb
index a3ed6f5a..907ce634 100644
--- a/test/textile_test.rb
+++ b/test/textile_test.rb
@@ -7,32 +7,32 @@ class TextileTest < Test::Unit::TestCase
def textile_app(&block)
mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
+ get('/', &block)
end
get '/'
end
it 'renders inline textile strings' do
- textile_app { textile 'h1. Hiya' }
+ textile_app { textile('h1. Hiya') }
assert ok?
assert_equal "Hiya
", body
end
it 'renders .textile files in views path' do
- textile_app { textile :hello }
+ textile_app { textile(:hello) }
assert ok?
assert_equal "Hello From Textile
", body
end
it "raises error if template not found" do
- mock_app { get('/') { textile :no_such_template } }
+ mock_app { get('/') { textile(:no_such_template) } }
assert_raise(Errno::ENOENT) { get('/') }
end
it "renders with inline layouts" do
mock_app do
layout { 'THIS. IS. #{yield.upcase}!' }
- get('/') { textile 'Sparta', :layout_engine => :str }
+ get('/') { textile('Sparta', :layout_engine => :str) }
end
get '/'
assert ok?
@@ -40,7 +40,9 @@ class TextileTest < Test::Unit::TestCase
end
it "renders with file layouts" do
- textile_app { textile 'Hello World', :layout => :layout2, :layout_engine => :erb }
+ textile_app {
+ textile('Hello World', :layout => :layout2, :layout_engine => :erb)
+ }
assert ok?
assert_body "ERB Layout!\nHello World
"
end
@@ -49,9 +51,7 @@ class TextileTest < Test::Unit::TestCase
mock_app do
template(:inner) { "hi" }
template(:outer) { "<%= textile :inner %>" }
- get '/' do
- erb :outer
- end
+ get('/') { erb :outer }
end
get '/'
diff --git a/test/yajl_test.rb b/test/yajl_test.rb
index 546ee5a3..e10f764a 100644
--- a/test/yajl_test.rb
+++ b/test/yajl_test.rb
@@ -5,71 +5,77 @@ require 'yajl'
class YajlTest < Test::Unit::TestCase
def yajl_app(&block)
- mock_app {
+ mock_app do
set :views, File.dirname(__FILE__) + '/views'
- get '/', &block
- }
+ get('/', &block)
+ end
get '/'
end
it 'renders inline Yajl strings' do
- yajl_app { yajl 'json = { :foo => "bar" }' }
+ yajl_app { yajl('json = { :foo => "bar" }') }
assert ok?
assert_body '{"foo":"bar"}'
end
it 'renders .yajl files in views path' do
- yajl_app { yajl :hello }
+ yajl_app { yajl(:hello) }
assert ok?
assert_body '{"yajl":"hello"}'
end
it 'raises error if template not found' do
- mock_app {
- get('/') { yajl :no_such_template }
- }
+ mock_app { get('/') { yajl(:no_such_template) } }
assert_raise(Errno::ENOENT) { get('/') }
end
it 'accepts a :locals option' do
- yajl_app {
+ yajl_app do
locals = { :object => { :foo => 'bar' } }
yajl 'json = object', :locals => locals
- }
+ end
assert ok?
assert_body '{"foo":"bar"}'
end
it 'accepts a :scope option' do
- yajl_app {
+ yajl_app do
scope = { :object => { :foo => 'bar' } }
yajl 'json = self[:object]', :scope => scope
- }
+ end
assert ok?
assert_body '{"foo":"bar"}'
end
it 'decorates the json with a callback' do
- yajl_app {
- yajl 'json = { :foo => "bar" }', { :callback => 'baz' }
- }
+ yajl_app do
+ yajl(
+ 'json = { :foo => "bar" }',
+ { :callback => 'baz' }
+ )
+ end
assert ok?
assert_body 'baz({"foo":"bar"});'
end
it 'decorates the json with a variable' do
- yajl_app {
- yajl 'json = { :foo => "bar" }', { :variable => 'qux' }
- }
+ yajl_app do
+ yajl(
+ 'json = { :foo => "bar" }',
+ { :variable => 'qux' }
+ )
+ end
assert ok?
assert_body 'var qux = {"foo":"bar"};'
end
it 'decorates the json with a callback and a variable' do
- yajl_app {
- yajl 'json = { :foo => "bar" }',
+ yajl_app do
+ yajl(
+ 'json = { :foo => "bar" }',
{ :callback => 'baz', :variable => 'qux' }
- }
+ )
+ end
assert ok?
assert_body 'var qux = {"foo":"bar"}; baz(qux);'
end