1 var assert = require('assert')
2 , http = require('http')
3 , request = require('../index')
7 // Using header values captured from interaction with Apache
9 var numDigestRequests = 0;
11 var digestServer = http.createServer(function (req, res) {
12 console.error('Digest auth server: ', req.method, req.url);
17 if (req.headers.authorization) {
18 if (req.headers.authorization == 'Digest username="test", realm="Private", nonce="WpcHS2/TBAA=dffcc0dbd5f96d49a5477166649b7c0ae3866a93", uri="/test/", qop="auth", response="54753ce37c10cb20b09b769f0bed730e", nc="1", cnonce=""') {
21 // Bad auth header, don't send back WWW-Authenticate header
25 // No auth header, send back WWW-Authenticate header
27 res.setHeader('www-authenticate', 'Digest realm="Private", nonce="WpcHS2/TBAA=dffcc0dbd5f96d49a5477166649b7c0ae3866a93", algorithm=MD5, qop="auth"');
31 console.log('request ok');
34 console.log('status=401');
40 digestServer.listen(6767);
44 'uri': 'http://localhost:6767/test/',
48 'sendImmediately': false
50 }, function(error, response, body) {
51 assert.equal(response.statusCode, 200);
52 assert.equal(numDigestRequests, 2);
54 // If we don't set sendImmediately = false, request will send basic auth
57 'uri': 'http://localhost:6767/test/',
62 }, function(error, response, body) {
63 assert.equal(response.statusCode, 401);
64 assert.equal(numDigestRequests, 3);
66 console.log('All tests passed');