spec/lib/test_web_server.rb in bigbench-0.0.1 vs spec/lib/test_web_server.rb in bigbench-0.0.2
- old
+ new
@@ -1,18 +1,47 @@
-module TestWebServer
- mattr_accessor :server
-
- def self.start
- TestWebServer.server = Thread.new {
- app = proc { [200, {'Content-Type' => 'text/plain'}, ['Test']] }
- Rack::Handler::Thin.run(app,:Port => 3001)
- }
- puts "Starting Test Webserver"
- sleep 2
+require 'rubygems'
+require 'sinatra'
+
+set :port, 3001
+
+helpers do
+ def protected!
+ unless authorized?
+ response['WWW-Authenticate'] = %(Basic realm="BigBench TestWebServer")
+ throw(:halt, [401, "Not authorized\n"])
+ end
end
-
- def self.stop
- Thread.kill(TestWebServer.server)
- puts "Stopping Test Webserver"
+
+ def authorized?
+ @auth ||= Rack::Auth::Basic::Request.new(request.env)
+ @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['admin', 'secret']
end
-
+end
+
+# Base HTTP Verbs
+get "/" do
+ "Test"
+end
+
+put "/" do
+ "Test"
+end
+
+post "/" do
+ "Test"
+end
+
+delete "/" do
+ "Test"
+end
+
+# Basic Auth URL
+get "/basic/auth" do
+ protected!
+ "Test"
+end
+
+# Needs Body Params
+post "/post/content" do
+ status 406 unless params[:name] == "bigbench" and params[:id] == "1"
+ "Test"
end
\ No newline at end of file