Skip to content
This repository was archived by the owner on May 14, 2024. It is now read-only.

Commit 4c75096

Browse files
author
John Johnston
committed
chore: add 'modify DN excessive superior length' unit test
1 parent badf820 commit 4c75096

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

test/client.test.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,34 @@ tap.test('modify DN excessive length (GH-480)', function (t) {
694694
})
695695
})
696696

697+
tap.test('modify DN excessive superior length', function (t) {
698+
const { BerReader, BerWriter } = require('asn1')
699+
const ModifyDNRequest = require('../lib/messages/moddn_request')
700+
const ber = new BerWriter()
701+
const entry = 'cn=Test User,ou=A Long OU ,ou=Another Long OU ,ou=Another Long OU ,dc=acompany,DC=io'
702+
const newSuperior = 'ou=A New Long OU , ou=Another New Long OU , ou=An OU , dc=acompany, dc=io'
703+
const newRdn = entry.replace(/(.*?),.*/, '$1')
704+
const deleteOldRdn = true
705+
const req = new ModifyDNRequest({
706+
entry: entry,
707+
deleteOldRdn: deleteOldRdn,
708+
controls: []
709+
})
710+
req.newRdn = newRdn
711+
req.newSuperior = newSuperior
712+
req._toBer(ber)
713+
const reader = new BerReader(ber.buffer)
714+
t.equal(reader.readString(), entry)
715+
t.equal(reader.readString(), newRdn)
716+
t.equal(reader.readBoolean(), deleteOldRdn)
717+
t.equal(reader.readByte(), 0x80)
718+
reader.readLength()
719+
t.equal(reader._len, newSuperior.length)
720+
reader._buf[--reader._offset] = 0x4
721+
t.equal(reader.readString(), newSuperior)
722+
t.end()
723+
})
724+
697725
tap.test('search basic', function (t) {
698726
t.context.client.search('cn=test, ' + SUFFIX, '(objectclass=*)', function (err, res) {
699727
t.error(err)

0 commit comments

Comments
 (0)