mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

gary_williams
29.19.2009 114974c8366fd20310b01aae55ba8654180242f9
Test suite for binary transfer option
2 files added
5 files modified
1363 ■■■■■ changed files
opends/tests/staf-tests/functional-tests/testcases/core/binaryattr/core_binaryattr.xml 141 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/core/binaryattr/core_binaryattr_tests.xml 1047 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/core/core.xml 15 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/core/core_setup.xml 92 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml 18 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/functions/environment.xml 7 ●●●● patch | view | raw | blame | history
opends/tests/staf-tests/shared/python/common.py 43 ●●●●● patch | view | raw | blame | history
opends/tests/staf-tests/functional-tests/testcases/core/binaryattr/core_binaryattr.xml
New file
@@ -0,0 +1,141 @@
<?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 2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="core_binaryattr"/>
  <function name="core_binaryattr" scope="local">
    <sequence>
      <block name="'core_binaryattr'">
        <try>
          <sequence>
            <script>
              CurrentTestPath['group']='core'
              CurrentTestPath['suite']='binaryattr'
              __group=CurrentTestPath['group']
              __groupdir='%s/testcases/%s' % (TESTS_DIR,__group)
            </script>
            <!--- Test Suite information
            #@TestSuiteName       Binary attributes test suite
            #@TestSuitePurpose    Verify binary attributes
            #@TestSuiteID         Binary
            #@TestSuiteGroup      Core
            #@TestGroup           Core
            #@TestScript          core_binaryattr.xml
            #@TestHTMLLink        http://opends.dev.java.net/
            -->
            <call function="'testSuite_Preamble'"/>
            <try>
              <sequence>
                <!-- List of Import of Test Functions -->
                <script>
                  importList=[]
                  importList.append('core_setup')
                  importList.append('binaryattr/core_binaryattr_tests')
                  importList.append('core_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">
                  { 'initData' : False ,
                    'loadData' : False }
                </call>
                <!-- Specific to binary attributes tests -->
                <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
                  server.backend    = DIRECTORY_INSTANCE_BE
                  __baseDN='o=Binary attributes tests, dc=example,%s' % server.suffix
                </script>
                <!-- List of Test Cases -->
                <script>
                  testsList=[]
                  testsList.append('core_binaryattr_001')
                  testsList.append('core_binaryattr_002')
                  testsList.append('core_binaryattr_003')
                  testsList.append('core_binaryattr_004')
                  testsList.append('core_binaryattr_005')
                  testsList.append('core_binaryattr_006')
                </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: Solaris Schema 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/core/binaryattr/core_binaryattr_tests.xml
New file
@@ -0,0 +1,1047 @@
<?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 2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <!-- Definition of Test Cases -->
  <!--- Test Case : Core : Binary Attributes : Makeldif-->
  <!--- Test Case information
  #@TestMarker          Schema
  #@TestName            Core : Binary Attributes
  #@TestID              Makeldif
  #@TestPurpose         Test create of ldif using binary attributes
  #@TestPreamble
  #@TestSteps           Make an ldif containing binary attributes
  #@TestPostamble
  #@TestResult          Test is successful if the result code is 0
  -->
  <function name="core_binaryattr_001" scope="local">
    <testcase name="getTestCaseName('Makeldif Binary Attributes.')">
      <sequence>
        <try>
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Test Name = %s' % STAXCurrentTestcase
            </message>
            <script>
              binaryattrLdif='%s/binaryattr.ldif' % remote.temp
              templateName='binaryattr.template'
              dnList=dn2list(__baseDN)
              dnList.reverse()
            </script>
            <!-- MakeLDIF template -->
            <message>'Generating template (%s).' % templateName</message>
            <script>
              template=[]
              template.append('define suffix=%s' % __baseDN)
              template.append('define maildomain=%s' % dn2rfcmailaddr(server.suffix))
              template.append('')
              dnRelList=[]
              for rdn in dnList:
                dnRelList.insert(0,rdn.strip())
                template.append('')
                template.append('branch: %s' % list2dn(dnRelList))
              template.append('')
              template.append('branch: ou=people,[suffix]')
              template.append('subordinateTemplate: certificationAuthority:1')
              template.append('subordinateTemplate: cRLDistributionPoint:1')
              template.append('subordinateTemplate: person:100')
              template.append('subordinateTemplate: certificatePerson:100')
              template.append('subordinateTemplate: photoPerson:100')
              template.append('')
              template.append('template: certificationAuthority')
              template.append('rdnAttr: cn')
              template.append('objectclass: applicationProcess')
              template.append('objectclass: certificationAuthority')
              template.append('cn: myCA')
              template.append('description: The authority on certificates.')
              template.append('cACertificate;binary:: &lt;random:base64:20>')
              template.append('certificateRevocationList;binary:: &lt;random:base64:20>')
              template.append('authorityRevocationList;binary:: &lt;random:base64:20>')
              template.append('crossCertificatePair;binary:: &lt;random:base64:20>')
              template.append('')
              template.append('template: cRLDistributionPoint')
              template.append('rdnAttr: cn')
              template.append('objectclass: cRLDistributionPoint')
              template.append('cn: myCRLDP')
              template.append('certificateRevocationList;binary:: &lt;random:base64:20>')
              template.append('authorityRevocationList;binary:: &lt;random:base64:20>')
              template.append('deltaRevocationList;binary:: &lt;random:base64:20>')
              template.append('')
              template.append('template: person')
              template.append('rdnAttr: uid')
              template.append('objectClass: top')
              template.append('objectClass: person')
              template.append('objectClass: organizationalPerson')
              template.append('objectClass: inetOrgPerson')
              template.append('givenName: &lt;first>')
              template.append('sn: &lt;last>')
              template.append('cn: {givenName} {sn}')
              template.append('initials: {givenName:1}&lt;random:chars:ABCDEFGHIJKLMNOPQRSTUVWXYZ:1>{sn:1}')
              template.append('employeeNumber: &lt;sequential:0>')
              template.append('uid: user.{employeeNumber}')
              template.append('mail: {uid}@[maildomain]')
              template.append('userPassword: password')
              template.append('telephoneNumber: &lt;random:telephone>')
              template.append('homePhone: &lt;random:telephone>')
              template.append('pager: &lt;random:telephone>')
              template.append('mobile: &lt;random:telephone>')
              template.append('street: &lt;random:numeric:5> &lt;file:streets> Street')
              template.append('l: &lt;file:cities>')
              template.append('st: &lt;file:states>')
              template.append('postalCode: &lt;random:numeric:5>')
              template.append('postalAddress: {cn}${street}${l}, {st}  {postalCode}')
              template.append('description: This is the description for {cn}.')
              template.append('')
              template.append('template: certificatePerson')
              template.append('rdnAttr: uid')
              template.append('extends: person')
              template.append('objectclass: strongauthenticationUser')
              template.append('objectclass: userSecurityInformation')
              template.append('userCertificate;binary:: &lt;random:base64:1000>')
              template.append('supportedAlgorithms;binary:: &lt;random:base64:20>')
              template.append('')
              template.append('template: photoPerson')
              template.append('rdnAttr: uid')
              template.append('extends: person')
              template.append('jpegPhoto:: &lt;random:base64:2000>')
              template.append('')
            </script>
            <!-- Write template to file -->
            <script>
              ftemplate=open('%s/%s' % (local.temp,templateName),'w')
              for line in template:
                ftemplate.write('%s\n' % line)
              ftemplate.close()
            </script>
            <!-- Copy template to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,templateName),
              'destfile'   : '%s/%s' % (remote.temp,templateName),
              'remotehost' : server.location
              }
            </call>
            <!-- Generate an ldif file containing binary attributes -->
            <call function="'runFunction'">
              { 'functionName'      : 'MakeLdifWithScript'                ,
                'functionMessage'   : 'Generate LDIF file.'               ,
                'functionException' : 'Tools.MakeLdifException'           ,
                'functionArguments' : { 'location'      : server.location ,
                                        'templateFile'  : '%s/%s' %
                                          (remote.temp,templateName)      ,
                                        'ldifFile'      : binaryattrLdif }
              }
            </call>
          </sequence>
          <catch exception="'STAXException.Tools.MakeLdifException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: MakeLdif failed. eInfo(%s)' % (eType,eInfo)
            </message>
          </catch>
          <finally>
            <call function="'testCase_Postamble'"/>
          </finally>
        </try>
      </sequence>
    </testcase>
  </function>
  <!--- Test Case : Core : Binary Attributes : Import Binary Attributes from File -->
  <!--- Test Case information
  #@TestMarker          Schema
  #@TestName            Core : Binary Attributes
  #@TestID              Import Binary Attributes from File
  #@TestPurpose         Test import of ldif containing binary transfer option
  #@TestPreamble
  #@TestSteps           Import ldif containing binary attributes
  #@TestPostamble
  #@TestResult          Test is successful if the result code is 0
  -->
  <function name="core_binaryattr_002" scope="local">
    <testcase name="getTestCaseName('Import Binary Attributes from File.')">
      <sequence>
        <try>
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Test Name = %s' % STAXCurrentTestcase
            </message>
            <script>
              binaryattrLdif='%s/binaryattr.ldif' % remote.temp
              templateName='binaryattr.template'
            </script>
            <!-- On line import of ldif file containing binary attribute -->
            <call function="'runFunction'">
              { 'functionName'      : 'ImportLdifWithScript'                        ,
                'functionMessage'   : 'Import ldif file with binary entries'        ,
                'functionException' : 'Admin.ImportException'                       ,
                'functionArguments' : { 'location'            : server.location     ,
                                        'dsInstanceHost'      : server.host         ,
                                        'dsInstanceAdminPort' : server.adminport    ,
                                        'dsInstanceDn'        : server.dn           ,
                                        'dsInstancePswd'      : server.password     ,
                                        'dsBackEnd'           : server.backend      ,
                                        'dsLdifFile'          : binaryattrLdif          ,
                                        'dsRejectFile'        : '%s/rejects.txt' % remote.temp }
              }
            </call>
            <!--  Check that the import task is complete-->
            <call function="'runFunction'">
              { 'functionName'      : 'manage-tasks'                        ,
                'functionMessage'   : 'Manage the online import task'       ,
                'functionException' : 'Admin.ManageTaskException'           ,
                'functionArguments' : { 'location'        : server.location ,
                                        'dsInstanceHost'  : server.host     ,
                                        'dsInstanceDn'    : server.dn       ,
                                        'dsInstancePswd'  : server.password ,
                                        'dsQuiet'         : ' ' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <call function="'runFunction'">
              { 'functionName'      : 'searchStringForSubstring'                      ,
                'functionMessage'   : 'Check import is completed successfully.'       ,
                'functionException' : 'Utils.CheckStringException'                    ,
                'functionArguments' : { 'returnString'    : _functionResult           ,
                                        'testString'      : 'Completed successfully'  ,
                                        'expectedResult'  : '1' }
              }
            </call>
            <!-- Count the number of entries in backend -->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Count number of imported entries.'     ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : __baseDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'dn'             ,
                                        'dsCountEntries'   : 'True'           ,
                                        'expectedRC'       : 255 }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <call function="'runFunction'">
              { 'functionName'      : 'searchStringForSubstring'                      ,
                'functionMessage'   : 'Check import is completed successfully.'       ,
                'functionException' : 'Utils.CheckStringException'                    ,
                'functionArguments' : { 'returnString'    : _functionResult           ,
                                        'testString'      : 'Total number of matching entries: 304'  ,
                                        'expectedResult'  : '1' }
              }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the usercertificate entry.' ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : __baseDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check usercertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'usercertificate;binary'  ,
                                       'returnString'   : _functionResult ,
                                       'case'           : 'ignorecase' }
             }
            </call>
          </sequence>
          <catch exception="'STAXException.Admin.ImportException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: Import failed. eInfo(%s)' % (eType,eInfo)
            </message>
          </catch>
          <catch exception="'STAXException.Admin.ManageTaskException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: ManageTask 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>
      </sequence>
    </testcase>
  </function>
  <function name="core_binaryattr_003" scope="local">
    <testcase name="getTestCaseName('Add userCertificate no binary option.')">
      <sequence>
        <try>
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Test Name = %s' % STAXCurrentTestcase
            </message>
            <script>
              ldifFile='%s/userCertificate.ldif' % remote.temp
              templateName='userCertificate.template'
              targetDN='ou=core binaryattr 003,ou=people,%s' % __baseDN
            </script>
            <!-- MakeLDIF template -->
            <message>'Generating template (%s).' % templateName</message>
            <script>
              ldifEntry=[]
              ldifEntry.append('branch: %s' % targetDN)
              ldifEntry.append('subordinateTemplate: certificatePerson:5')
              ldifEntry.append('')
              ldifEntry.append('template: person')
              ldifEntry.append('rdnAttr: uid')
              ldifEntry.append('objectClass: top')
              ldifEntry.append('objectClass: person')
              ldifEntry.append('objectClass: organizationalPerson')
              ldifEntry.append('objectClass: inetOrgPerson')
              ldifEntry.append('givenName: &lt;first>')
              ldifEntry.append('sn: &lt;last>')
              ldifEntry.append('cn: {givenName} {sn}')
              ldifEntry.append('employeeNumber: &lt;sequential:0>')
              ldifEntry.append('uid: stronguser.{employeeNumber}')
              ldifEntry.append('')
              ldifEntry.append('template: certificatePerson')
              ldifEntry.append('rdnAttr: uid')
              ldifEntry.append('extends: person')
              ldifEntry.append('objectclass: strongauthenticationUser')
              ldifEntry.append('userCertificate: &lt;random:base64:1000>')
              ldifEntry.append('')
            </script>
            <!-- Write template to file -->
            <script>
              ftemplate=open('%s/%s' % (local.temp,templateName),'w')
              for line in ldifEntry:
                ftemplate.write('%s\n' % line)
              ftemplate.close()
            </script>
            <!-- Copy template to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,templateName),
              'destfile'   : '%s/%s' % (remote.temp,templateName),
              'remotehost' : server.location
              }
            </call>
            <!-- Generate an ldif file containing binary attributes -->
            <call function="'runFunction'">
              { 'functionName'      : 'MakeLdifWithScript'                ,
                'functionMessage'   : 'Generate LDIF file.'               ,
                'functionException' : 'Tools.MakeLdifException'           ,
                'functionArguments' : { 'location'      : server.location ,
                                        'templateFile'  : '%s/%s' %
                                          (remote.temp,templateName)      ,
                                        'ldifFile'      : ldifFile }
              }
            </call>
            <call function="'runFunction'">
              { 'functionName'      : 'ldapModifyWithScript'              ,
                'functionMessage'   : 'Add ldif with userCertificate;binary entry'     ,
                'functionException' : 'LDAP.AddException'                 ,
                'functionArguments' : { 'location'      : server.location ,
                                        'dsInstanceHost': server.host     ,
                                        'dsInstancePort': server.port     ,
                                        'dsInstanceDn'  : server.dn       ,
                                        'dsInstancePswd': server.password ,
                                        'dsAdd'         : 'TRUE'          ,
                                        'dsFilename'    : ldifFile }
              }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate;binary' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
          </sequence>
          <catch exception="'STAXException.Tools.MakeLdifException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: MakeLdif failed. eInfo(%s)' % (eType,eInfo)
            </message>
          </catch>
          <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>
      </sequence>
    </testcase>
  </function>
  <function name="core_binaryattr_004" scope="local">
    <testcase name="getTestCaseName('Add userCertificate with binary transfer option')">
      <sequence>
        <try>
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Test Name = %s' % STAXCurrentTestcase
            </message>
            <script>
              ldifFile='%s/userCertificate.ldif' % remote.temp
              templateName='userCertificate.template'
              targetDN='ou=core binaryattr 004,ou=people,%s' % __baseDN
            </script>
            <!-- MakeLDIF template -->
            <message>'Generating template (%s).' % templateName</message>
            <script>
              ldifEntry=[]
              ldifEntry.append('branch: %s' % targetDN)
              ldifEntry.append('subordinateTemplate: certificatePerson:10')
              ldifEntry.append('')
              ldifEntry.append('template: person')
              ldifEntry.append('rdnAttr: uid')
              ldifEntry.append('objectClass: top')
              ldifEntry.append('objectClass: person')
              ldifEntry.append('objectClass: organizationalPerson')
              ldifEntry.append('objectClass: inetOrgPerson')
              ldifEntry.append('givenName: &lt;first>')
              ldifEntry.append('sn: &lt;last>')
              ldifEntry.append('cn: {givenName} {sn}')
              ldifEntry.append('employeeNumber: &lt;sequential:10>')
              ldifEntry.append('uid: stronguser.{employeeNumber}')
              ldifEntry.append('')
              ldifEntry.append('template: certificatePerson')
              ldifEntry.append('rdnAttr: uid')
              ldifEntry.append('extends: person')
              ldifEntry.append('objectclass: strongauthenticationUser')
              ldifEntry.append('userCertificate;binary:: &lt;random:base64:1000>')
              ldifEntry.append('')
            </script>
            <!-- Write template to file -->
            <script>
              ftemplate=open('%s/%s' % (local.temp,templateName),'w')
              for line in ldifEntry:
                ftemplate.write('%s\n' % line)
              ftemplate.close()
            </script>
            <!-- Copy template to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,templateName),
              'destfile'   : '%s/%s' % (remote.temp,templateName),
              'remotehost' : server.location
              }
            </call>
            <!-- Generate an ldif file containing binary attributes -->
            <call function="'runFunction'">
              { 'functionName'      : 'MakeLdifWithScript'                ,
                'functionMessage'   : 'Generate LDIF file.'               ,
                'functionException' : 'Tools.MakeLdifException'           ,
                'functionArguments' : { 'location'      : server.location ,
                                        'templateFile'  : '%s/%s' %
                                          (remote.temp,templateName)      ,
                                        'ldifFile'      : ldifFile }
              }
            </call>
            <call function="'runFunction'">
              { 'functionName'      : 'ldapModifyWithScript'              ,
                'functionMessage'   : 'Add ldif with userCertificate;binary entry'     ,
                'functionException' : 'LDAP.AddException'                 ,
                'functionArguments' : { 'location'      : server.location ,
                                        'dsInstanceHost': server.host     ,
                                        'dsInstancePort': server.port     ,
                                        'dsInstanceDn'  : server.dn       ,
                                        'dsInstancePswd': server.password ,
                                        'dsAdd'         : 'TRUE'          ,
                                        'dsFilename'    : ldifFile }
              }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate;binary' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
          </sequence>
          <catch exception="'STAXException.Tools.MakeLdifException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: MakeLdif failed. eInfo(%s)' % (eType,eInfo)
            </message>
          </catch>
          <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>
      </sequence>
    </testcase>
  </function>
  <function name="core_binaryattr_005" scope="local">
    <testcase name="getTestCaseName('Add file based userCertificate with no binary transfer option')">
      <sequence>
        <try>
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Test Name = %s' % STAXCurrentTestcase
            </message>
            <script>
              ldifFile='userCertificate.ldif'
              pemFile='user-cert.pem'
              templateName='userCertificate.template'
              orgUnit='core binaryattr 005'
              targetDN='ou=%s,ou=people,%s' % (orgUnit,__baseDN)
            </script>
            <!-- Generate Ldif file -->
            <message>'Generating ldif (%s).' % ldifFile</message>
            <script>
              ldifEntry=[]
              ldifEntry.append('dn: %s' % targetDN)
              ldifEntry.append('objectClass: top')
              ldifEntry.append('objectClass: organizationalUnit')
              ldifEntry.append('ou: %s' % orgUnit)
              ldifEntry.append('')
              ldifEntry.append('dn: cn=Johnny Strong, %s' % targetDN)
              ldifEntry.append('objectClass: top')
              ldifEntry.append('objectClass: person')
              ldifEntry.append('objectclass: strongauthenticationUser')
              ldifEntry.append('cn: Johnny Strong')
              ldifEntry.append('sn: Strong')
              ldifEntry.append('userCertificate:&lt; file:///%s/%s' % (remote.temp,pemFile))
              ldifEntry.append('')
            </script>
            <!-- Write template to file -->
            <script>
              fldif=open('%s/%s' % (local.temp,ldifFile),'w')
              for line in ldifEntry:
                fldif.write('%s\n' % line)
              fldif.close()
            </script>
            <!-- Copy ldif to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,ldifFile),
              'destfile'   : '%s/%s' % (remote.temp,ldifFile),
              'remotehost' : server.location
              }
            </call>
            <!-- Generate PEM file -->
            <message>'Generating ldif (%s).' % ldifFile</message>
            <script>
              pemEntry=[]
              pemEntry.append('OiBzTzJVNW12Rk1weG5pL2pXV3pzcmJ2MnBPZEM')
            </script>
            <!-- Write template to file -->
            <script>
              fpem=open('%s/%s' % (local.temp,pemFile),'w')
              for line in pemEntry:
                fpem.write('%s\n' % line)
              fpem.close()
            </script>
            <!-- Copy PEM to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,pemFile),
              'destfile'   : '%s/%s' % (remote.temp,pemFile),
              'remotehost' : server.location
              }
            </call>
            <call function="'runFunction'">
              { 'functionName'      : 'ldapModifyWithScript'              ,
                'functionMessage'   : 'Add ldif with userCertificate;binary entry' ,
                'functionException' : 'LDAP.AddException'                 ,
                'functionArguments' : { 'location'      : server.location ,
                                        'dsInstanceHost': server.host     ,
                                        'dsInstancePort': server.port     ,
                                        'dsInstanceDn'  : server.dn       ,
                                        'dsInstancePswd': server.password ,
                                        'dsAdd'         : 'TRUE'          ,
                                        'dsFilename'    : '%s/%s' % (remote.temp,ldifFile) }
              }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate;binary' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
          </sequence>
          <catch exception="'STAXException.Tools.MakeLdifException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: MakeLdif failed. eInfo(%s)' % (eType,eInfo)
            </message>
          </catch>
          <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>
      </sequence>
    </testcase>
  </function>
  <function name="core_binaryattr_006" scope="local">
    <testcase name="getTestCaseName('Add file based userCertificate with binary transfer option')">
      <sequence>
        <try>
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Test Name = %s' % STAXCurrentTestcase
            </message>
            <script>
              ldifFile='userCertificate.ldif'
              pemFile='user-cert.pem'
              templateName='userCertificate.template'
              orgUnit='core binaryattr 006'
              targetDN='ou=%s,ou=people,%s' % (orgUnit,__baseDN)
            </script>
            <!-- Generate Ldif file -->
            <message>'Generating ldif (%s).' % ldifFile</message>
            <script>
              ldifEntry=[]
              ldifEntry.append('dn: %s' % targetDN)
              ldifEntry.append('objectClass: top')
              ldifEntry.append('objectClass: organizationalUnit')
              ldifEntry.append('ou: %s' % orgUnit)
              ldifEntry.append('')
              ldifEntry.append('dn: cn=Jeff Grapes, %s' % targetDN)
              ldifEntry.append('objectClass: top')
              ldifEntry.append('objectClass: person')
              ldifEntry.append('objectclass: strongauthenticationUser')
              ldifEntry.append('cn: Jeff Grapes')
              ldifEntry.append('sn: Grapes')
              ldifEntry.append('userCertificate;binary:&lt; file:///%s/%s' % (remote.temp,pemFile))
              ldifEntry.append('')
            </script>
            <!-- Write template to file -->
            <script>
              fldif=open('%s/%s' % (local.temp,ldifFile),'w')
              for line in ldifEntry:
                fldif.write('%s\n' % line)
              fldif.close()
            </script>
            <!-- Copy ldif to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,ldifFile),
              'destfile'   : '%s/%s' % (remote.temp,ldifFile),
              'remotehost' : server.location
              }
            </call>
            <!-- Generate PEM file -->
            <message>'Generating ldif (%s).' % ldifFile</message>
            <script>
              pemEntry=[]
              pemEntry.append('OiBzTzJVNW12Rk1weG5pL2pXV3pzcmJ2MnBPZEM')
            </script>
            <!-- Write template to file -->
            <script>
              fpem=open('%s/%s' % (local.temp,pemFile),'w')
              for line in pemEntry:
                fpem.write('%s\n' % line)
              fpem.close()
            </script>
            <!-- Copy PEM to SUT -->
            <call function="'copyFile'">
              {
              'srcfile'    : '%s/%s' % (local.temp,pemFile),
              'destfile'   : '%s/%s' % (remote.temp,pemFile),
              'remotehost' : server.location
              }
            </call>
            <call function="'runFunction'">
              { 'functionName'      : 'ldapModifyWithScript'              ,
                'functionMessage'   : 'Add ldif with userCertificate;binary entry' ,
                'functionException' : 'LDAP.AddException'                 ,
                'functionArguments' : { 'location'      : server.location ,
                                        'dsInstanceHost': server.host     ,
                                        'dsInstancePort': server.port     ,
                                        'dsInstanceDn'  : server.dn       ,
                                        'dsInstancePswd': server.password ,
                                        'dsAdd'         : 'TRUE'          ,
                                        'dsFilename'    : '%s/%s' % (remote.temp,ldifFile) }
              }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
            <!--  Search for the usercertificate attributes-->
            <call function="'runFunction'">
              { 'functionName'      : 'ldapSearchWithScript'                  ,
                'functionMessage'   : 'Search for the userCertificate entry.'       ,
                'functionException' : 'LDAP.SearchException'                  ,
                'functionArguments' : { 'dsInstanceHost'   : server.host      ,
                                        'dsInstancePort'   : server.port      ,
                                        'dsInstanceDn'     : server.dn        ,
                                        'dsInstancePswd'   : server.password  ,
                                        'dsBaseDN'         : targetDN         ,
                                        'dsFilter'         : 'objectclass=*'  ,
                                        'dsAttributes'     : 'usercertificate;binary' }
              }
            </call>
            <script>
              _functionResult=parse_stax_result(STAXResult)
            </script>
            <!--  Check that usercertificate;binary is returned in search result -->
            <call function="'runFunction'">
             { 'functionName'      : 'checktestString'                        ,
               'functionMessage'   : 'Check userCertificate attribute is returned.' ,
               'functionException' : 'Utils.CheckStringException'             ,
               'functionArguments' : { 'expectedString' : 'userCertificate;binary'  ,
                                       'returnString'   : _functionResult }
             }
            </call>
          </sequence>
          <catch exception="'STAXException.Tools.MakeLdifException'" typevar="eType" var="eInfo">
            <message log="1" level="'fatal'">
              '%s: MakeLdif failed. eInfo(%s)' % (eType,eInfo)
            </message>
          </catch>
          <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>
      </sequence>
    </testcase>
  </function>
