r9813: Conver testsuite for samba3sam module to EJS
[ira/wip.git] / testprogs / ejs / samba3sam
1 #!/usr/bin/env smbscript
2
3 libinclude("base.js");
4 var sys = sys_init();
5 var s3url;
6 var s3 = ldb_init();
7 var ok;
8
9 if (ARGV.length == 2) {
10         s3url = ARGV[1];
11         ok = s3.connect(s3url);
12         assert(ok);
13 } else {
14         s3url = "tdb://samba3.ldb";
15         sys.unlink("samba3.ldb");
16         println("Adding samba3 LDIF...");
17         var s3 = ldb_init();
18         ok = s3.connect(s3url);
19         assert(ok);
20         var ldif = sys.file_load("../../testdata/samba3/samba3.ldif");
21         assert(ldif != undefined);
22         ok = s3.add(ldif);
23         assert(ok);
24 }
25
26 println("Initial samba4 LDIF...");
27 var s4 = ldb_init();
28 ok = s4.connect("tdb://samba4.ldb");
29 assert(ok);
30 ok = s4.add(sprintf("
31 dn: @MODULES
32 @LIST: samba3sam
33
34 dn: @MAP=samba3sam
35 @MAP_URL: %s", s3url));
36 assert(ok);
37
38 println("Looking up by non-mapped attribute");
39 msg = s4.search("(cn=Administrator)");
40 assert(msg.length == 1);
41
42 println("Looking up by mapped attribute");
43 msg = s4.search("(name=Backup Operators)");
44 assert(msg.length == 1);
45
46 println("Looking up by old name of renamed attribute");
47 msg = s4.search("(displayName=Backup Operators)");
48 assert(msg.length == 1);
49
50 println("Adding a record");
51 ok = s4.add("
52 dn: cn=Foo,dc=idealx,dc=org
53 unixName: root
54 lastLogon: 20000
55 cn: Foo
56 showInAdvancedViewOnly: TRUE
57 ");
58 assert(ok);
59
60 println("Checking for existance of record");
61 msg = s4.search("(cn=Foo)", new Array('unixName','lastLogon','cn','showInAdvancedViewOnly'));
62 assert(msg.length == 1);
63
64 println("Checking for persistence of non-mappable attribute");
65 msg = s4.search("(cn=Foo)", new Array('showInAdvancedViewOnly'));
66 assert(msg.length == 1);
67
68 println("Adding record with mapped attribute in dn");
69 ok = s4.add("
70 dn: unixName=nobody,dc=idealx,dc=org
71 unixName: nobody 
72 cn: Niemand
73 ");
74 assert(ok);
75
76 println("Checking for existance of record (mapped)");
77 msg = s4.search("(unixName=nobody)", new Array('unixName','cn','dn'));
78 assert(msg.length == 1);