js: removed config

--

* There is no use for a configuration at the moment, and it seems
  improbable that this use will arise.
This commit is contained in:
Maximilian Krambach 2018-06-11 15:10:43 +02:00
parent e97e6c06e9
commit e154554e9a
5 changed files with 7 additions and 102 deletions

View File

@ -53,14 +53,6 @@ const inputvalues = {// eslint-disable-line no-unused-vars
// bogus fingerprint) // bogus fingerprint)
fingerprint: 'CDC3A2B2860625CCBFC5AAAAAC6D1B604967FC4A' fingerprint: 'CDC3A2B2860625CCBFC5AAAAAC6D1B604967FC4A'
} }
},
init: {
// some parameters
invalid_startups: [
{all_passwords: true},
'openpgpmode',
{api_style:'frankenstein'}
]
} }
}; };

View File

@ -22,7 +22,6 @@
*/ */
/* global describe, it, expect, Gpgmejs */ /* global describe, it, expect, Gpgmejs */
/* global inputvalues */
describe('GPGME context', function(){ describe('GPGME context', function(){
it('Starting a GpgME instance', function(done){ it('Starting a GpgME instance', function(done){
@ -36,19 +35,3 @@ describe('GPGME context', function(){
}); });
}); });
}); });
describe('GPGME does not start with invalid parameters', function(){
for (let i=0; i < inputvalues.init.invalid_startups.length; i++){
it('Parameter '+ i, function(done){
let prm = Gpgmejs.init(inputvalues.init.invalid_startups[i]);
prm.then(function(context){
expect(context).to.be.undefined;
done();
}, function(error){
expect(error).to.be.an.instanceof(Error);
expect(error.code).to.equal('PARAM_WRONG');
done();
});
});
}
});

View File

@ -1,34 +0,0 @@
/* gpgme.js - Javascript integration for gpgme
* Copyright (C) 2018 Bundesamt für Sicherheit in der Informationstechnik
*
* This file is part of GPGME.
*
* GPGME is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* GPGME is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this program; if not, see <http://www.gnu.org/licenses/>.
* SPDX-License-Identifier: LGPL-2.1+
*
* Author(s):
* Maximilian Krambach <mkrambach@intevation.de>
*/
export const availableConf = {
null_expire_is_never: [true, false],
// cachedKeys: Some Key info will not be queried on each invocation,
// manual refresh by Key.refresh()
cachedKeys: [true, false]
};
export const defaultConf = {
null_expire_is_never: false,
cachedKeys: false
};

View File

@ -30,10 +30,8 @@ import { GPGME_Keyring } from './Keyring';
export class GpgME { export class GpgME {
/** /**
* initializes GpgME by opening a nativeMessaging port * initializes GpgME by opening a nativeMessaging port
* TODO: add configuration
*/ */
constructor(config){ //TODO config not parsed constructor(){
this._config = config;
} }
set Keyring(keyring){ set Keyring(keyring){

View File

@ -25,24 +25,20 @@
import { GpgME } from './gpgmejs'; import { GpgME } from './gpgmejs';
import { gpgme_error } from './Errors'; import { gpgme_error } from './Errors';
import { Connection } from './Connection'; import { Connection } from './Connection';
import { defaultConf, availableConf } from './Config';
/** /**
* Initializes a nativeMessaging Connection and returns a GPGMEjs object * Tests nativeMessaging once and returns a GpgME object if successful.
* @param {Object} config Configuration. See Config.js for available parameters. * @returns {GpgME | Error}
* Still TODO *
* @async
*/ */
function init(config){ function init(){
let _conf = parseconfiguration(config);
if (_conf instanceof Error){
return Promise.reject(_conf);
}
return new Promise(function(resolve, reject){ return new Promise(function(resolve, reject){
let connection = new Connection; let connection = new Connection;
connection.checkConnection(false).then( connection.checkConnection(false).then(
function(result){ function(result){
if (result === true) { if (result === true) {
resolve(new GpgME(_conf)); resolve(new GpgME());
} else { } else {
reject(gpgme_error('CONN_NO_CONNECT')); reject(gpgme_error('CONN_NO_CONNECT'));
} }
@ -52,36 +48,6 @@ function init(config){
}); });
} }
function parseconfiguration(rawconfig = {}){
if ( typeof(rawconfig) !== 'object'){
return gpgme_error('PARAM_WRONG');
}
let result_config = {};
let conf_keys = Object.keys(rawconfig);
for (let i=0; i < conf_keys.length; i++){
if (availableConf.hasOwnProperty(conf_keys[i])){
let value = rawconfig[conf_keys[i]];
if (availableConf[conf_keys[i]].indexOf(value) < 0){
return gpgme_error('PARAM_WRONG');
} else {
result_config[conf_keys[i]] = value;
}
}
else {
return gpgme_error('PARAM_WRONG');
}
}
let default_keys = Object.keys(defaultConf);
for (let j=0; j < default_keys.length; j++){
if (!result_config.hasOwnProperty(default_keys[j])){
result_config[default_keys[j]] = defaultConf[default_keys[j]];
}
}
return result_config;
}
export default { export default {
init: init init: init
}; };