dee33774b37bd062176f7334eb0b291f280841fd
[bbaumbach/samba-autobuild/.git] / testprogs / ejs / ldb.js
1 #!/bin/sh
2 exec smbscript "$0" ${1+"$@"}
3 /*
4         demonstrate access to ldb databases from ejs
5 */
6
7
8 var ldb = ldb_init();
9
10 function basic_tests(ldb)
11 {
12         println("Running basic tests");
13         ok = ldb.add("
14 dn: cn=x,cn=test
15 objectClass: foo
16 x: 3
17 ");
18         assert(ok);
19
20         println("Testing ldb.search");
21         var res = ldb.search("(objectClass=*)");
22         assert(res[0].objectClass[0] == "foo");
23         assert(res[0].dn == "cn=x,cn=test");
24         assert(res[0].x == 3);
25
26         ok = ldb.add("
27 dn: cn=x2,cn=test
28 objectClass: foo
29 x: 4
30 ");
31         assert(ok);
32         var attrs = new Array("x");
33         res = ldb.search("x=4", attrs);
34         assert(res[0].x == 4);
35         assert(res[0].objectClass == undefined);
36         assert(res[0].dn == "cn=x2,cn=test");
37
38         ok = ldb.delete("cn=x,cn=test");
39         assert(ok);
40
41         ok = ldb.rename("cn=x2,cn=test", "cn=x3,cn=test");
42         assert(ok);
43         res = ldb.search("x=4", attrs);
44         assert(res[0].dn == "cn=x3,cn=test");
45
46         ok = ldb.modify("
47 dn: cn=x3,cn=test
48 changetype: modify
49 add: x
50 x: 7
51 ");
52
53         res = ldb.search("x=7");
54         assert(res.length == 1);
55         assert(res[0].x.length == 2);
56         
57 }
58
59 var sys = sys_init();
60 var dbfile = "test.ldb";
61 sys.unlink(dbfile);
62 var ok = ldb.connect("tdb://" + dbfile);
63 assert(ok);
64
65 basic_tests(ldb);
66
67 sys.unlink(dbfile);
68
69
70