GH-16: dn.equals broken on empty strings
This commit is contained in:
parent
d2d99d14a6
commit
be3d5fa7fa
19
lib/dn.js
19
lib/dn.js
|
@ -268,14 +268,19 @@ DN.prototype.equals = function(dn) {
|
||||||
for (var i = 0; i < this.rdns.length; i++) {
|
for (var i = 0; i < this.rdns.length; i++) {
|
||||||
var ours = this.rdns[i];
|
var ours = this.rdns[i];
|
||||||
var theirs = dn.rdns[i];
|
var theirs = dn.rdns[i];
|
||||||
for (var k in ours) {
|
var ourKeys = Object.keys(ours);
|
||||||
if (ours.hasOwnProperty(k)) {
|
var theirKeys = Object.keys(theirs);
|
||||||
if (!theirs.hasOwnProperty(k))
|
if (ourKeys.length !== theirKeys.length)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (ours[k] !== theirs[k])
|
ourKeys.sort();
|
||||||
return false;
|
theirKeys.sort();
|
||||||
}
|
|
||||||
|
for (var j = 0; j < ourKeys.length; j++) {
|
||||||
|
if (ourKeys[j] !== theirKeys[j])
|
||||||
|
return false;
|
||||||
|
if (ours[ourKeys[j]] !== theirs[ourKeys[j]])
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,3 +110,16 @@ test('parent of', function(t) {
|
||||||
t.ok(dn1.parentOf(dn.parse('cn=moo, cn=foo, dc=bar')));
|
t.ok(dn1.parentOf(dn.parse('cn=moo, cn=foo, dc=bar')));
|
||||||
t.end();
|
t.end();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
test('empty DNs GH-16', function(t) {
|
||||||
|
var _dn = dn.parse('');
|
||||||
|
var _dn2 = dn.parse('cn=foo');
|
||||||
|
t.notOk(_dn.equals('cn=foo'));
|
||||||
|
t.notOk(_dn2.equals(''));
|
||||||
|
t.notOk(_dn.parentOf('cn=foo'));
|
||||||
|
t.notOk(_dn.childOf('cn=foo'));
|
||||||
|
t.notOk(_dn2.parentOf(''));
|
||||||
|
t.notOk(_dn2.childOf(''));
|
||||||
|
t.end();
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in New Issue