</stax>
opends/tests/staf-tests/functional-tests/testcases/core/core.xml
@@ -23,7 +23,7 @@
 !
 ! CDDL HEADER END
 !
 !      Copyright 2006-2008 Sun Microsystems, Inc.
 !      Copyright 2006-2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="main_core" />
@@ -33,12 +33,12 @@
    </function-list-args>
    <block name="'core'">
      <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>
        <!--- 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']='core'
        </script>
@@ -53,6 +53,7 @@
          testList.append(['controls','core_ctrls_authorization_id'])
          testList.append(['controls','core_ctrls_assertion'])
          testList.append(['controls','core_ctrls_matched_values'])
          testList.append(['binaryattr','core_binaryattr'])
        </script>
        <iterate var="_test" in="testList">
          <sequence>
opends/tests/staf-tests/functional-tests/testcases/core/core_setup.xml
@@ -23,11 +23,29 @@
 !
 ! CDDL HEADER END
 !
 !      Copyright 2006-2008 Sun Microsystems, Inc.
 !      Copyright 2006-2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="core_setup" />
  <function name="core_setup">
    <function-prolog>
      Set up the core test group
    </function-prolog>
    <function-map-args>
      <function-arg-def name="initData" type="optional" default="True">
        <function-arg-description>
          Initialize the data for the core test group
        </function-arg-description>
        <function-arg-property name="type" value="integer"/>
      </function-arg-def>
      <function-arg-def name="loadData" type="optional" default="True">
        <function-arg-description>
          Load the data for the core test group
        </function-arg-description>
        <function-arg-property name="type" value="integer"/>
      </function-arg-def>
    </function-map-args>
    <sequence>
      <block name="'setup'">
        <sequence>
