From 94d99612b9093ca83da3b6b66f875915eeabb389 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 15 Jul 2005 11:10:38 +0000 Subject: r8488: after discussions with simo, moved to a full OO interface, so you don't need to keep a 'db' variable around. The ldb object knows what it is connected to. Added a simple ldb testsuite in testprogs/ldb.js (This used to be commit cf35818648b5b649d0cd25f115a04b7b5b5311aa) --- testprogs/ejs/ldb.js | 70 ++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 57 insertions(+), 13 deletions(-) (limited to 'testprogs') diff --git a/testprogs/ejs/ldb.js b/testprogs/ejs/ldb.js index f27f49c7a4..dee33774b3 100644 --- a/testprogs/ejs/ldb.js +++ b/testprogs/ejs/ldb.js @@ -1,26 +1,70 @@ +#!/bin/sh +exec smbscript "$0" ${1+"$@"} /* demonstrate access to ldb databases from ejs */ -println("Trying a attribute constrained search on samdb"); -var dbfile = lpGet("sam database"); -var attrs = new Array("name", "dnsDomain", "objectSid", "dn"); var ldb = ldb_init(); -res = ldb.search(dbfile, "(objectClass=domain)", attrs); +function basic_tests(ldb) +{ + println("Running basic tests"); + ok = ldb.add(" +dn: cn=x,cn=test +objectClass: foo +x: 3 +"); + assert(ok); -printVars(res); + println("Testing ldb.search"); + var res = ldb.search("(objectClass=*)"); + assert(res[0].objectClass[0] == "foo"); + assert(res[0].dn == "cn=x,cn=test"); + assert(res[0].x == 3); -println("and now an unconstrained search"); + ok = ldb.add(" +dn: cn=x2,cn=test +objectClass: foo +x: 4 +"); + assert(ok); + var attrs = new Array("x"); + res = ldb.search("x=4", attrs); + assert(res[0].x == 4); + assert(res[0].objectClass == undefined); + assert(res[0].dn == "cn=x2,cn=test"); -var dbfile = lpGet("sam database"); -var db = ldb.connect(dbfile); -res = ldb.search(db, "(objectClass=user)"); -printVars(res); + ok = ldb.delete("cn=x,cn=test"); + assert(ok); + + ok = ldb.rename("cn=x2,cn=test", "cn=x3,cn=test"); + assert(ok); + res = ldb.search("x=4", attrs); + assert(res[0].dn == "cn=x3,cn=test"); + + ok = ldb.modify(" +dn: cn=x3,cn=test +changetype: modify +add: x +x: 7 +"); + + res = ldb.search("x=7"); + assert(res.length == 1); + assert(res[0].x.length == 2); + +} + +var sys = sys_init(); +var dbfile = "test.ldb"; +sys.unlink(dbfile); +var ok = ldb.connect("tdb://" + dbfile); +assert(ok); + +basic_tests(ldb); + +sys.unlink(dbfile); -println("and a bad search"); -res = ldb.search(db, "foo"); -println("all done"); -- cgit