control.test.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. 'use strict'
  2. const { test } = require('tap')
  3. const { BerReader, BerWriter } = require('@ldapjs/asn1')
  4. const { Control, getControl } = require('../../lib')
  5. test('new no args', function (t) {
  6. t.ok(new Control())
  7. t.end()
  8. })
  9. test('new with args', function (t) {
  10. const c = new Control({
  11. type: '2.16.840.1.113730.3.4.2',
  12. criticality: true
  13. })
  14. t.ok(c)
  15. t.equal(c.type, '2.16.840.1.113730.3.4.2')
  16. t.ok(c.criticality)
  17. t.end()
  18. })
  19. test('parse', function (t) {
  20. const ber = new BerWriter()
  21. ber.startSequence()
  22. ber.writeString('2.16.840.1.113730.3.4.2')
  23. ber.writeBoolean(true)
  24. ber.writeString('foo')
  25. ber.endSequence()
  26. const c = getControl(new BerReader(ber.buffer))
  27. t.ok(c)
  28. t.equal(c.type, '2.16.840.1.113730.3.4.2')
  29. t.ok(c.criticality)
  30. t.equal(c.value.toString('utf8'), 'foo')
  31. t.end()
  32. })
  33. test('parse no value', function (t) {
  34. const ber = new BerWriter()
  35. ber.startSequence()
  36. ber.writeString('2.16.840.1.113730.3.4.2')
  37. ber.endSequence()
  38. const c = getControl(new BerReader(ber.buffer))
  39. t.ok(c)
  40. t.equal(c.type, '2.16.840.1.113730.3.4.2')
  41. t.equal(c.criticality, false)
  42. t.notOk(c.value, null)
  43. t.end()
  44. })