@@ -38,7 +56,7 @@
                'Create DS topology as described in config.py'
              </message>
              <call function="'createTopology'">
                { 'initialiseInstance' : True }
                { 'initialiseInstance' : initData }
              </call>
              <call function="'checkRC'">
                { 'returncode' : RC ,
@@ -68,40 +86,42 @@
            </sequence>
            <!--- End Block DS Process Active -->
          </block>
          <block name="'Block DS Load Data'">
            <!-- Load the data needed by the test suite -->
            <sequence>
              <message>
                'Add entries that are required for the Core Tests'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                  'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                  'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                  'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                  'entryToBeAdded' : '%s/core/ldifs/core_start.ldif'
                                     % remote.data,
                  'verbose'        : False
                }
              </call>
              <message>
                'Add 1000 extra entries that are required for some of the \
                Core Tests'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                  'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                  'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                  'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                  'entryToBeAdded' : '%s/core/ldifs/core_test_1K.ldif'
                                     % remote.data,
                  'verbose'        : False
                }
              </call>
            </sequence>
            <!-- End Block DS Load Data -->
          </block>
          <if expr='loadData == True'>
            <block name="'Block DS Load Data'">
              <!-- Load the data needed by the test suite -->
              <sequence>
                <message>
                  'Add entries that are required for the Core Tests'
                </message>
                <call function="'addEntry'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'entryToBeAdded' : '%s/core/ldifs/core_start.ldif'
                                       % remote.data,
                    'verbose'        : False
                  }
                </call>
                <message>
                  'Add 1000 extra entries that are required for some of the \
                  Core Tests'
                </message>
                <call function="'addEntry'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'entryToBeAdded' : '%s/core/ldifs/core_test_1K.ldif'
                                       % remote.data,
                    'verbose'        : False
                  }
                </call>
              </sequence>
              <!-- End Block DS Load Data -->
            </block>
          </if>
        </sequence>
      </block>
     </sequence>
