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