racket/collects/tests/web-server/servlet/basic-auth-test.rkt
2010-05-17 12:07:32 -04:00

45 lines
1.3 KiB
Racket

#lang racket
(require rackunit
web-server/http
net/url)
(provide basic-auth-tests)
(define (make-req hs)
(make-request
#"GET" (string->url "http://test.com/foo")
hs
(delay empty) #f
"host" 80 "client"))
(define (header->cons h)
(cons (header-field h) (header-value h)))
(define basic-auth-tests
(test-suite
"Basic Authentication"
(test-case
"make-basic-auth-header"
(check-equal? (header->cons (make-basic-auth-header "realm"))
(cons #"WWW-Authenticate"
#"Basic realm=\"realm\"")))
(test-case
"Simple"
(check-equal? (request->basic-credentials
(make-req (list (make-header #"Authorization" #"Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="))))
(cons #"Aladdin" #"open sesame")))
(test-case
"Value error"
(check-false (request->basic-credentials (make-req (list (make-header #"Authorization" #"Basic adfadQWxhZGRpb124134jpvcGVu="))))))
(test-case
"No header"
(check-false (request->basic-credentials (make-req (list)))))
(test-case
"Case"
(check-equal? (request->basic-credentials (make-req (list (make-header #"AuthoRIZation" #"Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="))))
(cons #"Aladdin" #"open sesame")))))