opends/tests/staf-tests/functional-tests/testcases/schema/schema.xml
@@ -23,7 +23,7 @@
 !
 ! CDDL HEADER END
 !
 !      Copyright 2006-2008 Sun Microsystems, Inc.
 !      Copyright 2006-2009 Sun Microsystems, Inc.
 ! -->
<stax>
  <defaultcall function="main_schema"/>
@@ -77,22 +77,6 @@
              server.dn         = DIRECTORY_INSTANCE_DN
              server.password   = DIRECTORY_INSTANCE_PSWD
              server.suffix     = DIRECTORY_INSTANCE_SFX
              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>
            <!-- Run the test suites -->
opends/tests/staf-tests/shared/functions/environment.xml
@@ -23,7 +23,7 @@
 !
 ! CDDL HEADER END
 !
 !      Copyright 2007-2008 Sun Microsystems, Inc.
 !      Copyright 2007-2009 Sun Microsystems, Inc.
 ! -->
<stax>
  
@@ -461,6 +461,11 @@
      <message>
        'Load environment for test suite execution.'  
      </message>    
      <!-- All exceptions are logged to user log -->
      <script>
        STAXLogMessage = 1
      </script>
  
      <call function="'importSharedLibraries'"/>
      
opends/tests/staf-tests/shared/python/common.py
@@ -23,7 +23,7 @@
# CDDL HEADER END
#
#
#      Copyright 2007-2008 Sun Microsystems, Inc.
#      Copyright 2007-2009 Sun Microsystems, Inc.
__version__ = "$Revision$"
# $Source$
@@ -41,7 +41,11 @@
            "directory_server",
            "test_env",
            "staf_service",
            "get_test_name" ]
            "get_test_name",
            "parse_stax_result",
            "dn2list",
            "list2dn",
            "dn2rfcmailaddr" ]
class format_testcase:
  'Format the Test name objects'
@@ -247,6 +251,7 @@
    self.port=''
    self.dn=''
    self.password=''
    self.backend=''
  def location(self,location):
    return location
@@ -269,6 +274,9 @@
  def suffix(self,sfx):
    return sfx
  def backend(self,be):
    return be
class staf_service:  
  'Container to hold staf service instance objects'
  def __init__(self,host,name):
@@ -547,5 +555,36 @@
    i=i+1
  return __name[0:-1].strip()
def parse_stax_result(result):
  import org.python.core
  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
def dn2list(dn):
  __list=dn.split(',')
  return __list
def list2dn(list):
  return ",".join(list)
def dn2rfcmailaddr(dn):
  __addr=[]
  __list=dn.split(',')
  for __rdn in __list:
    __rhside=__rdn.split('=')[1]
    __addr.append(__rhside)
  return ".".join(__addr).lower()