test/spec_builder.rb in rack-1.2.8 vs test/spec_builder.rb in rack-1.3.0.beta
- old
+ new
@@ -118,6 +118,35 @@
Rack::MockRequest.new(app).get("/").status.should.equal 200
Rack::MockRequest.new(app).get("/").should.be.server_error
end
+ describe "parse_file" do
+ def config_file(name)
+ File.join(File.dirname(__FILE__), 'builder', name)
+ end
+
+ it "parses commented options" do
+ app, options = Rack::Builder.parse_file config_file('options.ru')
+ options[:debug].should.be.true
+ Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
+ end
+
+ it "removes __END__ before evaluating app" do
+ app, options = Rack::Builder.parse_file config_file('end.ru')
+ Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
+ end
+
+ it "supports multi-line comments" do
+ lambda {
+ Rack::Builder.parse_file config_file('comment.ru')
+ }.should.not.raise(SyntaxError)
+ end
+
+ it "requires anything not ending in .ru" do
+ $: << File.dirname(__FILE__)
+ app, options = Rack::Builder.parse_file 'builder/anything'
+ Rack::MockRequest.new(app).get("/").body.to_s.should.equal 'OK'
+ $:.pop
+ end
+ end
end