summary refs log tree commit
path: root/test/spec_server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/spec_server.rb')
-rw-r--r--test/spec_server.rb35
1 files changed, 22 insertions, 13 deletions
diff --git a/test/spec_server.rb b/test/spec_server.rb
index 6692c99e..b2728505 100644
--- a/test/spec_server.rb
+++ b/test/spec_server.rb
@@ -28,21 +28,35 @@ describe Rack::Server do
     Rack::MockRequest.new(server.app).get("/").body.to_s.should.equal 'success'
   end
 
-  should "not include Rack::Lint in deployment or none environments" do
+  should "allow subclasses to override middleware" do
+    server = Class.new(Rack::Server).class_eval { def middleware; Hash.new [] end; self }
+    server.middleware['deployment'].should.not.equal []
+    server.new(:app => 'foo').middleware['deployment'].should.equal []
+  end
+
+  should "allow subclasses to override default middleware" do
+    server = Class.new(Rack::Server).instance_eval { def default_middleware_by_environment; Hash.new [] end; self }
+    server.middleware['deployment'].should.equal []
+    server.new(:app => 'foo').middleware['deployment'].should.equal []
+  end
+
+  should "only provide default middleware for development and deployment environments" do
+    Rack::Server.default_middleware_by_environment.keys.sort.should.equal %w(deployment development)
+  end
+
+  should "always return an empty array for unknown environments" do
     server = Rack::Server.new(:app => 'foo')
-    server.default_middleware_by_environment['deployment'].flatten.should.not.include(Rack::Lint)
-    server.default_middleware_by_environment['none'].flatten.should.not.include(Rack::Lint)
+    server.middleware['production'].should.equal []
   end
 
-  should "not include Rack::ShowExceptions in deployment or none environments" do
+  should "not include Rack::Lint in deployment environment" do
     server = Rack::Server.new(:app => 'foo')
-    server.default_middleware_by_environment['deployment'].flatten.should.not.include(Rack::ShowExceptions)
-    server.default_middleware_by_environment['none'].flatten.should.not.include(Rack::ShowExceptions)
+    server.middleware['deployment'].flatten.should.not.include(Rack::Lint)
   end
 
-  should "always return an empty array for unknown environments" do
+  should "not include Rack::ShowExceptions in deployment environment" do
     server = Rack::Server.new(:app => 'foo')
-    server.default_middleware_by_environment['production'].should.equal []
+    server.middleware['deployment'].flatten.should.not.include(Rack::ShowExceptions)
   end
 
   should "include Rack::TempfileReaper in deployment environment" do
@@ -66,11 +80,6 @@ describe Rack::Server do
     Rack::Server.logging_middleware.call(server).should.eql(nil)
   end
 
-  should "not force any middleware under the none configuration" do
-    server = Rack::Server.new(:app => 'foo')
-    server.default_middleware_by_environment['none'].should.be.empty
-  end
-
   should "use a full path to the pidfile" do
     # avoids issues with daemonize chdir
     opts = Rack::Server.new.send(:parse_options, %w[--pid testing.pid])