blob: ef6102a9ef982c9a382002fc0cdf6272fe91bc40 [file] [log] [blame]
'use strict';
var http = require('http');
var PouchDB = require('../../packages/pouchdb-for-coverage');
var should = require("chai").should();
describe('test.auth.js', function () {
var server;
var headers;
var PORT = 9615;
before(function (done) {
server = http.createServer(function (req, res) {
headers = req.headers;
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('');
});
server.listen(PORT, done);
});
after(function () {
return server.close();
});
it('Test auth headers are sent correctly', function () {
var opts = {auth: {username: 'foo', password: 'bar'}};
var url = 'http://127.0.0.1:' + PORT;
return new PouchDB(url, opts).info().then(function () {
should.equal(headers.authorization, 'Basic Zm9vOmJhcg==');
});
});
it('Test auth headers via url are sent correctly', function () {
var url = 'http://foo:bar@127.0.0.1:' + PORT;
return new PouchDB(url).info().then(function () {
should.equal(headers.authorization, 'Basic Zm9vOmJhcg==');
});
});
it('Test auth with unicode', function () {
var opts = {auth: {username: 'Иванов И.И.', password: 'Секрет'}};
var url = 'http://127.0.0.1:' + PORT;
return new PouchDB(url, opts).info().then(function () {
should.equal(headers.authorization,
'Basic 0JjQstCw0L3QvtCyINCYLtCYLjrQodC10LrRgNC10YI=');
});
});
});