Author: abartlet
Date: 2007-11-14 03:51:02 +0000 (Wed, 14 Nov 2007)
New Revision: 25948

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=25948

Log:
Fix up the samba3sam test (which is very fragile) to work with the new
restrictions imposed by the samldb module.

This module is worth keeping, because when we go back to do more
extensive backend mapping, the testing of this module shows it is
still possible.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif
   branches/SAMBA_4_0/testprogs/ejs/samba3sam.js


Changeset:
Modified: branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif
===================================================================
--- branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif 2007-11-14 
03:10:03 UTC (rev 25947)
+++ branches/SAMBA_4_0/testdata/samba3/provision_samba3sam.ldif 2007-11-14 
03:51:02 UTC (rev 25948)
@@ -75,127 +75,4 @@
 vendorName: Samba Team (http://samba.org)
 vendorVersion: ${VERSION}
 
-dn: CN=Templates
-objectClass: top
-objectClass: container
-cn: Templates
-description: Container for SAM account templates
-instanceType: 4
-showInAdvancedViewOnly: TRUE
-systemFlags: 2348810240
-objectCategory: CN=Container,CN=Schema,CN=Configuration,${BASEDN}
-isCriticalSystemObject: TRUE
 
-###
-# note! the template users must not match normal searches. Be careful
-# with what classes you put them in
-###
-
-dn: CN=TemplateUser,CN=Templates
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
-objectClass: Template
-objectClass: userTemplate
-cn: TemplateUser
-instanceType: 4
-userAccountControl: 514
-badPwdCount: 0
-codePage: 0
-countryCode: 0
-badPasswordTime: 0
-lastLogoff: 0
-lastLogon: 0
-pwdLastSet: 0
-primaryGroupID: 513
-accountExpires: -1
-logonCount: 0
-sAMAccountType: 805306368
-objectCategory: CN=Person,CN=Schema,CN=Configuration,${BASEDN}
-
-dn: CN=TemplateComputer,CN=Templates
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
-objectClass: Template
-objectClass: userTemplate
-cn: TemplateComputer
-instanceType: 4
-userAccountControl: 4098
-badPwdCount: 0
-codePage: 0
-countryCode: 0
-badPasswordTime: 0
-lastLogoff: 0
-lastLogon: 0
-pwdLastSet: 0
-primaryGroupID: 513
-accountExpires: -1
-logonCount: 0
-sAMAccountType: 805306369
-objectCategory: CN=Computer,CN=Schema,CN=Configuration,${BASEDN}
-
-dn: CN=TemplateTrustingDomain,CN=Templates
-objectClass: top
-objectClass: Template
-objectClass: userTemplate
-cn: TemplateTrustingDomain
-instanceType: 4
-userAccountControl: 2080
-badPwdCount: 0
-codePage: 0
-countryCode: 0
-badPasswordTime: 0
-lastLogoff: 0
-lastLogon: 0
-primaryGroupID: 513
-accountExpires: -1
-logonCount: 0
-sAMAccountType: 805306370
-
-dn: CN=TemplateGroup,CN=Templates
-objectClass: top
-objectClass: Template
-objectClass: groupTemplate
-cn: TemplateGroup
-instanceType: 4
-groupType: -2147483646
-sAMAccountType: 268435456
-objectCategory: CN=Group,CN=Schema,CN=Configuration,${BASEDN}
-
-# Currently this isn't used, we don't have a way to detect it different from 
an incoming alias
-#
-# dn: CN=TemplateAlias,CN=Templates
-# objectClass: top
-# objectClass: Template
-# objectClass: aliasTemplate
-# cn: TemplateAlias
-# instanceType: 4
-# groupType: -2147483644
-# sAMAccountType: 268435456
-
-dn: CN=TemplateForeignSecurityPrincipal,CN=Templates
-objectClass: top
-objectClass: Template
-objectClass: foreignSecurityPrincipalTemplate
-cn: TemplateForeignSecurityPrincipal
-instanceType: 4
-showInAdvancedViewOnly: TRUE
-objectCategory: 
CN=Foreign-Security-Principal,CN=Schema,CN=Configuration,${BASEDN}
-
-dn: CN=TemplateSecret,CN=Templates
-objectClass: top
-objectClass: leaf
-objectClass: Template
-objectClass: secretTemplate
-cn: TemplateSecret
-instanceType: 4
-
-dn: CN=TemplateTrustedDomain,CN=Templates
-objectClass: top
-objectClass: leaf
-objectClass: Template
-objectClass: trustedDomainTemplate
-cn: TemplateTrustedDomain
-instanceType: 4
-

Modified: branches/SAMBA_4_0/testprogs/ejs/samba3sam.js
===================================================================
--- branches/SAMBA_4_0/testprogs/ejs/samba3sam.js       2007-11-14 03:10:03 UTC 
(rev 25947)
+++ branches/SAMBA_4_0/testprogs/ejs/samba3sam.js       2007-11-14 03:51:02 UTC 
(rev 25948)
@@ -263,8 +263,21 @@
        var dn;
        var attrs;
 
-       /* Add a set of split records */
+
        var ldif = "
+dn: " + "sambaDomainName=TESTS," + s3.BASEDN + "
+objectclass: sambaDomain
+objectclass: top
+sambaSID: S-1-5-21-4231626423-2410014848-2360679739
+sambaNextRid: 2000
+sambaDomainName: TESTS"
+       ldif = substitute_var(ldif, s3);
+       assert(ldif != undefined);
+       var ok = s3.db.add(ldif);
+       assert(ok.error == 0);
+
+       printf("Add a set of split records");
+       var ldif = "
 dn: " + s4.dn("cn=X") + "
 objectClass: user
 cn: X
@@ -297,6 +310,7 @@
 lastLogon: z
 description: y
 ";
+
        ldif = substitute_var(ldif, s4);
        assert(ldif != undefined);
        var ok = ldb.add(ldif);
@@ -305,7 +319,8 @@
                assert(ok.error == 0);
        }
 
