summaryrefslogtreecommitdiff
path: root/testprogs/ejs
diff options
context:
space:
mode:
Diffstat (limited to 'testprogs/ejs')
-rwxr-xr-xtestprogs/ejs/samba3sam78
1 files changed, 78 insertions, 0 deletions
diff --git a/testprogs/ejs/samba3sam b/testprogs/ejs/samba3sam
new file mode 100755
index 0000000000..223cd87eee
--- /dev/null
+++ b/testprogs/ejs/samba3sam
@@ -0,0 +1,78 @@
+#!/usr/bin/env smbscript
+
+libinclude("base.js");
+var sys = sys_init();
+var s3url;
+var s3 = ldb_init();
+var ok;
+
+if (ARGV.length == 2) {
+ s3url = ARGV[1];
+ ok = s3.connect(s3url);
+ assert(ok);
+} else {
+ s3url = "tdb://samba3.ldb";
+ sys.unlink("samba3.ldb");
+ println("Adding samba3 LDIF...");
+ var s3 = ldb_init();
+ ok = s3.connect(s3url);
+ assert(ok);
+ var ldif = sys.file_load("../../testdata/samba3/samba3.ldif");
+ assert(ldif != undefined);
+ ok = s3.add(ldif);
+ assert(ok);
+}
+
+println("Initial samba4 LDIF...");
+var s4 = ldb_init();
+ok = s4.connect("tdb://samba4.ldb");
+assert(ok);
+ok = s4.add(sprintf("
+dn: @MODULES
+@LIST: samba3sam
+
+dn: @MAP=samba3sam
+@MAP_URL: %s", s3url));
+assert(ok);
+
+println("Looking up by non-mapped attribute");
+msg = s4.search("(cn=Administrator)");
+assert(msg.length == 1);
+
+println("Looking up by mapped attribute");
+msg = s4.search("(name=Backup Operators)");
+assert(msg.length == 1);
+
+println("Looking up by old name of renamed attribute");
+msg = s4.search("(displayName=Backup Operators)");
+assert(msg.length == 1);
+
+println("Adding a record");
+ok = s4.add("
+dn: cn=Foo,dc=idealx,dc=org
+unixName: root
+lastLogon: 20000
+cn: Foo
+showInAdvancedViewOnly: TRUE
+");
+assert(ok);
+
+println("Checking for existance of record");
+msg = s4.search("(cn=Foo)", new Array('unixName','lastLogon','cn','showInAdvancedViewOnly'));
+assert(msg.length == 1);
+
+println("Checking for persistence of non-mappable attribute");
+msg = s4.search("(cn=Foo)", new Array('showInAdvancedViewOnly'));
+assert(msg.length == 1);
+
+println("Adding record with mapped attribute in dn");
+ok = s4.add("
+dn: unixName=nobody,dc=idealx,dc=org
+unixName: nobody
+cn: Niemand
+");
+assert(ok);
+
+println("Checking for existance of record (mapped)");
+msg = s4.search("(unixName=nobody)", new Array('unixName','cn','dn'));
+assert(msg.length == 1);