summaryrefslogtreecommitdiff
path: root/test/spec_lock.rb
diff options
context:
space:
mode:
authorSam Saffron <sam.saffron@gmail.com>2012-09-05 12:59:52 +1000
committerSam Saffron <sam.saffron@gmail.com>2012-09-05 12:59:52 +1000
commit5c230ffdf1b67f68b7fb120596d0fce9e6768c5a (patch)
tree6dba5d18e58788327d35847067a74092729cc751 /test/spec_lock.rb
parentd084a14fc5be6587fb1720a4f126bae2c7e74d10 (diff)
downloadrack-5c230ffdf1b67f68b7fb120596d0fce9e6768c5a.tar.gz
- correct existing raise test
- amend it so rack lock releases the mutex on throws as well and raises - added raise test
Diffstat (limited to 'test/spec_lock.rb')
-rw-r--r--test/spec_lock.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/spec_lock.rb b/test/spec_lock.rb
index 70f14461..bda77e93 100644
--- a/test/spec_lock.rb
+++ b/test/spec_lock.rb
@@ -134,11 +134,19 @@ describe Rack::Lock do
should "unlock if the app raises" do
lock = Lock.new
env = Rack::MockRequest.env_for("/")
- app = lock_app(lambda { raise Exception })
+ app = lock_app(lambda { raise Exception }, lock)
lambda { app.call(env) }.should.raise(Exception)
lock.synchronized.should.equal false
end
+ should "unlock if the app throws" do
+ lock = Lock.new
+ env = Rack::MockRequest.env_for("/")
+ app = lock_app(lambda {|env| throw :bacon }, lock)
+ lambda { app.call(env) }.should.throw(:bacon)
+ lock.synchronized.should.equal false
+ end
+
should "set multithread flag to false" do
app = lock_app(lambda { |env|
env['rack.multithread'].should.equal false