-       /* Add a set of remote records */
+       println("Add a set of remote records");
+
        var ldif = "
 dn: " + s3.dn("cn=A") + "
 objectClass: posixAccount
@@ -429,7 +444,7 @@
        */
        res = ldb.search("(objectSid=*)", NULL, ldb. SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 2);
+       assert(res.msgs.length == 3);
        assert(res.msgs[0].dn == s4.dn("cn=X"));
        assert(res.msgs[0].dnsHostName == "x");
        assert(res.msgs[0].lastLogon == "x");
@@ -610,7 +625,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(revision=x))", NULL, ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 4);
+       assert(res.msgs.length == 5);
        assert(res.msgs[0].dn == s4.dn("cn=B"));
        assert(res.msgs[0].dnsHostName == undefined);
        assert(res.msgs[0].lastLogon == "y");
@@ -628,7 +643,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(description=x))", NULL, ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 2);
+       assert(res.msgs.length == 3);
        assert(res.msgs[0].dn == s4.dn("cn=Z"));
        assert(res.msgs[0].dnsHostName == "z");
        assert(res.msgs[0].lastLogon == "z");
@@ -640,7 +655,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(&(codePage=x)(revision=x)))", NULL, 
ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 4);
+       assert(res.msgs.length == 5);
        assert(res.msgs[0].dn == s4.dn("cn=B"));
        assert(res.msgs[0].dnsHostName == undefined);
        assert(res.msgs[0].lastLogon == "y");
@@ -658,7 +673,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(&(lastLogon=x)(description=x)))", NULL, 
ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 4);
+       assert(res.msgs.length == 5);
        assert(res.msgs[0].dn == s4.dn("cn=Y"));
        assert(res.msgs[0].dnsHostName == "y");
        assert(res.msgs[0].lastLogon == "y");
