UNPKG

obniz

Version:

obniz sdk for javascript

159 lines (125 loc) 5.19 kB
const chai = require('chai'); const testUtil = require('../../../testUtil.js'); chai.use(require('chai-like')); chai.use(testUtil.obnizAssert); describe('ble.security', function() { beforeEach(function(done) { return testUtil.setupObnizPromise(this, done, { binary: true }); }); afterEach(function(done) { return testUtil.releaseObnizePromise(this, done); }); it('auth', function() { let requestJson = [{ ble: { security: { auth: ['bonding'] } } }]; let expecteBinaryStrings = ['b 23 01 1']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('auth2', function() { let requestJson = [{ ble: { security: { auth: ['bonding', 'mitm'] } } }]; let expecteBinaryStrings = ['b 23 01 5']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('auth3', function() { let requestJson = [ { ble: { security: { auth: ['bonding', 'mitm', 'secure_connection'] } } }, ]; let expecteBinaryStrings = ['b 23 01 d']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('auth4', function() { let requestJson = [{ ble: { security: { auth: ['secure_connection'] } } }]; let expecteBinaryStrings = ['b 23 01 8']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('auth5', function() { let requestJson = [{ ble: { security: { auth: [] } } }]; let expecteBinaryStrings = ['b 23 01 0']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('encryption_level1', function() { let requestJson = [{ ble: { security: { indicate_security_level: 1 } } }]; let expecteBinaryStrings = ['b 24 01 1']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('encryption_level2', function() { let requestJson = [{ ble: { security: { indicate_security_level: 0 } } }]; let expecteBinaryStrings = ['b 24 01 0']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('encryption_level3', function() { let requestJson = [{ ble: { security: { indicate_security_level: 3 } } }]; let expecteBinaryStrings = ['b 24 01 3']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('enableKeyTypes1', function() { let requestJson = [{ ble: { security: { key: { type: ['ltk'] } } } }]; let expecteBinaryStrings = ['b 25 01 1']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('enableKeyTypes2', function() { let requestJson = [{ ble: { security: { key: { type: [] } } } }]; let expecteBinaryStrings = ['b 25 01 0']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('enableKeyTypes3', function() { let requestJson = [ { ble: { security: { key: { type: ['ltk', 'irk'] } } } }, ]; let expecteBinaryStrings = ['b 25 01 3']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('enableKeyTypes4', function() { let requestJson = [ { ble: { security: { key: { type: ['ltk', 'irk', 'csrk'] } } } }, ]; let expecteBinaryStrings = ['b 25 01 7']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('enableKeyTypes5', function() { let requestJson = [{ ble: { security: { key: { type: ['csrk'] } } } }]; let expecteBinaryStrings = ['b 25 01 4']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('key size1', function() { let requestJson = [{ ble: { security: { key: { max_size: 16 } } } }]; let expecteBinaryStrings = ['b 26 01 10']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('key size2', function() { let requestJson = [{ ble: { security: { key: { max_size: 7 } } } }]; let expecteBinaryStrings = ['b 26 01 7']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('key size bad', function() { let requestJson = [{ ble: { security: { key: { max_size: 6 } } } }]; let expecteBinaryStrings = ['b 26 01 6']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('clear devies ', function() { let requestJson = [{ ble: { security: { devices: { clear: true } } } }]; let expecteBinaryStrings = ['b 28 0']; testUtil.checkJsonToBinary(requestJson, expecteBinaryStrings, this); }); it('receive error', function() { let requestBinaryString = 'b ff 40 40 0 9 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3F'; let expectedJson = [ { ble: { error: { module_error_code: 0, error_code: 9, function_code: 37, address: '000000000000', service_uuid: null, characteristic_uuid: null, descriptor_uuid: null, message: 'security param are already set on set security key type param', }, }, }, ]; testUtil.checkBinaryToJson(requestBinaryString, expectedJson, this); }); });