opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_1.ldif
@@ -23,19 +23,19 @@ # Copyright 2006-2008 Sun Microsystems, Inc. # dn: dc=rfc-2247-tests,dc=example,dc=com dn: dc=rfc-2247-tests,o=rfc tests,dc=example,dc=com dc: rfc-2247-tests o: Crucial RFC Tests objectclass: top objectclass: dcObject objectclass: organization dn: ou=People,dc=rfc-2247-tests,dc=example,dc=com dn: ou=People,dc=rfc-2247-tests,o=rfc tests,dc=example,dc=com ou: People objectclass: top objectclass: organizationalunit dn: uid=nmiller, ou=People,dc=rfc-2247-tests,dc=example,dc=com dn: uid=nmiller, ou=People,dc=rfc-2247-tests,o=rfc tests,dc=example,dc=com cn: Nate Miller sn: Miller givenname: Nate opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_2.ldif
@@ -23,17 +23,17 @@ # Copyright 2006-2008 Sun Microsystems, Inc. # dn: dc=rfc-2247-tests-2,dc=example,dc=com dn: dc=rfc-2247-tests-2,o=rfc tests,dc=example,dc=com dc: rfc-2247-tests-2 objectclass: top objectclass: domain dn: ou=People,dc=rfc-2247-tests-2,dc=example,dc=com dn: ou=People,dc=rfc-2247-tests-2,o=rfc tests,dc=example,dc=com ou: People objectclass: top objectclass: organizationalunit dn: uid=nmiller, ou=People,dc=rfc-2247-tests-2,dc=example,dc=com dn: uid=nmiller, ou=People,dc=rfc-2247-tests-2,o=rfc tests,dc=example,dc=com cn: Nate Miller sn: Miller givenname: Nate opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_3.ldif
@@ -23,7 +23,7 @@ # Copyright 2006-2008 Sun Microsystems, Inc. # dn: dc=rfc-2247-tests-3,dc=example,dc=com dn: dc=rfc-2247-tests-3,o=rfc tests,dc=example,dc=com dc: rfc-2247-tests-3 o: Crucial RFC Tests objectclass: top opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2247_4.ldif
@@ -23,7 +23,7 @@ # Copyright 2006-2008 Sun Microsystems, Inc. # dn: dc=rfc-2247-tests-4,dc=example,dc=com dn: dc=rfc-2247-tests-4,o=rfc tests,dc=example,dc=com dc: rfc-2247-tests-4 objectclass: top objectclass: dcObject opends/tests/staf-tests/functional-tests/shared/data/schema/ldifs/rfc2377.ldif
@@ -23,36 +23,36 @@ # Copyright 2006-2008 Sun Microsystems, Inc. # dn: dc=rfc-2377-tests,dc=example,dc=com dn: dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com dc: rfc-2377-tests o: Crucial RFC Tests objectclass: top objectclass: dcObject objectclass: organization dn: dc=Europe, dc=rfc-2377-tests,dc=example,dc=com dn: dc=Europe, dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com dc: Europe o: Europe Crucial RFC Tests objectclass: top objectclass: dcObject objectclass: organization dn: dc=North America, dc=rfc-2377-tests,dc=example,dc=com dn: dc=North America, dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com dc: North America objectclass: top objectclass: domain dn: ou=People,dc=Europe,dc=rfc-2377-tests,dc=example,dc=com dn: ou=People,dc=Europe,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com ou: People objectclass: top objectclass: organizationalunit dn: ou=People,dc=North America,dc=rfc-2377-tests,dc=example,dc=com dn: ou=People,dc=North America,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com ou: People objectclass: top objectclass: organizationalunit dn: uid=nmiller, ou=People,dc=Europe,dc=rfc-2377-tests,dc=example,dc=com dn: uid=nmiller, ou=People,dc=Europe,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com cn: Nate Miller sn: Miller givenname: Nate @@ -70,7 +70,7 @@ roomnumber: 4135 userpassword: gosling dn: uid=lmiller, ou=People,dc=North America,dc=rfc-2377-tests,dc=example,dc=com dn: uid=lmiller, ou=People,dc=North America,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com cn: Late Miller sn: Miller givenname: Late @@ -88,7 +88,7 @@ roomnumber: 4135 userpassword: gosling dn: cn=Anton Miller, ou=People,dc=Europe,dc=rfc-2377-tests,dc=example,dc=com dn: cn=Anton Miller, ou=People,dc=Europe,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com cn: Anton Miller sn: Miller givenname: Anton @@ -106,7 +106,7 @@ roomnumber: 4135 userpassword: gosling dn: cn=Art Miller, ou=People,dc=North America,dc=rfc-2377-tests,dc=example,dc=com dn: cn=Art Miller, ou=People,dc=North America,dc=rfc-2377-tests,o=rfc tests,dc=example,dc=com cn: Art Miller sn: Miller givenname: Art opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/rfc4876.ldif
New file @@ -0,0 +1,167 @@ # # Container for Solaris Schema (RFC 4876) Tests # dn: o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: dcObject objectClass: organization objectClass: nisDomainObject dc: rfc4876 o: rfc4876 description: DIT for Solaris Schema Tests (RFC 4876,Solaris) nisDomain: rfc4876 # # Container for passwd entries. See solaris.schema and nis.schema for # additional containers we could create here. # dn: ou=People,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: organizationalUnit ou: People # # Container for group entries. See solaris.schema and nis.schema for # additional containers we could create here. # dn: ou=Group,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: organizationalUnit ou: Group dn: ou=profile,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: organizationalUnit ou: profile description: Profile dn: cn=example,ou=profile,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: top objectClass: DUAConfigProfile cn: example defaultServerList: ldap1.example.com ldap2.example.com 192.168.169.170 ldap1.mycorp.com ldap2:1389 [1080::8:800:200C:417A]:5912 preferredServerList: ldap3.example.com ldap4.example.com 192.168.169.170 ldap2:1389 [1080::8:800:200C:417A]:389 defaultSearchBase: o=Solaris Schema Tests, dc=example,dc=com defaultSearchScope: one authenticationMethod: tls:simple;sasl/DIGEST-MD5 credentialLevel: proxy anonymous searchTimeLimit: 30 bindTimeLimit: 2 followReferrals: TRUE dereferenceAliases: FALSE profileTTL: 43200 serviceSearchDescriptor: email:ou=people,ou=org1,? one;ou=contractor,?one; ref:cn=profile,dc=mycompany,dc=com serviceCredentialLevel: email:proxy anonymous serviceAuthenticationMethod: email:tls:simple;sasl/DIGEST-MD5 objectclassMap: email:cn=employeeName attributeMap: email:mail=email attributeMap: email:cn=employeeName attributeMap: email:cn=firstName lastName # # LDAP Proxy Agents File # # # Base organizational unit for proxy agents. # dn: ou=LDAPauth,dc=example,dc=com objectClass: top objectClass: organizationalUnit ou: LDAPauth description: LDAP Proxy Agent Subtree. # # Proxy agent for solaris based machines. # dn: cn=solaris,ou=LDAPauth,dc=example,dc=com objectClass: top objectClass: person cn: solaris sn: Solaris Proxy Agent userPassword: SolarisRulz # # Proxy agent for OS X based machines. - UNUSED # dn: cn=mac,ou=LDAPauth,dc=example,dc=com objectClass: top objectClass: person cn: mac sn: mac cn: OS X Proxy Agent userPassword: MacAttac # # Proxy agent for Linux based machines. - UNUSED # dn: cn=linux,ou=LDAPauth,dc=example,dc=com objectClass: top objectClass: person cn: linux cn: Linux Proxy Agent sn: linux # # GroupOfNames entity used to gain read access to the # userPassword attribute in our DIT. # dn: cn=LDAPaccess,ou=LDAPauth,dc=example,dc=com objectClass: top objectClass: groupOfNames cn: LDAPaccess description: LDAP Proxy Agent Group member: cn=solaris,ou=LDAPauth,dc=example,dc=com member: cn=mac,ou=LDAPauth,dc=example,dc=com member: cn=linux,ou=LDAPauth,dc=example,dc=com dn: uid=user1,ou=People,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: top objectClass: posixAccount objectClass: shadowAccount objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: user1 userpassword: password uidNumber: 1025 gidNumber: 15 gecos: user 1 homeDirectory: /home/user1 loginShell: /bin/bash cn: user 1 givenName: user1 sn: User1 shadowlastchange: -1 shadowmin: -1 shadowmax: -1 shadowwarning: -1 shadowinactive: -1 shadowexpire: -1 shadowflag: -1 description: User1 dn: uid=user2,ou=People,o=rfc4876, o=Solaris Schema Tests,dc=example,dc=com objectClass: top objectClass: posixAccount objectClass: shadowAccount objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson uid: user2 userPassword: password uidNumber: 1026 gidNumber: 15 gecos: user 2 homeDirectory: /home/user2 loginShell: /bin/bash cn: user 2 givenName: user 2 sn: User2 shadowlastchange: -1 shadowmin: -1 shadowmax: -1 shadowwarning: -1 shadowinactive: -1 shadowexpire: -1 shadowflag: -1 description: User2 opends/tests/staf-tests/functional-tests/shared/data/schema/solaris/solaris.ldif
New file @@ -0,0 +1,180 @@ # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License, Version 1.0 only # (the "License"). You may not use this file except in compliance # with the License. # # You can obtain a copy of the license at # trunk/opends/resource/legal-notices/OpenDS.LICENSE # or https://OpenDS.dev.java.net/OpenDS.LICENSE. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at # trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, # add the following below this CDDL HEADER, with the fields enclosed # by brackets "[]" replaced with your own identifying information: # Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # Copyright 2008 Sun Microsystems, Inc. # dn: o=Solaris schema tests,dc=example,dc=com o: Solaris schema tests objectclass: top objectclass: organization dn: o=Solaris, o=Solaris schema tests,dc=example,dc=com o: Solaris objectclass: top objectclass: organization dn: cn=nisMailAlias,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: top objectclass: person objectclass: nisMailAlias cn: nisMailAlias sn: nisMailAlias rfc822mailMember: nisMailAlias@sun.com dn: cn=nisNetId,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: nisNetId objectclass: person cn: nisNetId sn: nisNetId nisNetIdUser: testuser nisNetIdGroup: testgroup nisNetIdHost: ldap5.ldap.sun.com dn: SolarisProjectName=Schema Tests,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: SolarisProject SolarisProjectID: 42 SolarisProjectName: Schema Tests memberUid: chibber memberUid: bignik! memberUid: * memberUid: !* memberGid: schema memberGid: sheffield! memberGid: * memberGid: !* description: Schema Tests Project SolarisProjectAttr: task.max-cpu-time process.max-file-descriptor dn: cn=SolarisAuditUser,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: person objectclass: SolarisAuditUser cn: SolarisAuditUser sn: SolarisAuditUser SolarisAuditAlways: * SolarisAuditNever: * dn: uid=SolarisUserAttr, o=Solaris, o=Solaris schema tests,dc=example,dc=com objectClass:posixAccount objectClass:shadowAccount objectClass:account objectclass:SolarisUserAttr cn:SolarisUserAttr description:Testing LDAP User to give RBAC gecos:Test User SolarisUserQualifier: qualified SolarisAttrReserved1: * SolarisAttrReserved2: * SolarisAttrKeyValue: type=role;profiles=Basic Solaris User loginShell:/usr/bin/ksh homeDirectory:/home/SolarisUserAttr uidNumber: 57 gidNumber: 58 dn: cn=SolarisAuthAttr, o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: SolarisAuthAttr cn: SolarisAuthAttr SolarisAttrReserved1: * SolarisAttrReserved2: * SolarisAttrShortDesc: authtest SolarisAttrLongDesc: Special profile for auth testing SolarisAttrKeyValue: privs=none dn: cn=SolarisProfile, o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: SolarisProfAttr objectclass: SolarisExecAttr cn: SolarisProfile SolarisAttrLongDesc: Special profile for testing SolarisAttrKeyValue: help=TestProfile.html SolarisKernelSecurityPolicy: solaris SolarisProfileType: act SolarisAttrReserved1: * SolarisAttrReserved2: * SolarisProfileId: TestAction;*;*;*;* dn: cn=SolarisNamingProfile, o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: SolarisNamingProfile cn: SolarisNamingProfile SolarisDataSearchDN: "passwd:(ou=People,dc=ldap-test,dc=com)" SolarisDataSearchDN: "printers:(ou=Printers,dc=ldap-test,dc=com)" SolarisDataSearchDN: "group:(ou=Group,dc=ldap-test,dc=com)" SolarisDataSearchDN: "automount:(ou=Services,dc=ldap-test,dc=com)" SolarisLDAPServers: ldap3.ldap.sun.com ldap2.ldap.sun.com ldap1.ldap.sun.com SolarisSearchBaseDN: o=Solaris, o=Solaris schema tests,dc=example,dc=com SolarisBindDN: cn=proxyagent,o=Solaris, o=Solaris schema tests,dc=example,dc=com SolarisBindPassword: secret12 SolarisAuthMethod: NS_LDAP_AUTH_SIMPLE SolarisTransportSecurity: NS_LDAP_SEC_NONE SolarisCertificatePath: NS_LDAP_CERT_PATH_NONE SolarisCertificatePassword: password SolarisSearchScope: NS_LDAP_SCOPE_ONELEVEL SolarisSearchTimeLimit: 30 SolarisPreferredServer: ldap3.ldap.sun.com SolarisPreferredServerOnly: TRUE SolarisCacheTTL: 43200 SolarisSearchReferral: NS_LDAP_FOLLOWREF SolarisBindTimeLimit: 180 dn: cn=mailGroup,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: mailGroup mail: mailgroup@sun.com cn: mailGroup mgrpRFC822MailMember: uid=jim1234,o=sun,c=fr mgrpRFC822MailMember: uid=kippo2545,o=sun,c=fr mgrpRFC822MailMember: uid=macka5381,o=sun,c=fr mgrpRFC822MailMember: uid=hume0734o=sun,c=fr mgrpRFC822MailMember: uid=chappy,2578o=sun,c=fr #dn: printer-name=wombat07,o=Solaris, o=Solaris schema tests,dc=example,dc=com #objectclass: printerService #objectclass: printerAbstract #objectclass: sunPrinter #objectclass: top #printer-name: wombat07 #printer-uri: wombat07 #sun-printer-bsdaddr: printsvr.example.com,myprinter,Solaris #sun-printer-kvp: description=My Super Printer (PS) dn: cn=nisplusTimeZone,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectclass: nisplusTimeZoneData cn: nisplusTimeZone nisplusTimeZone: GMT+1 description: The NIS+ time zone dn: ou=ipTnet,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectClass: top objectClass: organizationalunit ou: ipTnet dn: ipTnetTemplateName=cipso,ou=ipTnet,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectClass:top objectClass:ipTnetTemplate ipTnetTemplateName:cipso SolarisAttrKeyValue:host_type=cipso;doi=1;min_sl=ADMIN_LOW;max_sl=ADMIN_HIGH; dn: ipTnetNumber=0.0.0.0,o=Solaris, o=Solaris schema tests,dc=example,dc=com objectClass:top objectClass:ipTnetTemplate objectClass:ipTnetHost ipTnetNumber:0.0.0.0 ipTnetTemplateName:internal opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic.xml
New file @@ -0,0 +1,121 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd"> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, include this CDDL HEADER in each ! file and include the License file at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, ! add the following below this CDDL HEADER, with the fields enclosed ! by brackets "[]" replaced with your own identifying information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="main_schema_dynamic"/> <function name="main_schema_dynamic" scope="local"> <sequence> <block name="'main_schema_dynamic'"> <try> <sequence> <script> CurrentTestPath['group']='schema' CurrentTestPath['suite']='dynamic' __group=CurrentTestPath['group'] __groupdir='%s/testcases/%s' % (TESTS_DIR,__group) </script> <!--- Test Suite information #@TestSuiteName Native schema test suite #@TestSuitePurpose Verify that #@TestSuiteID Suite #@TestSuiteGroup Example #@TestGroup Example #@TestScript suite.xml #@TestHTMLLink http://opends.dev.java.net/ --> <call function="'testSuite_Preamble'"/> <try> <sequence> <!-- List of Import of Test Functions --> <script> importList=[] importList.append('schema_setup') importList.append('dynamic/schema_dynamic_tests') importList.append('schema_cleanup') </script> <!-- Import the files for this test suite --> <iterate var="__import" in="importList"> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/%s.xml' % (__groupdir,__import)"/> </iterate> <!-- Test Suite Setup --> <call function="'%s_setup' % __group"/> <!-- List of Test Cases --> <script> testsList=[] testsList.append('schema_dynamic_001') testsList.append('schema_dynamic_002') testsList.append('schema_dynamic_003') testsList.append('schema_dynamic_004') </script> <!-- Execute the Tests --> <iterate var="__test" in="testsList"> <sequence> <call function="'%s' % (__test)" /> </sequence> </iterate> </sequence> <catch exception="'STAFException.TestSuite.SetupException'"> <sequence> <message log="1" level="'fatal'"> 'Setup of test suite failed.' </message> <rethrow/> </sequence> </catch> <finally> <message>'Test Cases Completed.'</message> </finally> </try> </sequence> <finally> <sequence> <!-- Test Suite Cleanup --> <message>'Finally: Example Cleanup.'</message> <call function="'%s_cleanup' % __group"/> <call function="'testSuite_Postamble'"/> </sequence> </finally> </try> </block> </sequence> </function> </stax> opends/tests/staf-tests/functional-tests/testcases/schema/dynamic/schema_dynamic_tests.xml
New file @@ -0,0 +1,397 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd"> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, exclude this CDDL HEADER in each ! file and exclude the License file at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, ! add the following below this CDDL HEADER, with the fields enclosed ! by brackets "[]" replaced with your own identifying * information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <!-- Test case: Update Schema via a file --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Dynamic Schema Tests #@TestName Update via a file #@TestIssue 367 #@TestPurpose To make sure the schema can be updated by a file. #@TestPreamble none #@TestStep Create a task that will cause the server to read one or two files into the schema. Then try adding a new entry that uses the added schema. #@TestPostamble none #@TestResult Success if OpenDS returns 0 --> <function name="schema_dynamic_001" scope="local"> <testcase name="getTestCaseName('Update via File')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Dynamic Schema: Update via File' </message> <script> __baseDN='dc=dynamic-schema-tests,dc=example,%s' % server.suffix </script> <call function="'runFunction'"> { 'functionName' : 'addSchemaTask' , 'functionMessage' : 'Add schema objects as a task.' , 'functionException' : 'Tasks.SchemaException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'taskID' : '6' , 'ldifFile' : '05-DynamicSchemaAdd.ldif' } } </call> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry that uses this new schema.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema1.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'SearchObject' , 'functionMessage' : 'Search for the entry just added and return addschema1AT.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : __baseDN , 'dsFilter' : 'objectclass=addschema1OC' , 'attributes' : 'addschema1AT' } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.Tasks.SchemaException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: Tasks Schema failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test case: Update Schema Over Protocol: Add schema object--> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Dynamic Schema Tests #@TestName Update Over Protocol: Add schema object #@TestIssue 366 #@TestPurpose To verify the schema can be updated over protocol. #@TestPreamble none #@TestStep Update the schema over protocol adding a new objectclass and attributes. Then try adding a new entry that uses these new attributes and objectclass. #@TestPostamble none #@TestResult Success if OpenDS returns 0 --> <function name="schema_dynamic_002" scope="local"> <testcase name="getTestCaseName('Add Schema Object')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Update Over Protocol: Add Schema Object' </message> <script> __baseDN='dc=dynamic-schema-tests-2,dc=example,%s' % server.suffix </script> <call function="'runFunction'"> { 'functionName' : 'modifyEntry' , 'functionMessage' : 'Modify an entry that uses this new schema.' , 'functionException' : 'LDAP.ModifyException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeModified' : '%s/schema/ldifs/updateSchema.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry that uses this new schema.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema2.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'SearchObject' , 'functionMessage' : 'Search for the entry just added and return addschema2AT.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : __baseDN , 'dsFilter' : 'objectclass=addschema2OC' , 'attributes' : 'addschema2AT' } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test case: Update Schema Over Protocol: Replace Schema Object --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Dynamic Schema Tests #@TestName Update Over Protocol: Replace Schema Object #@TestIssue 366 #@TestPurpose To verify attributes and objectclasses can be replaced over protocol. #@TestPreamble none #@TestStep Update the schema over protocol by replacing an objectclass and attributes with new ones. Then try adding a new entry that uses the replaced attributes and objectclass, it should fail. Then try adding an entry that uses the replacement objectclass and attributes. #@TestPostamble none #@TestResult Success if OpenDS returns 0 --> <function name="schema_dynamic_003" scope="local"> <testcase name="getTestCaseName('Replace Schema Object')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Update Over Protocol: Replace Schema Object' </message> <script> __baseDN='dc=dynamic-schema-tests-2,dc=example,%s' % server.suffix </script> <call function="'runFunction'"> { 'functionName' : 'modifyEntry' , 'functionMessage' : 'Modify an entry that uses this new schema.' , 'functionException' : 'LDAP.ModifyException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeModified' : '%s/schema/ldifs/updateSchema2.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry that uses this new schema.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema4.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'SearchObject' , 'functionMessage' : 'Search for the entry just added and return addschema2AT.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : __baseDN , 'dsFilter' : 'objectclass=addschema3OC' , 'attributes' : 'addschema3AT' } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test case: Update Schema Over Protocol: Remove Schema Object--> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Dynamic Schema Tests #@TestName Update Over Protocol: Remove Schema Object #@TestIssue 366 #@TestPurpose To verify attributes and objectclasses can be removed over protocol. #@TestPreamble none #@TestStep Update the schema over protocol by removing an objectclass and attributes. Then try adding a new entry that uses these removed attributes and objectclass, it should fail. #@TestPostamble none #@TestResult Success if OpenDS returns 0 --> <function name="schema_dynamic_004" scope="local"> <testcase name="getTestCaseName('Remove Schema Object')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Update Over Protocol: Remove Schema Object' </message> <call function="'runFunction'"> { 'functionName' : 'modifyEntry' , 'functionMessage' : 'Modify an entry that uses this new schema.' , 'functionException' : 'LDAP.ModifyException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeModified' : '%s/schema/ldifs/updateSchema3.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry that uses the schema just removed.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/dynamic_schema3.ldif' % remote.data, 'expectedRC' : 65 } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> </stax> opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc.xml
New file @@ -0,0 +1,177 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd"> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, include this CDDL HEADER in each ! file and include the License file at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, ! add the following below this CDDL HEADER, with the fields enclosed ! by brackets "[]" replaced with your own identifying information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="main_schema_rfc"/> <function name="main_schema_rfc" scope="local"> <sequence> <block name="'main_schema_rfc'"> <try> <sequence> <script> CurrentTestPath['group']='schema' CurrentTestPath['suite']='rfc' __group=CurrentTestPath['group'] __groupdir='%s/testcases/%s' % (TESTS_DIR,__group) </script> <!--- Test Suite information #@TestSuiteName Native schema test suite #@TestSuitePurpose Verify that #@TestSuiteID Suite #@TestSuiteGroup Example #@TestGroup Example #@TestScript suite.xml #@TestHTMLLink http://opends.dev.java.net/ --> <call function="'testSuite_Preamble'"/> <try> <sequence> <!-- List of Import of Test Functions --> <script> importList=[] importList.append('schema_setup') importList.append('rfc/schema_rfc_tests') importList.append('schema_cleanup') </script> <!-- Import the files for this test suite --> <iterate var="__import" in="importList"> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/%s.xml' % (__groupdir,__import)"/> </iterate> <!-- Test Suite Setup --> <call function="'%s_setup' % __group"/> <!-- Specific to rfc tests --> <script> __baseDN='o=rfc tests, dc=example,%s' % server.suffix def parse_stax_result(result): if result.__class__ is org.python.core.PyList: _unwrapResult=result[1][0] try: _functionString=_unwrapResult[1] except AttributeError: _functionString='Unable to parse result.' elif result.__class__ is org.python.core.PyString: _functionString=STAXResult else: _functionString='Unable to parse result.' return _functionString </script> <!-- List of Test Cases --> <script> testsList=[] testsList.append('schema_rfc_2079') testsList.append('schema_rfc_2247_1') testsList.append('schema_rfc_2247_2') testsList.append('schema_rfc_2247_3') testsList.append('schema_rfc_2247_4') testsList.append('schema_rfc_2247_5') testsList.append('schema_rfc_2377') testsList.append('schema_rfc_2798') testsList.append('schema_rfc_3045_1') testsList.append('schema_rfc_3045_2') testsList.append('schema_rfc_4403_1') testsList.append('schema_rfc_4403_2') testsList.append('schema_rfc_4403_3') testsList.append('schema_rfc_4403_4') testsList.append('schema_rfc_4403_5') testsList.append('schema_rfc_2307_1') testsList.append('schema_rfc_2307_2') testsList.append('schema_rfc_2307_3') testsList.append('schema_rfc_2307_4') testsList.append('schema_rfc_furseth') testsList.append('schema_rfc_good_1') testsList.append('schema_rfc_good_2') testsList.append('schema_rfc_good_3') testsList.append('schema_rfc_howard_1') testsList.append('schema_rfc_howard_2') testsList.append('schema_rfc_ldup_1') testsList.append('schema_rfc_ldup_2') testsList.append('schema_rfc_ldup_3') testsList.append('schema_disable_schema_checking') testsList.append('schema_enable_schema_checking') testsList.append('schema_disable_syntax_checking') testsList.append('schema_enable_syntax_checking') testsList.append('schema_cosine_1') testsList.append('schema_cosine_2') testsList.append('schema_cosine_3') testsList.append('schema_rfc_2739') testsList.append('schema_rfc_2714_1') testsList.append('schema_rfc_2714_2') testsList.append('schema_rfc_2713') </script> <!-- Execute the Tests --> <iterate var="__test" in="testsList"> <sequence> <call function="'%s' % (__test)" /> </sequence> </iterate> </sequence> <catch exception="'STAFException.TestSuite.SetupException'"> <sequence> <message log="1" level="'fatal'"> 'Setup of test suite failed.' </message> <rethrow/> </sequence> </catch> <finally> <message>'Test Cases Completed.'</message> </finally> </try> </sequence> <finally> <sequence> <!-- Test Suite Cleanup --> <message>'Finally: Example Cleanup.'</message> <call function="'%s_cleanup' % __group"/> <call function="'testSuite_Postamble'"/> </sequence> </finally> </try> </block> </sequence> </function> </stax> opends/tests/staf-tests/functional-tests/testcases/schema/rfc/schema_rfc_tests.xml
New file @@ -0,0 +1,1990 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd"> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, include this CDDL HEADER in each ! file and include the License file at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, ! add the following below this CDDL HEADER, with the fields enclosed ! by brackets "[]" replaced with your own identifying information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2006-2008 Sun Microsystems, Inc. ! --> <stax> <!-- Test Case : Schema RFC Test 2079 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2079 #@TestIssue #@TestPurpose Check RFC 2079 URI Attribute Type and Object Class Schema Objects. #@TestPreamble none #@TestStep Add RFC 2079 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2079" scope="local"> <testcase name="getTestCaseName('RFC 2079')"> <try> <sequence> <call function="'testCase_Preamble'"/> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry that is covered by RFC 2079.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2079.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'ldapSearchWithScript' , 'functionMessage' : 'Search for the entry just added and return labeledURI.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : "ou=People, %s" % __baseDN , 'dsFilter' : 'objectclass=*' , 'dsAttributes' : 'labeledURI' } } </call> <script> _functionString=parse_stax_result(STAXResult) </script> <call function="'runFunction'"> { 'functionName' : 'checktestString' , 'functionMessage' : 'Check that the labeledURI attribute is returned.' , 'functionException' : 'Utils.CheckStringException' , 'functionArguments' : { 'expectedString' : 'labeledURI: ftp://example.com/rfc/rfc2079.txt' , 'returnString' : _functionString } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2247 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2247 #@TestIssue #@TestPurpose Check RFC 2247 Using Domains in LDAP/X.500 Schema Objects. #@TestPreamble none #@TestStep Add RFC 2247 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2247_1" scope="local"> <testcase name="getTestCaseName('RFC 2247 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry where dcObject is an auxiliary class.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2247_1.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'ldapSearchWithScript' , 'functionMessage' : 'Search for the entry just added and return dc.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : __baseDN , 'dsFilter' : 'objectclass=dcObject' , 'dsAttributes' : 'dc' } } </call> <script> _functionString=parse_stax_result(STAXResult) </script> <call function="'runFunction'"> { 'functionName' : 'checktestString' , 'functionMessage' : 'Check that the dc attribute is returned.' , 'functionException' : 'Utils.CheckStringException' , 'functionArguments' : { 'expectedString' : 'dc: rfc-2247-tests' , 'returnString' : _functionString } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2247 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2247 #@TestIssue #@TestPurpose Check RFC 2247 Using Domains in LDAP/X.500 Schema Objects. #@TestPreamble none #@TestStep Add RFC 2247 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2247_2" scope="local"> <testcase name="getTestCaseName('RFC 2247 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2247' </message> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry where domain is a structural class.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2247_2.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'ldapSearchWithScript' , 'functionMessage' : 'Search for the entry just added and return dc.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : __baseDN , 'dsFilter' : 'objectclass=domain' , 'dsAttributes' : 'dc' } } </call> <script> _functionString=parse_stax_result(STAXResult) </script> <call function="'runFunction'"> { 'functionName' : 'checktestString' , 'functionMessage' : 'Check that the dc attribute is returned.' , 'functionException' : 'Utils.CheckStringException' , 'functionArguments' : { 'expectedString' : 'dc: rfc-2247-tests-2' , 'returnString' : _functionString } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2247 3 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2247 #@TestIssue #@TestPurpose Check RFC 2247 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 2247 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_2247_3" scope="local"> <testcase name="getTestCaseName('RFC 2247 3')"> <try> <sequence> <call function="'testCase_Preamble'"/> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an invalid object that is covered by RFC 2247.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2247_3.ldif' % remote.data , 'expectedRC' : 65 } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2247 4 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2247 #@TestIssue #@TestPurpose Check RFC 2247 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 2247 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_2247_4" scope="local"> <testcase name="getTestCaseName('RFC 2247 4')"> <try> <sequence> <call function="'testCase_Preamble'"/> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an invalid object that is covered by RFC 2247.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2247_4.ldif' % remote.data , 'expectedRC' : 65 } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2247 5 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2247 #@TestIssue #@TestPurpose Check RFC 2247 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 2247 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_2247_5" scope="local"> <testcase name="getTestCaseName('RFC 2247 5')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2247' </message> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an invalid object that is covered by RFC 2247.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2247_5.ldif' % remote.data , 'expectedRC' : 65 } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2377 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2377 #@TestIssue #@TestPurpose Check RFC 2377 Directory Naming Plan Schema Objects. #@TestPreamble none #@TestStep Add RFC 2377 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2377" scope="local"> <testcase name="getTestCaseName('RFC 2377')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2377' </message> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Add an entry that is covered by RFC 2377.' , 'functionException' : 'LDAP.AddException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2377.ldif' % remote.data } } </call> <call function="'runFunction'"> { 'functionName' : 'ldapSearchWithScript' , 'functionMessage' : 'Search for the entry just added and return uid.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : __baseDN , 'dsFilter' : 'objectclass=*' , 'dsAttributes' : 'uid' } } </call> <!-- TODO: RFC 2377 suggests using dcObject and uidObject for constructing the name in existing structural objects. --> <script> _functionString=parse_stax_result(STAXResult) </script> <call function="'runFunction'"> { 'functionName' : 'checktestString' , 'functionMessage' : 'Check that the uid attribute is returned.' , 'functionException' : 'Utils.CheckStringException' , 'functionArguments' : { 'expectedString' : 'uid: amiller' , 'returnString' : _functionString } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2798 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2798 #@TestIssue #@TestPurpose Check RFC 2798 LDAP inetOrgPerson Schema Objects. #@TestPreamble none #@TestStep Add RFC 2798 LDAP inetOrgPerson Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2798" scope="local"> <testcase name="getTestCaseName('RFC 2798')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2798' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2798.ldif' % remote.data } </call> <call function="'runFunction'"> { 'functionName' : 'ldapSearchWithScript' , 'functionMessage' : 'Search for the entry just added and return departmentNumber.' , 'functionException' : 'LDAP.SearchException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : "ou=People, %s" % __baseDN , 'dsFilter' : 'objectclass=*' , 'dsAttributes' : 'departmentNumber' } } </call> <script> _functionString=parse_stax_result(STAXResult) </script> <call function="'runFunction'"> { 'functionName' : 'checktestString' , 'functionMessage' : 'Check that the departmentNumber attribute is returned.' , 'functionException' : 'Utils.CheckStringException' , 'functionArguments' : { 'expectedString' : 'departmentNumber: 602' , 'returnString' : _functionString } } </call> </sequence> <catch exception="'STAXException.LDAP.AddException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.LDAP.SearchException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPSearch failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <catch exception="'STAXException.Utils.CheckStringException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: UtilsCheck failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 3045 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 3045 #@TestIssue #@TestPurpose Check RFC 3045 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 3045 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 53 (Unwilling to Perform) --> <function name="schema_rfc_3045_1" scope="local"> <testcase name="getTestCaseName('RFC 3045 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 3045' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc3045_1.ldif' % remote.data , 'expectedRC' : 53 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 3045 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 3045 #@TestIssue #@TestPurpose Check RFC 3045 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 3045 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 53 (Unwilling to Perform) --> <function name="schema_rfc_3045_2" scope="local"> <testcase name="getTestCaseName('RFC 3045 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 3045' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc3045_2.ldif' % remote.data , 'expectedRC' : 53 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 4403 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 4403 #@TestIssue #@TestPurpose Check RFC 4403 Schema Objects. #@TestPreamble none #@TestStep Add RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_4403_1" scope="local"> <testcase name="getTestCaseName('RFC 4403 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 4403' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc4403_1.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 4403 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 4403 #@TestIssue #@TestPurpose Check RFC 4403 Schema Objects. #@TestPreamble none #@TestStep Add RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_4403_2" scope="local"> <testcase name="getTestCaseName('RFC 4403 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 4403' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc4403_2.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 4403 3 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 4403 #@TestIssue #@TestPurpose Check RFC 4403 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_4403_3" scope="local"> <testcase name="getTestCaseName('RFC 4403 3')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 4403' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc4403_3.ldif' % remote.data, 'expectedRC' : 65 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 4403 4 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 4403 #@TestIssue #@TestPurpose Check RFC 4403 Schema Objects. #@TestPreamble none #@TestStep Add RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_4403_4" scope="local"> <testcase name="getTestCaseName('RFC 4403 4')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 4403' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc4403_4.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 4403 5 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 4403 #@TestIssue #@TestPurpose Check RFC 4403 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_4403_5" scope="local"> <testcase name="getTestCaseName('RFC 4403 5')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 4403' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc4403_5.ldif' % remote.data, 'expectedRC' : 65 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2307 BIS 1--> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2307 BIS 1 #@TestIssue #@TestPurpose Check RFC 2307 Schema Objects. #@TestPreamble none #@TestStep Add RFC 2307 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2307_1" scope="local"> <testcase name="getTestCaseName('Draft Howard RFC 2307bis 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 1' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2307bis_1.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2307 BIS 2--> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2307 BIS 2 #@TestIssue #@TestPurpose Check RFC 2307 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_2307_2" scope="local"> <testcase name="getTestCaseName('Draft Howard RFC 2307bis 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 2' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2307bis_2.ldif' % remote.data , 'expectedRC' : 65 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2307 BIS 3 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2307 BIS 3 #@TestIssue #@TestPurpose Check RFC 2307 Schema Objects. #@TestPreamble none #@TestStep Add RFC 2307 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2307_3" scope="local"> <testcase name="getTestCaseName('Draft Howard RFC 2307bis 3')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 3' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2307bis_3.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test 2307 BIS 4 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2307 BIS 4 #@TestIssue #@TestPurpose Check RFC 2307 Schema Objects. #@TestPreamble none #@TestStep Add Invalid RFC 4403 Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_rfc_2307_4" scope="local"> <testcase name="getTestCaseName('Draft Howard RFC 2307bis 4')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft Howard RFC 2307bis 4' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2307bis_4.ldif' % remote.data , 'expectedRC' : 65 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test draft-furseth-ldap-untypedobject --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC 2307 BIS 4 #@TestIssue #@TestPurpose Check RFC Draft Furseth LDAP Untypedobject Schema Objects. #@TestPreamble none #@TestStep Add RFC 2307 Draft Furseth LDAP Untypedobject Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_furseth" scope="local"> <testcase name="getTestCaseName('Draft Furseth LDAP Untypedobject')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft draft-furseth-ldap-untypedobject' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/untypedobject.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC draft-good-ldap-changelog 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft Good LDAP Changelog #@TestIssue #@TestPurpose Check RFC Draft Good LDAP Changelog. #@TestPreamble none #@TestStep Add RFC Draft Good LDAP Changelog Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_good_1" scope="local"> <testcase name="getTestCaseName('Draft Good LDAP Changelog 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft draft-good-ldap-changelog' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/changelog_1.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC draft-good-ldap-changelog 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft Good LDAP Changelog #@TestIssue #@TestPurpose Check RFC Draft Good LDAP Changelog. #@TestPreamble none #@TestStep Add RFC Draft Good LDAP Changelog Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_good_2" scope="local"> <testcase name="getTestCaseName('Draft Good LDAP Changelog 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft draft-good-ldap-changelog' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/changelog_2.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC draft-good-ldap-changelog 3 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft Good LDAP Changelog #@TestIssue #@TestPurpose Check RFC Draft Good LDAP Changelog. #@TestPreamble none #@TestStep Add RFC Draft Good LDAP Changelog Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_good_3" scope="local"> <testcase name="getTestCaseName('Draft Good LDAP Changelog 3')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by Draft draft-good-ldap-changelog' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/changelog_3.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test Draft Howard NamedObject 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft Howard NamedObject 1 #@TestIssue #@TestPurpose Check RFC Draft Howard NamedObject. #@TestPreamble none #@TestStep Add RFC Draft Howard NamedObject object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_howard_1" scope="local"> <testcase name="getTestCaseName('Draft Howard NamedObject 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by draft-howard-namedobject.' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/namedobject_1.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test Draft Howard NamedObject 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft Howard NamedObject 1 #@TestIssue #@TestPurpose Check RFC Draft Howard NamedObject. #@TestPreamble none #@TestStep Add RFC Draft Howard NamedObject object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_howard_2" scope="local"> <testcase name="getTestCaseName('Draft Howard NamedObject 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by draft-howard-namedobject.' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/namedobject_2.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test Draft IETF LDUP Subentry 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft IETF LDUP Subentry 1 #@TestIssue #@TestPurpose Check RFC Draft IETF LDUP Subentry 1. #@TestPreamble none #@TestStep Add RFC Draft IETF LDUP Subentry object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_ldup_1" scope="local"> <testcase name="getTestCaseName('Draft IETF LDUP Subentry 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Schema: Add an entry that is covered by draft-ietf-ldup-subentry.' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/ldup_subentry_1.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test Draft IETF LDUP Subentry 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft IETF LDUP Subentry 2 #@TestIssue #@TestPurpose Check RFC Draft IETF LDUP Subentry 2. #@TestPreamble none #@TestStep Add RFC Draft IETF LDUP Subentry 2 object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_ldup_2" scope="local"> <testcase name="getTestCaseName('Draft IETF LDUP Subentry 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Schema: Add an entry that is covered by draft-ietf-ldup-subentry.' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/ldup_subentry_2.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC Test Draft IETF LDUP Subentry 3 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker RFC Schema Tests #@TestName RFC Draft IETF LDUP Subentry 3 #@TestIssue #@TestPurpose Check RFC Draft IETF LDUP Subentry 3. #@TestPreamble none #@TestStep Add Invalid RFC Draft IETF LDUP Subentry 3 object. #@TestPostamble none #@TestResult Success if Add returns 53 (Unwilling to Perform) --> <function name="schema_rfc_ldup_3" scope="local"> <testcase name="getTestCaseName('Draft IETF LDUP Subentry 3')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Schema: Add an entry that is covered by draft-ietf-ldup-subentry.' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/ldup_subentry_3.ldif' % remote.data , 'expectedRC' : 53 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Disable Schema Checking --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Disable Schema Checking #@TestName Disable Schema Checking #@TestIssue #@TestPurpose Check Disable Schema Checking. #@TestPreamble none #@TestStep Set check schema to false. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_disable_schema_checking" scope="local"> <testcase name="getTestCaseName('Disable Schema Checking')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Disable schema checking.' </message> <call function="'modifyGlobal'"> { 'dsInstanceHost' : server.host , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'attributeName' : 'check-schema' , 'attributeValue' : 'false' } </call> <!-- TODO: Need to verify the disabling of schema check. --> <!-- TODO: Should be part of a separate test suite. --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Enable Schema Checking --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Enable Schema Checking #@TestName Enable Schema Checking #@TestIssue #@TestPurpose Check Enable Schema Checking. #@TestPreamble none #@TestStep Set check schema to true. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_enable_schema_checking" scope="local"> <testcase name="getTestCaseName('Enable Schema Checking')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Enable schema checking.' </message> <call function="'modifyGlobal'"> { 'dsInstanceHost' : server.host , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'attributeName' : 'check-schema' , 'attributeValue' : 'true' } </call> <!-- TODO: Need to verify the enabling of schema check. --> <!-- TODO: Should be part of a separate test suite. --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Disable Syntax Checking for Generalized Time--> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Disable Syntax Checking #@TestName Disable Syntax Checking #@TestIssue #@TestPurpose Check Disable Syntax Checking for Generalized Time. #@TestPreamble none #@TestStep Set check schema to true. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_disable_syntax_checking" scope="local"> <testcase name="getTestCaseName('Disable Syntax Checking')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Disable Syntax Checking for Generalized Time.' </message> <call function="'dsconfig'"> { 'dsInstanceHost' : server.host , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'subcommand' : 'set-attribute-syntax-prop' , 'objectType' : 'syntax-name' , 'objectName' : 'Generalized Time', 'optionsString' : '--set enabled:false', 'knownIssue' : '2046' } </call> <!-- TODO: Need to verify the disabling of syntax check. --> <!-- TODO: Should be part of a separate test suite. --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Enable Syntax Checking for Generalized Time --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Enable Syntax Checking #@TestName Enable Syntax Checking #@TestIssue #@TestPurpose Check Enable Syntax Checking for Generalized Time. #@TestPreamble none #@TestStep Set check schema to true. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_enable_syntax_checking" scope="local"> <testcase name="getTestCaseName('Enable Syntax Checking for Generalized Time')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Enable Syntax Checking for Generalized Time.' </message> <call function="'dsconfig'"> { 'dsInstanceHost' : server.host , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'subcommand' : 'set-attribute-syntax-prop' , 'objectType' : 'syntax-name' , 'objectName' : 'Generalized Time', 'optionsString' : '--set enabled:true' } </call> <!-- TODO: Need to verify the enabling of syntax check. --> <!-- TODO: Should be part of a separate test suite. --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Draft IETF Zeilenga LDAP COSINE 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Draft IETF Zeilenga LDAP COSINE #@TestName Draft IETF Zeilenga LDAP COSINE #@TestIssue #@TestPurpose Check Draft IETF Zeilenga LDAP COSINE Schema Object. #@TestPreamble none #@TestStep Add Draft IETF Zeilenga LDAP COSINE Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_cosine_1" scope="local"> <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/ldap_cosine_1.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Draft IETF Zeilenga LDAP COSINE 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Draft IETF Zeilenga LDAP COSINE #@TestName Draft IETF Zeilenga LDAP COSINE 2 #@TestIssue #@TestPurpose Check Draft IETF Zeilenga LDAP COSINE Schema Object. #@TestPreamble none #@TestStep Add Draft IETF Zeilenga LDAP COSINE Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_cosine_2" scope="local"> <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/ldap_cosine_2.ldif' % remote.data } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema Draft IETF Zeilenga LDAP COSINE 3 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Draft IETF Zeilenga LDAP COSINE #@TestName Draft IETF Zeilenga LDAP COSINE 3 #@TestIssue #@TestPurpose Check Draft IETF Zeilenga LDAP COSINE Schema Object. #@TestPreamble none #@TestStep Add Invalid Draft IETF Zeilenga LDAP COSINE Schema Object. #@TestPostamble none #@TestResult Success if Add returns 65 (Object Class Violation) --> <function name="schema_cosine_3" scope="local"> <testcase name="getTestCaseName('Draft IETF Zeilenga LDAP COSINE 3')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by draft-ietf-zeilenga-ldap-cosine' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/ldap_cosine_3.ldif' % remote.data , 'expectedRC' : 65 } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC 2739 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Schema RFC 2739 #@TestName Schema RFC 2739 #@TestIssue #@TestPurpose Check Schema RFC 2739 Schema Object. #@TestPreamble none #@TestStep Add Schema RFC 2739 Schema Object. #@TestStep Search Schema RFC 2739 Schema Object. #@TestStep Add Schema RFC 2739 Schema Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2739" scope="local"> <testcase name="getTestCaseName('RFC 2739')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2739' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2739.ldif' % remote.data } </call> <if expr="RC != 0"> <tcstatus result="'fail'"/> </if> <message> 'Search the entry just added and return calCalURI ' </message> <call function="'SearchObject'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : 'o=rfc tests,dc=example,dc=com' , 'dsFilter' : 'uid=tsmith' , 'attributes' : 'calCalURI' } </call> <call function="'checktestRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> <!-- TODO: Need to verify that correct attributes are returned --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC 2714 1 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Schema RFC 2714 1 #@TestName Schema RFC 2714 1 #@TestIssue #@TestPurpose Check Schema RFC 2714 Schema Object. #@TestPreamble none #@TestStep Add RFC 2714 Schema Object. #@TestStep Search Schema RFC 2714 Object. #@TestStep Add Schema RFC 2714 Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2714_1" scope="local"> <testcase name="getTestCaseName('RFC 2714 1')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2714' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2714.ldif' % remote.data , 'expectedRC' : 65 } </call> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC 2714 2 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Schema RFC 2714 2 #@TestName Schema RFC 2714 2 #@TestIssue #@TestPurpose Check Schema RFC 2714 Schema Object. #@TestPreamble none #@TestStep Add RFC 2714 Schema Object. #@TestStep Search Schema RFC 2714 Object. #@TestStep Add Schema RFC 2714 Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2714_2" scope="local"> <testcase name="getTestCaseName('RFC 2714 2')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2714' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2714_2.ldif' % remote.data } </call> <if expr="RC != 0"> <tcstatus result="'fail'"/> </if> <message> 'Search the entry just added and return corbaRepositoryId ' </message> <call function="'SearchObject'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : 'o=rfc tests,dc=example,dc=com' , 'dsFilter' : 'cn=corba1' , 'attributes' : 'corbaRepositoryId' } </call> <call function="'checktestRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> <!-- TODO: Need to verify that correct attributes are returned --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> <!-- Test Case : Schema RFC 2713 --> <!-- Place test-specific test information here. The tag, TestMarker, must be the same as the tag, TestSuiteName. #@TestMarker Schema RFC 2713 #@TestName Schema RFC 2713 #@TestIssue #@TestPurpose Check Schema RFC 2713 Schema Object. #@TestPreamble none #@TestStep Add RFC 2713 Schema Object. #@TestStep Search Schema RFC 2713 Object. #@TestStep Add Schema RFC 2713 Object. #@TestPostamble none #@TestResult Success if Add Operation returns 0 --> <function name="schema_rfc_2713" scope="local"> <testcase name="getTestCaseName('RFC 2713')"> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Schema: Add an entry that is covered by rfc 2713' </message> <call function="'addEntry'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : '%s/schema/ldifs/rfc2713.ldif' % remote.data } </call> <if expr="RC != 0"> <tcstatus result="'fail'"/> </if> <message> 'Search the entry just added and return javaClassName ' </message> <call function="'SearchObject'"> { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'dsBaseDN' : 'ou=java object,o=rfc tests,dc=example,dc=com' , 'dsFilter' : 'cn=java1' , 'attributes' : 'javaClassName' } </call> <call function="'checktestRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> <!-- TODO: Need to verify that correct attributes are returned --> </sequence> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </testcase> </function> </stax> opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml
@@ -26,55 +26,98 @@ ! Copyright 2006-2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="main_schema"/> <defaultcall function="main_schema" /> <function name="main_schema"> <function name="main_schema" scope="local"> <function-list-args> <function-required-arg name="STAXParentID"/> </function-list-args> <sequence> <try> <block name="'main_schema'"> <sequence> <block name="'schema'"> <sequence> <!--- Load the job environment for the test group execution --> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/environment.xml' % TESTS_FUNCTIONS_DIR" /> <call function="'loadJobEnvironment'"> { 'parent' : STAXParentID } </call> <message log="1" level="'Info'">'STAXParentID= %s' % STAXParentID</message> <!--- Load the job environment for the test group execution --> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/environment.xml' % TESTS_FUNCTIONS_DIR" /> <call function="'loadJobEnvironment'"> { 'parent' : STAXParentID } </call> <script> CurrentTestPath['group']='schema' </script> <call function="'testGroup_Preamble'"/> <script> suiteList=[] suiteList.append('schema_rfc_tests') suiteList.append('schema_dynamic') </script> <script> _group='schema' CurrentTestPath={ 'group' : '%s' % _group } </script> <!-- Run the test suites --> <iterate var="__test" in="suiteList"> <sequence> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/testcases/schema/%s.xml' % (TESTS_DIR,__test)" /> <call function="'%s' % __test" /> </sequence> </iterate> <call function="'testGroup_Postamble'"/> <!--- Test Group information #@TestGroupName Schema Test #@TestGroupPurpose Verify that schema is working correctly --> <call function="'testGroup_Preamble'"/> </sequence> </block> <!-- List of test suites to run --> <script> suiteList=[] suiteList.append('rfc') suiteList.append('dynamic') suiteList.append('solaris') </script> <!-- Data global to this test group --> <!-- LDAP Server Object --> <script> server=directory_server() server.location = STAF_REMOTE_HOSTNAME server.host = DIRECTORY_INSTANCE_HOST server.port = DIRECTORY_INSTANCE_PORT server.adminport = DIRECTORY_INSTANCE_ADMIN_PORT server.dn = DIRECTORY_INSTANCE_DN server.password = DIRECTORY_INSTANCE_PSWD server.suffix = DIRECTORY_INSTANCE_SFX </script> <!-- Run the test suites --> <iterate var="_suite" in="suiteList"> <sequence> <try> <sequence> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/testcases/%s/%s/%s_%s.xml' % (TESTS_DIR,_group,_suite,_group,_suite)"/> <call function="'main_%s_%s' % (_group,_suite)" /> </sequence> <catch exception="'STAFException.TestSuite.SetupException'"> <sequence> <message log="1" level="'fatal'">'Setup of test suite %s failed.' % _suite</message> <throw exception="'STAXException.TestGroupException'" /> </sequence> </catch> <catch exception="'STAFException.TestSuite.MainException'"> <sequence> <message log="1" level="'fatal'">'Main part of test suite %s failed.' % _suite</message> <throw exception="'STAXException.TestGroupException'" /> </sequence> </catch> <catch exception="'STAFException.TestSuite.CleanupException'"> <sequence> <message log="1" level="'fatal'">'Cleanup of test suite %s failed.' % _suite</message> <throw exception="'STAXException.TestGroupException'" /> </sequence> </catch> </try> </sequence> </iterate> </sequence> </block> <finally> <!-- Test Group postamble --> <call function="'testGroup_Postamble'"/> </finally> </try> </sequence> </function> </stax> opends/tests/staf-tests/functional-tests/testcases/schema/schema_cleanup.xml
@@ -34,57 +34,51 @@ <sequence> <block name="'cleanup'"> <try> <sequence> <block name="'Block DS Process Stop'"> <!--- Stop DS --> <sequence> <message> 'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT) </message> <call function="'StopDsWithScript'"> { 'location' : STAF_REMOTE_HOSTNAME, 'dsHost' : DIRECTORY_INSTANCE_HOST, 'dsAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT, 'dsBindDN' : DIRECTORY_INSTANCE_DN, 'dsBindPwd' : DIRECTORY_INSTANCE_PSWD } </call> <call function="'checkRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> <call function="'runFunction'"> { 'functionName' : 'StopDsWithScript' , 'functionMessage' : 'Stop the Directory Server.' , 'functionException' : 'Server.StopException' , 'functionArguments' : { 'location' : STAF_REMOTE_HOSTNAME , 'dsHost' : server.host , 'dsAdminPort' : server.adminport , 'dsBindDN' : server.dn , 'dsBindPwd' : server.password } } </call> <call function="'runFunction'"> { 'functionName' : 'removeTopology' , 'functionMessage' : 'Remove DS topology.' , 'functionException' : 'Server.RemoveTopologyException' } </call> </sequence> <!--- End Block DS Process Stop --> </block> <catch exception="'STAXException.Server.RemoveTopologyException'" typevar="eType" var="eInfo"> <sequence> <message log="1" level="'fatal'"> '%s: Remove topology failed. eInfo(%s)' % (eType,eInfo) </message> <throw exception="'STAFException.TestSuite.CleanupException'" /> </sequence> </catch> <block name="'Block Remove DS Topology'"> <!-- Remove the topology created for the test suite --> <sequence> <message> 'Remove DS topology created for the Test Suite' </message> <catch exception="'STAXException.Server.StopException'" typevar="eType" var="eInfo"> <sequence> <message log="1" level="'fatal'"> '%s: Failed to stop Directory Server. eInfo(%s)' % (eType,eInfo) </message> <throw exception="'STAFException.TestSuite.CleanupException'" /> </sequence> </catch> <call function="'removeTopology'"/> <call function="'checkRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> </sequence> <!-- End Block Remove DS Topology--> </block> </sequence> </try> </block> </sequence> opends/tests/staf-tests/functional-tests/testcases/schema/schema_dynamic.xml
File was deleted opends/tests/staf-tests/functional-tests/testcases/schema/schema_rfc_tests.xml
File was deleted opends/tests/staf-tests/functional-tests/testcases/schema/schema_setup.xml
@@ -34,88 +34,85 @@ <sequence> <block name="'setup'"> <sequence> <block name="'Block Create DS Topology'"> <!-- Create the topology necessary to the test group/suite --> <sequence> <message> 'Create DS topology as described in config.py' </message> <call function="'createTopology'"> { 'initialiseInstance' : True } </call> <call function="'checkRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> </sequence> <!--- End Block Create DS Topology --> </block> <block name="'Block DS Process Active'"> <!--- Start DS --> <sequence> <message> 'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT) </message> <!--- Start DS --> <call function="'StartDsWithScript'"> { 'location' : STAF_REMOTE_HOSTNAME } </call> <call function="'checkRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> <!--- Check that DS started --> <call function="'isAlive'"> { 'noOfLoops' : 5 , 'noOfMilliSeconds' : 2000 } </call> </sequence> <!--- End Block DS Process Active --> </block> <block name="'Block DS Load Data'"> <!-- Load the data needed by the test suite --> <try> <sequence> <message> 'Add entries that are required for the Schema Tests' </message> <call function="'addEntry'"> { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST , 'dsInstancePort' : DIRECTORY_INSTANCE_PORT , 'dsInstanceDn' : DIRECTORY_INSTANCE_DN , 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD , 'entryToBeAdded' : '%s/schema/ldifs/schema_start.ldif' % remote.data } </call> <call function="'checkRC'"> { 'returncode' : RC , 'result' : STAXResult } </call> </sequence> <!-- End Block DS Load Data --> </block> </sequence> <!-- Create the topology necessary to the test group/suite --> <call function="'runFunction'"> { 'functionName' : 'createTopology' , 'functionMessage' : 'Create DS topology' , 'functionException' : 'Server.CreateTopologyException' , 'functionArguments' : { 'initialiseInstance' : True } } </call> <!-- Start the OpenDS Server --> <call function="'runFunction'"> { 'functionName' : 'StartDsWithScript' , 'functionMessage' : 'Start the Directory Server.' , 'functionException' : 'Server.StartException' , 'functionArguments' : { 'location' : STAF_REMOTE_HOSTNAME } } </call> <!--- Check that DS started --> <call function="'runFunction'"> { 'functionName' : 'isAlive' , 'functionMessage' : 'Start the Directory Server.' , 'functionException' : 'Server.StartException' , 'functionArguments' : { 'noOfLoops' : 5 , 'noOfMilliSeconds' : 2000 } } </call> <!-- Load the data needed by the test suite --> <script> schemastartldif='%s/schema/ldifs/schema_start.ldif' % remote.data </script> <call function="'runFunction'"> { 'functionName' : 'addEntry' , 'functionMessage' : 'Start the Directory Server.' , 'functionException' : 'LDAP.AddEntryException' , 'functionArguments' : { 'dsInstanceHost' : server.host , 'dsInstancePort' : server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd' : server.password , 'entryToBeAdded' : schemastartldif } } </call> </sequence> <catch exception="'STAXException.Server.CreateTopologyException'" typevar="eType" var="eInfo"> <sequence> <message log="1" level="'fatal'"> '%s: Create topology failed. eInfo(%s)' % (eType,eInfo) </message> <throw exception="'STAFException.TestSuite.SetupException'" /> </sequence> </catch> <catch exception="'STAXException.Server.StartException'" typevar="eType" var="eInfo"> <sequence> <message log="1" level="'fatal'"> '%s: Failed to start Directory Server. eInfo(%s)' % (eType,eInfo) </message> <throw exception="'STAFException.TestSuite.SetupException'" /> </sequence> </catch> <catch exception="'STAXException.LDAP.AddEntryException'" typevar="eType" var="eInfo"> <sequence> <message log="1" level="'fatal'"> '%s: LDAPAdd failed. eInfo(%s)' % (eType,eInfo) </message> <throw exception="'STAFException.TestSuite.SetupException'" /> </sequence> </catch> </try> </block> </sequence> opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris.xml
New file @@ -0,0 +1,119 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd"> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, include this CDDL HEADER in each ! file and include the License file at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, ! add the following below this CDDL HEADER, with the fields enclosed ! by brackets "[]" replaced with your own identifying information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <defaultcall function="main_schema_solaris"/> <function name="main_schema_solaris" scope="local"> <sequence> <block name="'main_schema_solaris'"> <try> <sequence> <script> CurrentTestPath['group']='schema' CurrentTestPath['suite']='solaris' __group=CurrentTestPath['group'] __groupdir='%s/testcases/%s' % (TESTS_DIR,__group) </script> <!--- Test Suite information #@TestSuiteName Native schema test suite #@TestSuitePurpose Verify LDAP Naming Services Schema Elements #@TestSuiteID Suite #@TestSuiteGroup Example #@TestGroup Example #@TestScript suite.xml #@TestHTMLLink http://opends.dev.java.net/ --> <call function="'testSuite_Preamble'"/> <try> <sequence> <!-- List of Import of Test Functions --> <script> importList=[] importList.append('schema_setup') importList.append('solaris/schema_solaris_tests') importList.append('schema_cleanup') </script> <!-- Import the files for this test suite --> <iterate var="__import" in="importList"> <import machine="STAF_LOCAL_HOSTNAME" file="'%s/%s.xml' % (__groupdir,__import)"/> </iterate> <!-- Test Suite Setup --> <call function="'%s_setup' % __group"/> <!-- List of Test Cases --> <script> testsList=[] testsList.append('schema_solaris_001') testsList.append('schema_rfc4876_001') </script> <!-- Execute the Tests --> <iterate var="__test" in="testsList"> <sequence> <call function="'%s' % (__test)" /> </sequence> </iterate> </sequence> <catch exception="'STAFException.TestSuite.SetupException'"> <sequence> <message log="1" level="'fatal'"> 'Setup of test suite failed.' </message> <rethrow/> </sequence> </catch> <finally> <message>'Test Cases Completed.'</message> </finally> </try> </sequence> <finally> <sequence> <!-- Test Suite Cleanup --> <message>'Finally: Example Cleanup.'</message> <call function="'%s_cleanup' % __group"/> <call function="'testSuite_Postamble'"/> </sequence> </finally> </try> </block> </sequence> </function> </stax> opends/tests/staf-tests/functional-tests/testcases/schema/solaris/schema_solaris_tests.xml
New file @@ -0,0 +1,140 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd"> <!-- ! CDDL HEADER START ! ! The contents of this file are subject to the terms of the ! Common Development and Distribution License, Version 1.0 only ! (the "License"). You may not use this file except in compliance ! with the License. ! ! You can obtain a copy of the license at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE ! or https://OpenDS.dev.java.net/OpenDS.LICENSE. ! See the License for the specific language governing permissions ! and limitations under the License. ! ! When distributing Covered Code, include this CDDL HEADER in each ! file and include the License file at ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, ! add the following below this CDDL HEADER, with the fields enclosed ! by brackets "[]" replaced with your own identifying information: ! Portions Copyright [yyyy] [name of copyright owner] ! ! CDDL HEADER END ! ! Copyright 2008 Sun Microsystems, Inc. ! --> <stax> <!-- Definition of Test Cases --> <!--- Test Case : Schema: Add Solaris Schema Entries --> <!--- Test Case information #@TestMarker Schema #@TestName Schema: Add Solaris Schema Entries #@TestID Test #@TestPurpose Add Solaris schema entries #@TestPreamble #@TestSteps Add over LDAP protocol Solaris schema entries #@TestPostamble #@TestResult Test is successful if the result code is 0 --> <function name="schema_solaris_001" scope="local"> <testcase name="getTestCaseName('Add Solaris Schema Entries')"> <sequence> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Test Name = %s' % STAXCurrentTestcase </message> <script> solarisLdif='%s/schema/solaris/solaris.ldif' % remote.data </script> <call function="'runFunction'"> { 'functionName' : 'ldapModifyWithScript' , 'functionMessage' : 'Add solaris schema entries' , 'functionException' : 'LDAP.ModifyException' , 'functionArguments' : { 'location' : server.location , 'dsInstanceHost': server.host , 'dsInstancePort': server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd': server.password , 'dsAdd' : 'TRUE' , 'dsFilename' : solarisLdif } } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </sequence> </testcase> </function> <!--- Test Case : Schema: Add RFC 4876 Schema Entries --> <!--- Test Case information #@TestMarker Schema #@TestName Schema: Add RFC 4876 Schema Entries #@TestID Test #@TestPurpose Add RFC 4876 schema entries #@TestPreamble #@TestSteps Add over LDAP protocol RFC 4876 schema entries #@TestPostamble #@TestResult Test is successful if the result code is 0 --> <function name="schema_rfc4876_001" scope="local"> <testcase name="getTestCaseName('Add RFC 4876 Schema Entries')"> <sequence> <try> <sequence> <call function="'testCase_Preamble'"/> <message> 'Test Name = %s' % STAXCurrentTestcase </message> <script> rfc4876ldif='%s/schema/solaris/rfc4876.ldif ' % remote.data </script> <call function="'runFunction'"> { 'functionName' : 'ldapModifyWithScript' , 'functionMessage' : 'Add solaris schema entries' , 'functionException' : 'LDAP.ModifyException' , 'functionArguments' : { 'location' : server.location , 'dsInstanceHost': server.host , 'dsInstancePort': server.port , 'dsInstanceDn' : server.dn , 'dsInstancePswd': server.password , 'dsAdd' : 'TRUE' , 'dsFilename' : rfc4876ldif } } </call> <!-- TODO: Need to verify that the added entry is working as specified --> </sequence> <catch exception="'STAXException.LDAP.ModifyException'" typevar="eType" var="eInfo"> <message log="1" level="'fatal'"> '%s: LDAPModify failed. eInfo(%s)' % (eType,eInfo) </message> </catch> <finally> <call function="'testCase_Postamble'"/> </finally> </try> </sequence> </testcase> </function> </stax> opends/tests/staf-tests/shared/functions/utils.xml
@@ -254,6 +254,15 @@ searchre = re.compile('%s' % expectedString) </script> <!-- Check that returnString is really a string --> <if expr='returnString.__class__ is not org.python.core.PyString'> <sequence> <message log="1" level="'Error'"> 'ERROR : Invalid returnString type (%s), requires org.python.core.PyString.' % returnString.__class__ </message> <tcstatus result="'fail'"/> </sequence> </if> <if expr='re.search(searchre, returnString) != None'> <sequence> <tcstatus result="'pass'"/> @@ -1428,7 +1437,7 @@ </sequence> </function> <function name="runFunction"> <function name="runFunction" scope="local"> <function-map-args> <function-arg-def name="functionName" type="required"> <function-arg-description> @@ -1523,7 +1532,9 @@ if not True: True=1 _expectedRC=int(expectedRC) _throwException=False if functionException: _throwException=True @@ -1541,20 +1552,27 @@ if functionFailureTC: _createFailureTC=True </script> <message log="1" level="'info'" if="_displayMessage == True">'%s' % functionMessage</message> <message log="1" level="'debug'">'runFunction: %s: called with parameters [%s]' % (functionName,functionArguments)</message> <message log="1" level="'info'" if="_displayMessage == True"> '%s' % functionMessage </message> <message log="1" level="'debug'"> 'runFunction: %s: called with parameters [%s]' % (functionName,functionArguments) </message> <call function="functionName">functionArguments</call> <script> _functionRC = RC _functionRC = int(RC) _functionResult = STAXResult </script> <message log="1" level="'debug'">'runFunction: %s: returned [%s] with [%s]' % (functionName,RC,STAXResult)</message> <message log="1" level="'debug'"> 'runFunction: %s: returned [%s] with [%s]' % (functionName,RC,STAXResult) </message> <!-- this section handles the optional case when we need to set the test case status --> <if expr="_doSetTCStatus == True"> <sequence> <if expr="_functionRC == expectedRC"> <if expr="_functionRC == _expectedRC"> <script>_tcStatus='pass'</script> </if> <tcstatus result="_tcStatus" /> @@ -1565,7 +1583,7 @@ exception upon unexpected function return code --> <if expr="_throwException == True" > <if expr="_functionRC != expectedRC" > <if expr="_functionRC != _expectedRC" > <throw exception="'STAXException.%s' % functionException" /> </if> </if> @@ -1574,7 +1592,7 @@ test case status to fail to reflect the failure in the test report. --> <if expr="_createFailureTC == True" > <if expr="_functionRC != expectedRC" > <if expr="_functionRC != _expectedRC" > <testcase name="'!!! %s [%s]' % (functionFailureTC,functionName)"> <tcstatus result="'fail'" /> </testcase> @@ -1584,8 +1602,8 @@ <!-- TODO: implement the signal raising mechanism --> <!-- TODO: implement the call back function mechanism --> <!-- bubble the function return code up one level --> <return>_functionRC</return> <!-- bubble the function return code and result up one level --> <return>[_functionRC,_functionResult]</return> </sequence> </function>