le-challenge-webroot.js/test.js

76 lignes
2.1 KiB
JavaScript
Brut Lien permanent Vue normale Historique

2016-08-09 17:17:28 +00:00
'use strict';
2016-10-12 22:25:17 +00:00
//var httpsOptions = require('localhost.daplie.com-certificates').merge({});
var webrootPath = '/tmp/acme-challenge';
var challenge = require('./').create({ debug: true, webrootPath: webrootPath });
2016-08-09 17:17:28 +00:00
var opts = challenge.getOptions();
var domain = 'example.com';
var token = 'token-id';
var key = 'secret-key';
challenge.remove(opts, domain, token, function () {
// ignore error, if any
challenge.set(opts, domain, token, key, function (err) {
// if there's an error, there's a problem
2016-10-12 22:25:17 +00:00
if (err) { throw err; }
2016-08-09 17:17:28 +00:00
// throw new Error("manually check /tmp/acme-challenge");
challenge.get(opts, domain, token, function (err, _key) {
// if there's an error, there's a problem
2016-10-12 22:25:17 +00:00
if (err) { throw err; }
2016-08-09 17:17:28 +00:00
// should retrieve the key
if (key !== _key) {
throw new Error("FAIL: could not get key by token");
}
challenge.remove(opts, domain, token, function () {
// if there's an error, there's a problem
2016-10-12 22:25:17 +00:00
if (err) { throw err; }
2016-08-09 17:17:28 +00:00
challenge.get(opts, domain, token, function (err, _key) {
// error here is okay
// should NOT retrieve the key
if (_key) {
throw new Error("FAIL: should not get key");
}
2016-10-12 22:25:17 +00:00
console.info('[PASS] unit test');
2016-08-09 17:17:28 +00:00
});
});
});
});
});
2016-10-12 22:25:17 +00:00
function loopbackTest() {
var http = require('http');
var serveStatic = require('serve-static')(webrootPath, { dotfiles: 'allow' });
var finalhandler = require('finalhandler');
var server = http.createServer(function (req, res) {
2016-10-12 22:59:03 +00:00
// fail on purpose
//setTimeout(function () {
2016-10-12 22:25:17 +00:00
req.url = req.url.replace(/^\/\.well-known\/acme-challenge\//, '/');
serveStatic(req, res, finalhandler(req, res));
2016-10-12 22:59:03 +00:00
//}, 2000);
2016-10-12 22:25:17 +00:00
});
server.listen(0, function () {
var port = server.address().port;
opts.webrootPath = webrootPath;
2016-10-12 22:51:41 +00:00
opts.loopbackPort = port;
opts.loopbackTimeout = 500;
2016-10-12 22:25:17 +00:00
challenge.test(opts, 'localhost', 'foo', 'bar', function (err) {
server.close();
2016-10-12 22:59:03 +00:00
if (err) { console.error(err.stack); process.exit(1); return; }
2016-10-12 22:25:17 +00:00
console.info('[PASS] localhost loopback');
});
});
}
loopbackTest();