prepare basic auth test
This commit is contained in:
parent
27dccfd6e7
commit
712147aa70
@ -16,3 +16,8 @@ development_dependencies:
|
|||||||
webmock:
|
webmock:
|
||||||
github: manastech/webmock.cr
|
github: manastech/webmock.cr
|
||||||
branch: master
|
branch: master
|
||||||
|
kemal:
|
||||||
|
github: kemalcr/kemal
|
||||||
|
version: ~> 1.0.0
|
||||||
|
kemal-basic-auth:
|
||||||
|
github: kemalcr/kemal-basic-auth
|
||||||
|
@ -1,15 +1,18 @@
|
|||||||
require "./spec_helper"
|
require "./spec_helper"
|
||||||
|
require "./server.cr"
|
||||||
WebMock.stub(:get, "http://auth.example.com/")
|
#WebMock.stub(:get, "http://auth.example.com/")
|
||||||
.with(headers: {"Authorization" => "Basic #{Base64.strict_encode("user:pass").chomp}"})
|
# .with(headers: {"Authorization" => "Basic #{Base64.strict_encode("user:pass").chomp}"})
|
||||||
.to_return(status: 200)
|
# .to_return(status: 200)
|
||||||
|
#
|
||||||
WebMock.stub(:get, "http://auth.example.com/")
|
#WebMock.stub(:get, "http://auth.example.com/")
|
||||||
.to_return(status: 401, headers: {"WWW-Authenticate" => "Basic realm=\"Access to the staging site\", charset=\"UTF-8\""})
|
# .to_return(status: 401, headers: {"WWW-Authenticate" => "Basic realm=\"Access to the staging site\", charset=\"UTF-8\""})
|
||||||
|
|
||||||
describe "Mechanize HTTP Authentication test" do
|
describe "Mechanize HTTP Authentication test" do
|
||||||
# it "auth" do
|
WebMock.allow_net_connect = true
|
||||||
# agent = Mechanize.new
|
it "auth" do
|
||||||
# agent.get("http://auth.example.com/")
|
agent = Mechanize.new
|
||||||
# end
|
page = agent.get("#{TEST_SERVER_URL}/secret")
|
||||||
|
p page.body
|
||||||
|
WebMock.allow_net_connect = false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
36
spec/server.cr
Normal file
36
spec/server.cr
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
require "kemal"
|
||||||
|
require "kemal-basic-auth"
|
||||||
|
|
||||||
|
TEST_SERVER_HOST = "0.0.0.0"
|
||||||
|
TEST_SERVER_PORT = 4567
|
||||||
|
TEST_SERVER_URL = "http://#{TEST_SERVER_HOST}:#{TEST_SERVER_PORT}"
|
||||||
|
|
||||||
|
class BasicAuthHandler < Kemal::BasicAuth::Handler
|
||||||
|
only ["/secret"]
|
||||||
|
|
||||||
|
def call(env)
|
||||||
|
return call_next(env) unless only_match?(env)
|
||||||
|
|
||||||
|
super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
add_handler BasicAuthHandler.new("username", "password")
|
||||||
|
|
||||||
|
get "/secret" do
|
||||||
|
"Authorized"
|
||||||
|
end
|
||||||
|
|
||||||
|
kemal_config = Kemal.config
|
||||||
|
kemal_config.env = "development"
|
||||||
|
kemal_config.logging = false
|
||||||
|
|
||||||
|
spawn do
|
||||||
|
Kemal.run(port: TEST_SERVER_PORT)
|
||||||
|
end
|
||||||
|
spawn do
|
||||||
|
sleep 300000
|
||||||
|
end
|
||||||
|
|
||||||
|
until Kemal.config.running
|
||||||
|
sleep 1.millisecond
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user