aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lang/js/BrowserTestExtension/tests/KeyImportExport.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/KeyInfos.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/decryptTest.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/encryptDecryptTest.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/encryptTest.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/longRunningTests.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/signTest.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/startup.js2
-rw-r--r--lang/js/BrowserTestExtension/tests/verifyTest.js2
-rw-r--r--lang/js/src/Connection.js8
-rw-r--r--lang/js/src/index.js8
-rw-r--r--lang/js/unittests.js36
12 files changed, 41 insertions, 29 deletions
diff --git a/lang/js/BrowserTestExtension/tests/KeyImportExport.js b/lang/js/BrowserTestExtension/tests/KeyImportExport.js
index f57877f4..b3d95bbc 100644
--- a/lang/js/BrowserTestExtension/tests/KeyImportExport.js
+++ b/lang/js/BrowserTestExtension/tests/KeyImportExport.js
@@ -32,7 +32,7 @@ describe('Key importing', function () {
let context = null;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
context.Keyring.getKeys({ pattern: fpr }).then(
diff --git a/lang/js/BrowserTestExtension/tests/KeyInfos.js b/lang/js/BrowserTestExtension/tests/KeyInfos.js
index 553aedb9..d1229584 100644
--- a/lang/js/BrowserTestExtension/tests/KeyInfos.js
+++ b/lang/js/BrowserTestExtension/tests/KeyInfos.js
@@ -27,7 +27,7 @@
describe('Key information', function () {
let context = null;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/BrowserTestExtension/tests/decryptTest.js b/lang/js/BrowserTestExtension/tests/decryptTest.js
index 61a3fab9..5817eb49 100644
--- a/lang/js/BrowserTestExtension/tests/decryptTest.js
+++ b/lang/js/BrowserTestExtension/tests/decryptTest.js
@@ -29,7 +29,7 @@ describe('Decryption', function () {
const good_fpr = inputvalues.encrypt.good.fingerprint;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout:2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/BrowserTestExtension/tests/encryptDecryptTest.js b/lang/js/BrowserTestExtension/tests/encryptDecryptTest.js
index c10c5d06..b4e4f3fb 100644
--- a/lang/js/BrowserTestExtension/tests/encryptDecryptTest.js
+++ b/lang/js/BrowserTestExtension/tests/encryptDecryptTest.js
@@ -29,7 +29,7 @@ describe('Encryption and Decryption', function (){
let good_fpr = inputvalues.encrypt.good.fingerprint;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/BrowserTestExtension/tests/encryptTest.js b/lang/js/BrowserTestExtension/tests/encryptTest.js
index d97b458d..1017d714 100644
--- a/lang/js/BrowserTestExtension/tests/encryptTest.js
+++ b/lang/js/BrowserTestExtension/tests/encryptTest.js
@@ -28,7 +28,7 @@ describe('Encryption', function () {
let context = null;
const good_fpr = inputvalues.encrypt.good.fingerprint;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/BrowserTestExtension/tests/longRunningTests.js b/lang/js/BrowserTestExtension/tests/longRunningTests.js
index f28a6e78..534a95aa 100644
--- a/lang/js/BrowserTestExtension/tests/longRunningTests.js
+++ b/lang/js/BrowserTestExtension/tests/longRunningTests.js
@@ -27,7 +27,7 @@ describe('Long running Encryption/Decryption', function () {
let context = null;
const good_fpr = inputvalues.encrypt.good.fingerprint;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/BrowserTestExtension/tests/signTest.js b/lang/js/BrowserTestExtension/tests/signTest.js
index bd8db807..1e269e6a 100644
--- a/lang/js/BrowserTestExtension/tests/signTest.js
+++ b/lang/js/BrowserTestExtension/tests/signTest.js
@@ -29,7 +29,7 @@ describe('Signing', function () {
const good_fpr = inputvalues.encrypt.good.fingerprint;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/BrowserTestExtension/tests/startup.js b/lang/js/BrowserTestExtension/tests/startup.js
index cf5b0999..e7c74782 100644
--- a/lang/js/BrowserTestExtension/tests/startup.js
+++ b/lang/js/BrowserTestExtension/tests/startup.js
@@ -25,7 +25,7 @@
describe('GPGME context', function (){
it('Starting a GpgME instance', function (done){
- let prm = Gpgmejs.init();
+ let prm = Gpgmejs.init({ timeout: 2000 });
const input = inputvalues.someInputParameter;
prm.then(
function (context){
diff --git a/lang/js/BrowserTestExtension/tests/verifyTest.js b/lang/js/BrowserTestExtension/tests/verifyTest.js
index 04c7a77a..c63f6849 100644
--- a/lang/js/BrowserTestExtension/tests/verifyTest.js
+++ b/lang/js/BrowserTestExtension/tests/verifyTest.js
@@ -28,7 +28,7 @@
describe('Verifying data', function () {
let context = null;
before(function (done){
- const prm = Gpgmejs.init();
+ const prm = Gpgmejs.init({ timeout: 2000 });
prm.then(function (gpgmejs){
context = gpgmejs;
done();
diff --git a/lang/js/src/Connection.js b/lang/js/src/Connection.js
index 4055da6a..d43d55f1 100644
--- a/lang/js/src/Connection.js
+++ b/lang/js/src/Connection.js
@@ -74,11 +74,15 @@ export class Connection{
* Retrieves the information about the backend.
* @param {Boolean} details (optional) If set to false, the promise will
* just return if a connection was successful.
+ * @param {Number} timeout (optional)
* @returns {Promise<backEndDetails>|Promise<Boolean>} Details from the
* backend
* @async
*/
- checkConnection (details = true){
+ checkConnection (details = true, timeout = 1000){
+ if (typeof timeout !== 'number' && timeout <= 0) {
+ timeout = 1000;
+ }
const msg = createMessage('version');
if (details === true) {
return this.post(msg);
@@ -90,7 +94,7 @@ export class Connection{
new Promise(function (resolve, reject){
setTimeout(function (){
reject(gpgme_error('CONN_TIMEOUT'));
- }, 500);
+ }, timeout);
})
]).then(function (){ // success
resolve(true);
diff --git a/lang/js/src/index.js b/lang/js/src/index.js
index c52460cc..b8e4274d 100644
--- a/lang/js/src/index.js
+++ b/lang/js/src/index.js
@@ -31,13 +31,17 @@ import { Connection } from './Connection';
* connection once, and then offers the available functions as method of the
* response object.
* An unsuccessful attempt will reject as a GPGME_Error.
+ * @param {Object} config (optional) configuration options
+ * @param {Number} config.timeout set the timeout for the initial connection
+ * check. On some machines and operating systems a default timeout of 500 ms is
+ * too low, so a higher number might be attempted.
* @returns {Promise<GpgME>}
* @async
*/
-function init (){
+function init ({ timeout = 500 } = {}){
return new Promise(function (resolve, reject){
const connection = new Connection;
- connection.checkConnection(false).then(
+ connection.checkConnection(false, timeout).then(
function (result){
if (result === true) {
resolve(new GpgME());
diff --git a/lang/js/unittests.js b/lang/js/unittests.js
index de06320e..f28be76a 100644
--- a/lang/js/unittests.js
+++ b/lang/js/unittests.js
@@ -34,34 +34,38 @@ import { GPGME_Message, createMessage } from './src/Message';
mocha.setup('bdd');
const expect = chai.expect;
chai.config.includeStack = true;
+const connectionTimeout = 2000;
function unittests (){
describe('Connection testing', function (){
it('Connecting', function (done) {
let conn0 = new Connection;
- conn0.checkConnection().then(function (answer) {
- expect(answer).to.not.be.empty;
- expect(answer.gpgme).to.not.be.undefined;
- expect(answer.gpgme).to.be.a('string');
- expect(answer.info).to.be.an('Array');
- expect(conn0.disconnect).to.be.a('function');
- expect(conn0.post).to.be.a('function');
- done();
- });
+ conn0.checkConnection(true, connectionTimeout).then(
+ function (answer) {
+ expect(answer).to.not.be.empty;
+ expect(answer.gpgme).to.not.be.undefined;
+ expect(answer.gpgme).to.be.a('string');
+ expect(answer.info).to.be.an('Array');
+ expect(conn0.disconnect).to.be.a('function');
+ expect(conn0.post).to.be.a('function');
+ done();
+ });
});
it('Disconnecting', function (done) {
let conn0 = new Connection;
- conn0.checkConnection(false).then(function (answer) {
- expect(answer).to.be.true;
- conn0.disconnect();
- conn0.checkConnection(false).then(function (result) {
- expect(result).to.be.false;
- done();
+ conn0.checkConnection(false, connectionTimeout).then(
+ function (answer) {
+ expect(answer).to.be.true;
+ conn0.disconnect();
+ conn0.checkConnection(false, connectionTimeout).then(
+ function (result) {
+ expect(result).to.be.false;
+ done();
+ });
});
- });
});
});