summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/custodian/protocoltest/http.rb44
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/custodian/protocoltest/http.rb b/lib/custodian/protocoltest/http.rb
index 89d8f18..34e4b6e 100644
--- a/lib/custodian/protocoltest/http.rb
+++ b/lib/custodian/protocoltest/http.rb
@@ -63,6 +63,11 @@ module Custodian
#
@redirect = true
+ #
+ # No basic-authentication by default
+ #
+ @username = nil
+ @password = nil
#
# Ensure we've got a HTTP/HTTPS url.
@@ -99,6 +104,18 @@ module Custodian
#
+ # Look for username & password
+ #
+ if line =~ /with auth '([^']+)'/
+ data = $1.dup
+ @username, @password = data.split( ":" )
+ end
+ if line =~ /with auth "([^"]+)"/
+ data = $1.dup
+ @username, @password = data.split( ":" )
+ end
+
+ #
# Expected status
#
if line =~ /with status ([0-9]+)/
@@ -181,6 +198,24 @@ module Custodian
end
#
+ # Do we have basic auth?
+ #
+ def basic_auth?
+ ( @username.nil? == false ) && ( @password.nil? == false )
+ end
+
+ #
+ # Get the username/password for basic-auth
+ #
+ def basic_auth_username
+ @username
+ end
+
+ def basic_auth_password
+ @password
+ end
+
+ #
# Allow this test to be serialized.
#
def to_s
@@ -240,6 +275,15 @@ module Custodian
c.resolve_mode = resolve_mode
#
+ # Should we use HTTP basic-auth?
+ #
+ if basic_auth?
+ c.http_auth_types = :basic
+ c.username = basic_auth_username
+ c.password = basic_auth_password
+ end
+
+ #
# Should we follow redirections?
#
if follow_redirects?