@@ -676,7 +691,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(&(codePage=x)(description=x)))", NULL, 
ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 4);
+       assert(res.msgs.length == 5);
        assert(res.msgs[0].dn == s4.dn("cn=B"));
        assert(res.msgs[0].dnsHostName == undefined);
        assert(res.msgs[0].lastLogon == "y");
@@ -711,7 +726,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(|(badPwdCount=x)(lastLogon=x)))", NULL, 
ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 3);
+       assert(res.msgs.length == 4);
        assert(res.msgs[0].dn == s4.dn("cn=Y"));
        assert(res.msgs[0].dnsHostName == "y");
        assert(res.msgs[0].lastLogon == "y");
@@ -726,7 +741,7 @@
        attrs = new Array("dnsHostName", "lastLogon");
        res = ldb.search("(!(|(revision=x)(lastLogon=y)))", NULL, 
ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 3);
+       assert(res.msgs.length == 4);
        assert(res.msgs[0].dn == s4.dn("cn=A"));
        assert(res.msgs[0].dnsHostName == undefined);
        assert(res.msgs[0].lastLogon == "x");
@@ -737,11 +752,11 @@
        assert(res.msgs[2].dnsHostName == undefined);
        assert(res.msgs[2].lastLogon == "z");
 
-       /* Search by complex parse tree */
+       println("Search by complex parse tree");
        attrs = new Array("dnsHostName", "lastLogon");
        res = 
ldb.search("(|(&(revision=x)(dnsHostName=x))(!(&(description=x)(nextRid=y)))(badPwdCount=y))",
 NULL, ldb.SCOPE_DEFAULT, attrs);
        assert(res.error == 0);
-       assert(res.msgs.length == 5);
+       assert(res.msgs.length == 6);
        assert(res.msgs[0].dn == s4.dn("cn=B"));
        assert(res.msgs[0].dnsHostName == undefined);
        assert(res.msgs[0].lastLogon == "y");
@@ -1174,18 +1189,28 @@
 samba3.db = ldb_init();
 samba3.dn = make_dn;
 
+var templates = new Object("templates partition info");
+templates.file = prefix + "/" + "templates.ldb";
+templates.url = "tdb://" + templates.file;
+templates.BASEDN = "cn=templates";
+templates.db = ldb_init();
+
 sys.unlink(ldbfile);
 sys.unlink(samba3.file);
+sys.unlink(templates.file);
 sys.unlink(samba4.file);
 
 var ok = ldb.connect(ldburl);
 assert(ok);
 var ok = samba3.db.connect(samba3.url);
 assert(ok);
+var ok = templates.db.connect(templates.url);
+assert(ok);
 var ok = samba4.db.connect(samba4.url);
 assert(ok);
 
 setup_data(samba3, sys.file_load(datadir + "/" + "samba3.ldif"));
+setup_data(templates, sys.file_load(datadir + "/" + 
"provision_samba3sam_templates.ldif"));
 setup_modules(ldb, samba3, samba4, sys.file_load(datadir + "/" + 
"provision_samba3sam.ldif"));
 
 ldb = ldb_init();
@@ -1197,6 +1222,7 @@
 
 sys.unlink(ldbfile);
 sys.unlink(samba3.file);
+sys.unlink(templates.file);
 sys.unlink(samba4.file);
 
 ldb = ldb_init();
@@ -1205,10 +1231,14 @@
 samba3.db = ldb_init();
 var ok = samba3.db.connect(samba3.url);
 assert(ok);
+templates.db = ldb_init();
+var ok = templates.db.connect(templates.url);
+assert(ok);
 samba4.db = ldb_init();
 var ok = samba4.db.connect(samba4.url);
 assert(ok);
 
+setup_data(templates, sys.file_load(datadir + "/" + 
"provision_samba3sam_templates.ldif"));
 setup_modules(ldb, samba3, samba4, sys.file_load(datadir + 
"provision_samba3sam.ldif"));
 
 ldb = ldb_init();

Reply via email to