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

gary_williams
13.18.2007 50f8a165bf3b68795f4f8d424286788c1abb2a13
Issue 1354 use block element for test groups and suites
43 files modified
24992 ■■■■ changed files
opends/tests/functional-tests/testcases/aci/aci.xml 168 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/aci/aci_setup.xml 150 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/aci/aci_target.xml 2796 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/aci/aci_targetattr.xml 2546 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/aci/aci_targetfilter_syntax.xml 3592 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/aci/aci_teardown.xml 160 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/backends.xml 98 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/backendsetup.xml 108 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/backup-tasks.xml 116 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/backup.xml 412 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/export-tasks.xml 724 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/export.xml 1748 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/import-tasks.xml 2708 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/import.xml 2308 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/restore-tasks.xml 69 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/backends/restore.xml 90 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/cleanup/cleanup.xml 46 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core.xml 192 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core_entry_cache.xml 378 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core_search_sizelimit.xml 592 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core_search_timelimit.xml 590 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core_setup.xml 124 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core_tf_filters.xml 234 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/core/core_version_report.xml 78 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/quickstart/quickstart.xml 154 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/schema/schema.xml 160 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/schema/schema_dynamic.xml 345 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/schema/schema_rfc_tests.xml 2008 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/schema/schema_setup.xml 80 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/account_activation/security_account_activation.xml 162 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/auth_pwd_syntax/security_auth_pwd_syntax.xml 192 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/bind_no_pwd/security_bind_no_pwd.xml 164 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/jks/security_jks.xml 166 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/jks/security_setup_jks.xml 4 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pkcs12/security_pkcs12.xml 164 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml 6 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml 238 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_policy_root/security_pwd_policy_root.xml 142 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_storage/security_pwd_storage.xml 248 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_pwd_validator.xml 172 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/sasl/security_sasl.xml 190 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/security.xml 112 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/setup/setup.xml 258 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/aci/aci.xml
@@ -31,99 +31,107 @@
  <function name="main_aci">
      <sequence>
    <sequence>
        <script>
          CurrentTestPath['group']='aci'
        </script>
      <block name="'aci'">
      
        <call function="'testGroup_Preamble'"/>
        <sequence>
          <script>
            CurrentTestPath['group']='aci'
          </script>
          <call function="'testGroup_Preamble'"/>
          <parallel>
            <block name="'Block DS Process Active'">
        
        <parallel>
          <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>
            </sequence>
           <!--- End Block DS Process Active -->
           </block>
           <block name="'Block Clients'">
            <sequence>
              <!--- Check that DS started -->
              <call function="'isAlive'">
                { 'noOfLoops'        : 5 ,
                  'noOfMilliSeconds' : 2000 }
              </call>
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/aci/aci_setup.xml' % (TESTS_DIR)"/>
              <call function="'aci_setup'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/aci/aci_target.xml' % (TESTS_DIR)"/>
              <call function="'aci_target'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/aci/aci_targetattr.xml' % (TESTS_DIR)"/>
              <call function="'aci_targetattr'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/aci/aci_targetfilter_syntax.xml' % (TESTS_DIR)"/>
              <call function="'aci_targetfilter_syntax'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/aci/aci_teardown.xml' % (TESTS_DIR)"/>
              <call function="'aci_teardown'" />
              <!--- Stop DS -->
              <sequence>
                <message>
                   'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT)
                   'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
                </message>
                <call function="'StopDsWithScript'">
                    { 'location'  : STAF_REMOTE_HOSTNAME,
                      'dsHost'    : DIRECTORY_INSTANCE_HOST,
                      'dsPort'    : DIRECTORY_INSTANCE_PORT,
                      'dsBindDN'  : DIRECTORY_INSTANCE_DN,
                      'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
                <!--- Start DS -->
                <call function="'StartDsWithScript'">
                 { 'location'  : STAF_REMOTE_HOSTNAME }
                </call>
                <call function="'checkRC'">
                    { 'returncode' : RC ,
                      'result'     : STAXResult }
                </call>
              </sequence>
              </sequence>
              <!--- End Block Clients -->
              </block>
          </parallel>
        <call function="'testGroup_Postamble'"/>
        
     </sequence>
              </sequence>
             <!--- End Block DS Process Active -->
             </block>
             <block name="'Block Clients'">
              <sequence>
                <!--- Check that DS started -->
                <call function="'isAlive'">
                  { 'noOfLoops'        : 5 ,
                    'noOfMilliSeconds' : 2000 }
                </call>
                <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                  file="'%s/testcases/aci/aci_setup.xml' % (TESTS_DIR)"/>
                <call function="'aci_setup'" />
                <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                  file="'%s/testcases/aci/aci_target.xml' % (TESTS_DIR)"/>
                <call function="'aci_target'" />
                <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                  file="'%s/testcases/aci/aci_targetattr.xml' % (TESTS_DIR)"/>
                <call function="'aci_targetattr'" />
                <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                  file="'%s/testcases/aci/aci_targetfilter_syntax.xml' % (TESTS_DIR)"/>
                <call function="'aci_targetfilter_syntax'" />
                <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                  file="'%s/testcases/aci/aci_teardown.xml' % (TESTS_DIR)"/>
                <call function="'aci_teardown'" />
                <!--- 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,
                        'dsPort'    : DIRECTORY_INSTANCE_PORT,
                        'dsBindDN'  : DIRECTORY_INSTANCE_DN,
                        'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
                  </call>
                  <call function="'checkRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                  </call>
                </sequence>
                </sequence>
                <!--- End Block Clients -->
                </block>
            </parallel>
          <call function="'testGroup_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/aci/aci_setup.xml
@@ -32,80 +32,88 @@
  <function name="aci_setup">
    <sequence>
      <block name="'setup'">
        <sequence>
  
      <script>
        CurrentTestPath['suite']='aci-setup'
      </script>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
      
      <call function="'testSuite_Preamble'"/>
      <!---
            Place group-specific test information here.
            #@TestGroupName             ACI
            #@TestGroupPurpose          To test the ACI functionality.
            Place suite-specific test information here.
            #@TestSuiteName             ACI Setup Tests
            #@TestSuitePurpose          Configure OpenDS to test ACI functionality.
            #@TestSuiteGroup            ACI Setup Tests
            #@TestScript                aci_setup.xml
      -->
       <!--- Test Case : Add Entries for ACI Tests -->
       <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Setup Tests
            #@TestName                  ACI Startup Test
            #@TestIssue                 none
            #@TestPurpose               Add entries that are needed for the ACI tests.
            #@TestPreamble              none
            #@TestStep                  Add entries with ldapmodify.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0 for all operations
        -->
        <testcase name="'ACI: ACI Setup: Add Initial Entries'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: ACI Setup: Adding Initial Entries'
            </message>
            <call function="'addEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeAdded'   : '%s/aci/aci_startup.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: ACI Setup: Enabling ACI'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/aci_handler.ldif' % STAGED_DATA_DIR }
            </call>
            <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
            </call>
            <call function="'testCase_Postamble'"/>
          <call function="'testSuite_Preamble'"/>
          <!---
                Place group-specific test information here.
                #@TestGroupName             ACI
                #@TestGroupPurpose          To test the ACI functionality.
                Place suite-specific test information here.
                #@TestSuiteName             ACI Setup Tests
                #@TestSuitePurpose          Configure OpenDS to test ACI functionality.
                #@TestSuiteGroup            ACI Setup Tests
                #@TestScript                aci_setup.xml
          -->
           <!--- Test Case : Add Entries for ACI Tests -->
           <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Setup Tests
                #@TestName                  ACI Startup Test
                #@TestIssue                 none
                #@TestPurpose               Add entries that are needed for the ACI tests.
                #@TestPreamble              none
                #@TestStep                  Add entries with ldapmodify.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0 for all operations
            -->
            <testcase name="'ACI: ACI Setup: Add Initial Entries'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: ACI Setup: Adding Initial Entries'
                </message>
                <call function="'addEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeAdded'   : '%s/aci/aci_startup.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: ACI Setup: Enabling ACI'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/aci_handler.ldif' % STAGED_DATA_DIR }
                </call>
                <call function="'checktestRC'">
                    { 'returncode' : RC ,
                      'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <call function="'testSuite_Postamble'"/>
          </sequence>
        </testcase>
        <call function="'testSuite_Postamble'"/>
        </block>
            
     </sequence>
opends/tests/functional-tests/testcases/aci/aci_target.xml
@@ -32,1403 +32,1411 @@
  <function name="aci_target">
    <sequence>
      <block name="'aci-target'">
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <!---
                Place suite-specific test information here.
                #@TestSuiteName             ACI Target Tests
                #@TestSuitePurpose          Test the basic ACI Target Support. (targetattr="*" and allow(read))
                #@TestSuiteGroup            Basic ACI Target Tests
                #@TestScript                aci_target.xml
          -->
          <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Preamble
                #@TestIssue                 434
                #@TestPurpose               Test default aci settings
                #@TestPreamble              none
                #@TestStep                  Client searches entry with a branch dn.
                #@TestStep                  Client searches entry with another branch dn.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            and no entries are returned
                                            for all operations.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Preamble'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Preamble - existing branch, user searching entry that will be targeted in future tests'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Preamble - existing branch, user searching entry that will be non-targeted in future tests'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target equals dn
                #@TestIssue                 434
                #@TestPurpose               Test with the target set equal to a dn
                #@TestPreamble              Admin adds an aci with the target equal to the dn of one existing branch.
                #@TestStep                  Client searches entry with the targeted branch dn.
                #@TestStep                  Client searches entry that is not with the targeted branch dn.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry with the previously targeted branch dn.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Target Equals DN'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci1.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
          <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target equals dn - new branch
                #@TestIssue                 434
                #@TestPurpose               Test with the target set equal to a dn - new branch
                #@TestPreamble              Admin adds entries under two branches, one with an aci with the target equal to the dn of one branch.
                #@TestStep                  Client searches entry with the targeted branch dn.
                #@TestStep                  Client searches entry that is not with the targeted branch dn.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry with the previously targeted branch dn.
                #@TestPostamble             Admin removes branches.
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Target Equals DN - new branch'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN - new branch, preamble adding entries'
                </message>
                <call function="'addEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeAdded'   : '%s/aci/aci_target/add_entries1.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN - new branch, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN - new branch, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=new non-aci branch,o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=new non-aci branch,o=More Branches,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN - new branch, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/del_aci_from_entries.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN - new branch, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN - new branch, postamble admin deleting new entries'
                </message>
                <call function="'DeleteEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'dsBaseDN'         : 'o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                    'extraParams'      : '-x'}
                </call>
                <call function="'checktestRC'">
                    { 'returncode' : RC ,
                      'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
             <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target equals dn with trailing wildcard
                #@TestIssue                 434
                #@TestPurpose               Test with the target set equal to a dn with a trailing wildcard
                #@TestPreamble              Admin adds an aci with the target equal to the dn with a trailing wildcard.
                #@TestStep                  Client searches entry with the targeted branch dn.
                #@TestStep                  Client searches entry that is not with the targeted branch dn.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry with the previously targeted branch dn.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Target Equals DN With Trailing Wildcard'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN with trailing wildcard, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci3.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with trailing wildcard, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with trailing wildcard, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with trailing wildcard, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with trailing wildcard, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
             <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target equals dn with leading wildcard
                #@TestIssue                 434
                #@TestPurpose               Test with the target set equal to a dn with leading wildcard
                #@TestPreamble              Admin adds an aci with the target equal to the dn with a leading wildcard.
                #@TestStep                  Client searches entry with the targeted branch dn.
                #@TestStep                  Client searches entry that is not with the targeted branch dn.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry with the previously targeted branch dn.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Target Equals DN With Leading Wildcard'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN with leading wildcard, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci4.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with leading wildcard, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with leading wildcard, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with leading wildcard, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with leading wildcard, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
             <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target equals dn with internal wildcard
                #@TestIssue                 434
                #@TestPurpose               Test with the target set equal to a dn with an internal wildcard
                #@TestPreamble              Admin adds an aci with the target equal to the dn with an internal wildcard.
                #@TestStep                  Client searches entry with the targeted branch dn.
                #@TestStep                  Client searches entry that is not with the targeted branch dn.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry with the previously targeted branch dn.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Target Equals DN With Internal Wildcard'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN with internal wildcard, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci5.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with internal wildcard, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with internal wildcard, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with internal wildcard, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with internal wildcard, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
             <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target equals dn with multiple wildcards
                #@TestIssue                 434
                #@TestPurpose               Test with the target set equal to a dn with multiple wildcards
                #@TestPreamble              Admin adds an aci with the target equal to the dn with multiple wildcards.
                #@TestStep                  Client searches entry with the targeted branch dn.
                #@TestStep                  Client searches entry that is not with the targeted branch dn.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry with the previously targeted branch dn.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Target: Target Equals DN With Multiple Wildcards'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN with multiple wildcards, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci6.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with multiple wildcards, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with multiple wildcards, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with multiple wildcards, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN with multiple wildcards, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
          <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target contains keyword self
                #@TestIssue                 434
                #@TestPurpose               Test if target can contain the keyword self
                #@TestPreamble              none
                #@TestStep                  Admin adds an aci that contains the keyword
                                            self to an existing entry
                #@TestStep                  Admin checks if aci was added.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 21,
                                            and the aci has not been added.
            -->
            <!-- cross reference to syntax.ksh Test Case 1 -->
            <testcase name="'ACI: Target: Target Equals DN With Keyword self'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN With Keyword self - add aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci8.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 21">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN With Keyword self - check aci'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'extraParams'      : '-s base' ,
                    'attributes'       : 'aci' }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'aci:' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target set to a dn above the entry
                #@TestIssue                 434
                #@TestPurpose               Test if the target can contain a DN above the
                                            level of the entry
                #@TestPreamble              none
                #@TestStep                  Client adds an aci to its entry
                                            that has a DN above the entry's level.
                #@TestStep                  Admin checks if aci was added.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 50,
                                            and the aci has not been added.
            -->
            <!-- cross reference to syntax.ksh Test Case 2 -->
            <testcase name="'ACI: Target: Target Equals DN Above Entry'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN Above Entry - add aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_target/add_aci9.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 50">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Target: Target Equals DN Above Entry - check aci'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'extraParams'      : '-s base' ,
                    'attributes'       : 'aci' }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'aci:' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Target Tests
                #@TestName                  Target set to a dn below the entry
                #@TestIssue                 434
                #@TestPurpose               Test if the target can contain a DN above the
                                            level of the entry
                #@TestPreamble              none
                #@TestStep                  Client adds an aci to its entry
                                            that has a DN below the entry's level.
                #@TestStep                  Admin checks if aci was added.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations, and
                                            and entry is returned only for step 1.
            -->
            <!-- cross reference to syntax.ksh Test Case 2 -->
            <testcase name="'ACI: Target: Target Equals DN Below Entry'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Target: Target Equals DN Below Entry - add aci'
                </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_target/add_aci9a.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Target Equals DN Below Entry, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Target Equals DN Below Entry, user searching non-targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Target Equals DN Below Entry, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Target Equals DN Below Entry, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'      : 'cn sn uid'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
        
      <script>
        CurrentTestPath['suite']='aci-target'
      </script>
      <call function="'testSuite_Preamble'"/>
      <!---
            Place suite-specific test information here.
            #@TestSuiteName             ACI Target Tests
            #@TestSuitePurpose          Test the basic ACI Target Support. (targetattr="*" and allow(read))
            #@TestSuiteGroup            Basic ACI Target Tests
            #@TestScript                aci_target.xml
      -->
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Preamble
            #@TestIssue                 434
            #@TestPurpose               Test default aci settings
            #@TestPreamble              none
            #@TestStep                  Client searches entry with a branch dn.
            #@TestStep                  Client searches entry with another branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        and no entries are returned
                                        for all operations.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Preamble'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Preamble - existing branch, user searching entry that will be targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Preamble - existing branch, user searching entry that will be non-targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Target Tests
              #@TestName                  Multiple targets
              #@TestIssue                 434
              #@TestPurpose               Test if an aci is allowed to contain multiple targets
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci to an existing entry
                                          that has multiple targets
              #@TestStep                  Admin checks if aci was added.
              #@TestStep                  Client searches entry with the targeted dn.
              #@TestStep                  Client searches entry with a non-targeted dn.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21,
                                          and the aci has not been added.
          -->
          <!-- cross reference to syntax.ksh Test Case 3 -->
          <testcase name="'ACI: Target: Multiple Targets'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Target: Multiple Targets - add aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_target/add_aci10.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Multiple Targets - check aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'extraParams'      : '-s base' ,
                  'attributes'       : 'aci' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'aci:' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Target Tests
              #@TestName                  Target with mispelled keyword target
              #@TestIssue                 434
              #@TestPurpose               Test if an aci is allowed that contains the keyword target misspelled
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci to an existing entry
                                          that has the keyword target misspelled
              #@TestStep                  Admin checks if aci was added.
              #@TestStep                  Client searches entry with the targeted dn.
              #@TestStep                  Client searches entry with a non-targeted dn.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21,
                                          and the aci has not been added.
          -->
          <!-- cross reference to syntax.ksh Test Case 13 -->
          <testcase name="'ACI: Target: Keyword Target Misspelled'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Target: Keyword Target Misspelled - add aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_target/add_aci11.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Keyword Target Misspelled - check aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'extraParams'      : '-s base' ,
                  'attributes'       : 'aci' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'aci:' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
        <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target equals dn
            #@TestIssue                 434
            #@TestPurpose               Test with the target set equal to a dn
            #@TestPreamble              Admin adds an aci with the target equal to the dn of one existing branch.
            #@TestStep                  Client searches entry with the targeted branch dn.
            #@TestStep                  Client searches entry that is not with the targeted branch dn.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Target Equals DN'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci1.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Target Tests
              #@TestName                  Postamble
              #@TestIssue                 434
              #@TestPurpose               Test default aci settings
              #@TestPreamble              none
              #@TestStep                  Client searches entry with a branch dn.
              #@TestStep                  Client searches entry with another branch dn.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          and no entries are returned
                                          for all operations.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Target: Postamble'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Target: Postamble - existing branch, user searching entry that was targeted in past tests'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Target: Postamble - existing branch, user searching entry that was non-targeted in past tests'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
            
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target equals dn - new branch
            #@TestIssue                 434
            #@TestPurpose               Test with the target set equal to a dn - new branch
            #@TestPreamble              Admin adds entries under two branches, one with an aci with the target equal to the dn of one branch.
            #@TestStep                  Client searches entry with the targeted branch dn.
            #@TestStep                  Client searches entry that is not with the targeted branch dn.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted branch dn.
            #@TestPostamble             Admin removes branches.
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Target Equals DN - new branch'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN - new branch, preamble adding entries'
            </message>
            <call function="'addEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeAdded'   : '%s/aci/aci_target/add_entries1.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN - new branch, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN - new branch, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=new non-aci branch,o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=new non-aci branch,o=More Branches,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN - new branch, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci_from_entries.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN - new branch, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=new aci branch,o=More Branches,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN - new branch, postamble admin deleting new entries'
            </message>
            <call function="'DeleteEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'o=More Branches,o=ACI Tests,dc=example,dc=com' ,
                'extraParams'      : '-x'}
            </call>
            <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
         <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target equals dn with trailing wildcard
            #@TestIssue                 434
            #@TestPurpose               Test with the target set equal to a dn with a trailing wildcard
            #@TestPreamble              Admin adds an aci with the target equal to the dn with a trailing wildcard.
            #@TestStep                  Client searches entry with the targeted branch dn.
            #@TestStep                  Client searches entry that is not with the targeted branch dn.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Target Equals DN With Trailing Wildcard'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN with trailing wildcard, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci3.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with trailing wildcard, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with trailing wildcard, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with trailing wildcard, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with trailing wildcard, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
         <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target equals dn with leading wildcard
            #@TestIssue                 434
            #@TestPurpose               Test with the target set equal to a dn with leading wildcard
            #@TestPreamble              Admin adds an aci with the target equal to the dn with a leading wildcard.
            #@TestStep                  Client searches entry with the targeted branch dn.
            #@TestStep                  Client searches entry that is not with the targeted branch dn.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Target Equals DN With Leading Wildcard'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN with leading wildcard, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci4.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with leading wildcard, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with leading wildcard, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with leading wildcard, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with leading wildcard, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
         <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target equals dn with internal wildcard
            #@TestIssue                 434
            #@TestPurpose               Test with the target set equal to a dn with an internal wildcard
            #@TestPreamble              Admin adds an aci with the target equal to the dn with an internal wildcard.
            #@TestStep                  Client searches entry with the targeted branch dn.
            #@TestStep                  Client searches entry that is not with the targeted branch dn.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Target Equals DN With Internal Wildcard'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN with internal wildcard, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci5.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with internal wildcard, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with internal wildcard, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with internal wildcard, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with internal wildcard, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
         <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target equals dn with multiple wildcards
            #@TestIssue                 434
            #@TestPurpose               Test with the target set equal to a dn with multiple wildcards
            #@TestPreamble              Admin adds an aci with the target equal to the dn with multiple wildcards.
            #@TestStep                  Client searches entry with the targeted branch dn.
            #@TestStep                  Client searches entry that is not with the targeted branch dn.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Target Equals DN With Multiple Wildcards'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN with multiple wildcards, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci6.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with multiple wildcards, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with multiple wildcards, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with multiple wildcards, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN with multiple wildcards, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target contains keyword self
            #@TestIssue                 434
            #@TestPurpose               Test if target can contain the keyword self
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci that contains the keyword
                                        self to an existing entry
            #@TestStep                  Admin checks if aci was added.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21,
                                        and the aci has not been added.
        -->
        <!-- cross reference to syntax.ksh Test Case 1 -->
        <testcase name="'ACI: Target: Target Equals DN With Keyword self'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN With Keyword self - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci8.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN With Keyword self - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target set to a dn above the entry
            #@TestIssue                 434
            #@TestPurpose               Test if the target can contain a DN above the
                                        level of the entry
            #@TestPreamble              none
            #@TestStep                  Client adds an aci to its entry
                                        that has a DN above the entry's level.
            #@TestStep                  Admin checks if aci was added.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 50,
                                        and the aci has not been added.
        -->
        <!-- cross reference to syntax.ksh Test Case 2 -->
        <testcase name="'ACI: Target: Target Equals DN Above Entry'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN Above Entry - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci9.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 50">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN Above Entry - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target set to a dn below the entry
            #@TestIssue                 434
            #@TestPurpose               Test if the target can contain a DN above the
                                        level of the entry
            #@TestPreamble              none
            #@TestStep                  Client adds an aci to its entry
                                        that has a DN below the entry's level.
            #@TestStep                  Admin checks if aci was added.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations, and
                                        and entry is returned only for step 1.
        -->
        <!-- cross reference to syntax.ksh Test Case 2 -->
        <testcase name="'ACI: Target: Target Equals DN Below Entry'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Target Equals DN Below Entry - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci9a.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN Below Entry, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN Below Entry, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN Below Entry, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Target Equals DN Below Entry, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Multiple targets
            #@TestIssue                 434
            #@TestPurpose               Test if an aci is allowed to contain multiple targets
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci to an existing entry
                                        that has multiple targets
            #@TestStep                  Admin checks if aci was added.
            #@TestStep                  Client searches entry with the targeted dn.
            #@TestStep                  Client searches entry with a non-targeted dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21,
                                        and the aci has not been added.
        -->
        <!-- cross reference to syntax.ksh Test Case 3 -->
        <testcase name="'ACI: Target: Multiple Targets'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Multiple Targets - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci10.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Multiple Targets - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Target with mispelled keyword target
            #@TestIssue                 434
            #@TestPurpose               Test if an aci is allowed that contains the keyword target misspelled
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci to an existing entry
                                        that has the keyword target misspelled
            #@TestStep                  Admin checks if aci was added.
            #@TestStep                  Client searches entry with the targeted dn.
            #@TestStep                  Client searches entry with a non-targeted dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21,
                                        and the aci has not been added.
        -->
        <!-- cross reference to syntax.ksh Test Case 13 -->
        <testcase name="'ACI: Target: Keyword Target Misspelled'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Keyword Target Misspelled - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/add_aci11.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Keyword Target Misspelled - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Target Tests
            #@TestName                  Postamble
            #@TestIssue                 434
            #@TestPurpose               Test default aci settings
            #@TestPreamble              none
            #@TestStep                  Client searches entry with a branch dn.
            #@TestStep                  Client searches entry with another branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        and no entries are returned
                                        for all operations.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Target: Postamble'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Target: Postamble - existing branch, user searching entry that was targeted in past tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Target: Postamble - existing branch, user searching entry that was non-targeted in past tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <call function="'testSuite_Postamble'"/>
       </sequence>
        </sequence>
      </block>
    </sequence>
      
  </function>
opends/tests/functional-tests/testcases/aci/aci_targetattr.xml
@@ -30,746 +30,757 @@
  <defaultcall function="aci_targetattr"/>
  <function name="aci_targetattr">
      <!---
            Place suite-specific test information here.
            #@TestSuiteName             ACI Targetattr Tests
            #@TestSuitePurpose          Test the basic ACI Targetattr Support. (allow(read))
            #@TestSuiteGroup            Basic ACI Targetattr Tests allow(read)
            #@TestScript                aci_targetattr.xml
      -->
      <sequence>
    <sequence>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Preamble
            #@TestIssue                 435
            #@TestPurpose               Test default aci settings
            #@TestPreamble              none
            #@TestStep                  Client searches entry for an attribute in a branch dn.
            #@TestStep                  Client searches entry for an attribute in another branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        and no entries are returned
                                        for all operations.
        -->
        <testcase name="'ACI: Targetattr: Preamble'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Preamble - existing branch, user searching entry that will be targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Preamble - existing branch, user searching entry that will be non-targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Targetattr equals one attribute
            #@TestIssue                 435
            #@TestPurpose               Test with the targetattr set equal to a specific attribute
            #@TestPreamble              Admin adds an aci to one branch with the targetattr equal to a specific attribute.
            #@TestStep                  Client searches entry with the targeted dn for the targetattr.
            #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the specified attribute.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetattr: Targetattr Equals One Attribute'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Targetattr Equals One Attribute, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci1.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals One Attribute, user searching targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals One Attribute, user searching non-targeted entry but with targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals One Attribute, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals One Attribute, user searching previously targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Targetattr not equals one attribute
            #@TestIssue                 435
            #@TestPurpose               Test with the targetattr set to not equal (!=) a specific attribute
            #@TestPreamble              Admin adds an aci to one branch with the targetattr not equal to a specific attribute.
            #@TestStep                  Client searches entry with the targeted dn for the targetattr.
            #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        with all the attributes except the specified attribute.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetattr: Targetattr Not Equals One Attribute'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Targetattr Not Equals One Attribute, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci2.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals One Attribute, user searching targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'telephonenumber=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals One Attribute, user searching non-targeted entry but with targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'telephonenumber=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals One Attribute, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals One Attribute, user searching previously targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'telephonenumber=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <block name="'aci-targetattr'">
      
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Targetattr equals three attributes
            #@TestIssue                 435
            #@TestPurpose               Test with the targetattr set equal to three specific attributes
            #@TestPreamble              Admin adds an aci with the targetattr equal to three specific attributes in one branch.
            #@TestStep                  Client searches entry with the targeted dn for the targetattrs.
            #@TestStep                  Client searches entry that does not have the targeted dn for the targetattrs.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the three specified attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetattr: Targetattr Equals Three Attributes'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Targetattr Equals Three Attributes, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci3.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals Three Attributes, user searching targeted entry and targeted attributes'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <!---
              Place suite-specific test information here.
              #@TestSuiteName             ACI Targetattr Tests
              #@TestSuitePurpose          Test the basic ACI Targetattr Support. (allow(read))
              #@TestSuiteGroup            Basic ACI Targetattr Tests allow(read)
              #@TestScript                aci_targetattr.xml
          -->
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Preamble
              #@TestIssue                 435
              #@TestPurpose               Test default aci settings
              #@TestPreamble              none
              #@TestStep                  Client searches entry for an attribute in a branch dn.
              #@TestStep                  Client searches entry for an attribute in another branch dn.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          and no entries are returned
                                          for all operations.
          -->
          <testcase name="'ACI: Targetattr: Preamble'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Preamble - existing branch, user searching entry that will be targeted in future tests'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Preamble - existing branch, user searching entry that will be non-targeted in future tests'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Targetattr equals one attribute
              #@TestIssue                 435
              #@TestPurpose               Test with the targetattr set equal to a specific attribute
              #@TestPreamble              Admin adds an aci to one branch with the targetattr equal to a specific attribute.
              #@TestStep                  Client searches entry with the targeted dn for the targetattr.
              #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          and only with the specified attribute.
          -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetattr: Targetattr Equals One Attribute'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Targetattr Equals One Attribute, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci1.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals One Attribute, user searching targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals One Attribute, user searching non-targeted entry but with targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals One Attribute, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals One Attribute, user searching previously targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Targetattr not equals one attribute
              #@TestIssue                 435
              #@TestPurpose               Test with the targetattr set to not equal (!=) a specific attribute
              #@TestPreamble              Admin adds an aci to one branch with the targetattr not equal to a specific attribute.
              #@TestStep                  Client searches entry with the targeted dn for the targetattr.
              #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          with all the attributes except the specified attribute.
          -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetattr: Targetattr Not Equals One Attribute'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals One Attribute, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci2.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals One Attribute, user searching targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'telephonenumber=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals One Attribute, user searching non-targeted entry but with targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'telephonenumber=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals One Attribute, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals One Attribute, user searching previously targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'telephonenumber=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Targetattr equals three attributes
              #@TestIssue                 435
              #@TestPurpose               Test with the targetattr set equal to three specific attributes
              #@TestPreamble              Admin adds an aci with the targetattr equal to three specific attributes in one branch.
              #@TestStep                  Client searches entry with the targeted dn for the targetattrs.
              #@TestStep                  Client searches entry that does not have the targeted dn for the targetattrs.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          and only with the three specified attributes.
          -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetattr: Targetattr Equals Three Attributes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Targetattr Equals Three Attributes, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci3.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals Three Attributes, user searching targeted entry and targeted attributes'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'sn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'uid:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals Three Attributes, user searching non-targeted entry but with targeted attributes'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals Three Attributes, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Equals Three Attributes, user searching previously targeted entry and targeted attributes'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
            
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
          </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Targetattr not equals three attributes
              #@TestIssue                 435
              #@TestPurpose               Test with the targetattr set to not equal (!=) to three specific attributes
              #@TestPreamble              Admin adds an aci with the targetattr not equal (!=) to three specific attributes in one branch.
              #@TestStep                  Client searches entry with the targeted dn for the targetattr.
              #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          with all the attributes except the specified attributes.
          -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetattr: Targetattr Not Equals Three Attributes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals Three Attributes, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci4.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals Three Attributes, user searching targeted entry and targeted attributes'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'telephonenumber=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'sn:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'uid:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals Three Attributes, user searching non-targeted entry but with targeted attributes'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'telephonenumber=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals Three Attributes, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr Not Equals Three Attributes, user searching previously targeted entry and targeted attributes'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'telephonenumber=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
            
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'sn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'uid:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals Three Attributes, user searching non-targeted entry but with targeted attributes'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals Three Attributes, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Equals Three Attributes, user searching previously targeted entry and targeted attributes'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
          </testcase>
      
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Targetattr not equals three attributes
            #@TestIssue                 435
            #@TestPurpose               Test with the targetattr set to not equal (!=) to three specific attributes
            #@TestPreamble              Admin adds an aci with the targetattr not equal (!=) to three specific attributes in one branch.
            #@TestStep                  Client searches entry with the targeted dn for the targetattr.
            #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        with all the attributes except the specified attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetattr: Targetattr Not Equals Three Attributes'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Targetattr Not Equals Three Attributes, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci4.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals Three Attributes, user searching targeted entry and targeted attributes'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'telephonenumber=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'sn:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'uid:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals Three Attributes, user searching non-targeted entry but with targeted attributes'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'telephonenumber=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals Three Attributes, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr Not Equals Three Attributes, user searching previously targeted entry and targeted attributes'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'telephonenumber=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
          <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
@@ -783,540 +794,545 @@
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0 for all ldap operations
                                        and no attributes are returned.
        -->
        <testcase name="'ACI: Targetattr: Bad Targetattr'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Bad Targetattr, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci5.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Bad Targetattr, user searching targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
          -->
          <testcase name="'ACI: Targetattr: Bad Targetattr'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Bad Targetattr, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci5.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Bad Targetattr, user searching targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Bad Targetattr, user searching non-targeted entry but with targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Bad Targetattr, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Bad Targetattr, user searching previously targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Multiple targetattrs
              #@TestIssue                 435
              #@TestPurpose               Test if an aci is allowed to contain multiple targetattrs
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci to an existing entry
                                          that has multiple targetattrs.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21
          -->
        <!-- cross reference to syntax.ksh Test Case 5 -->
          <testcase name="'ACI: Targetattr: Multiple Targets'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Multiple Targetattrs - add aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci6.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Multiple Targets - check aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'extraParams'      : '-s base' ,
                  'attributes'       : 'aci' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'aci:' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
         <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  targetattr mispelled
              #@TestIssue                 435
              #@TestPurpose               Test if an aci is allowed that has the keyword targetattr mispelled
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci to an existing entry
                                          that has multiple targetattrs.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21
          -->
          <testcase name="'ACI: Targetattr: Keyword Targetattr Mispelled'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Keyword Targetattr Mispelled - add aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci7.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Keyword Targetattr Mispelled - check aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'extraParams'      : '-s base' ,
                  'attributes'       : 'aci' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'aci:' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
         <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  targetattr with missing quotes
              #@TestIssue                 435
              #@TestPurpose               Test if an aci is allowed that has the keyword targetattr with missing quotes
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci to an existing entry
                                          that has a targetattr missing quotes.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21
          -->
          <testcase name="'ACI: Targetattr: Targetattr With Missing Quotes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Targetattr With Missing Quotes - add aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci8.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr With Missing Quotes - check aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'extraParams'      : '-s base' ,
                  'attributes'       : 'aci' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'aci:' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
        <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Targetattr With Spaces
              #@TestIssue                 435
              #@TestPurpose               Test with the targetattr that has spaces
              #@TestPreamble              Admin adds an aci to one branch with a targetattr with spaces.
              #@TestStep                  Client searches entry with the targeted dn for the targetattr.
              #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          and only with the specified attribute.
          -->
          <testcase name="'ACI: Targetattr: Targetattr With Spaces'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Targetattr With Spaces, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci9.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr With Spaces, user searching targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr With Spaces, user searching non-targeted entry but with targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr With Spaces, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Targetattr With Spaces, user searching previously targeted entry and targeted attribute'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber' }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Postamble
              #@TestIssue                 435
              #@TestPurpose               Test default aci settings
              #@TestPreamble              none
              #@TestStep                  Client searches entry for an attribute in a branch dn.
              #@TestStep                  Client searches entry for an attribute in another branch dn.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          and no entries are returned
                                          for all operations.
          -->
          <testcase name="'ACI: Targetattr: Postamble'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetattr: Postamble - existing branch, user searching entry that will be targeted in future tests'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetattr: Postamble - existing branch, user searching entry that will be non-targeted in future tests'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'cn=*'  ,
                  'attributes'       : 'cn sn uid telephonenumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
            
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
          </testcase>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Bad Targetattr, user searching non-targeted entry but with targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Bad Targetattr, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Bad Targetattr, user searching previously targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Multiple targetattrs
            #@TestIssue                 435
            #@TestPurpose               Test if an aci is allowed to contain multiple targetattrs
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci to an existing entry
                                        that has multiple targetattrs.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21
        -->
      <!-- cross reference to syntax.ksh Test Case 5 -->
        <testcase name="'ACI: Targetattr: Multiple Targets'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Multiple Targetattrs - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci6.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Multiple Targets - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        </sequence>
      
       <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  targetattr mispelled
            #@TestIssue                 435
            #@TestPurpose               Test if an aci is allowed that has the keyword targetattr mispelled
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci to an existing entry
                                        that has multiple targetattrs.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21
        -->
        <testcase name="'ACI: Targetattr: Keyword Targetattr Mispelled'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Keyword Targetattr Mispelled - add aci'
            </message>
      </block>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci7.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Keyword Targetattr Mispelled - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
       <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  targetattr with missing quotes
            #@TestIssue                 435
            #@TestPurpose               Test if an aci is allowed that has the keyword targetattr with missing quotes
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci to an existing entry
                                        that has a targetattr missing quotes.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21
        -->
        <testcase name="'ACI: Targetattr: Targetattr With Missing Quotes'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Targetattr With Missing Quotes - add aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci8.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr With Missing Quotes - check aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'extraParams'      : '-s base' ,
                'attributes'       : 'aci' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'aci:' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Targetattr With Spaces
            #@TestIssue                 435
            #@TestPurpose               Test with the targetattr that has spaces
            #@TestPreamble              Admin adds an aci to one branch with a targetattr with spaces.
            #@TestStep                  Client searches entry with the targeted dn for the targetattr.
            #@TestStep                  Client searches entry that does not have the targeted dn for the targetattr.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry with the previously targeted dn for the targetattr.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the specified attribute.
        -->
        <testcase name="'ACI: Targetattr: Targetattr With Spaces'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Targetattr With Spaces, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/add_aci9.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr With Spaces, user searching targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr With Spaces, user searching non-targeted entry but with targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr With Spaces, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetattr/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Targetattr With Spaces, user searching previously targeted entry and targeted attribute'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber' }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Postamble
            #@TestIssue                 435
            #@TestPurpose               Test default aci settings
            #@TestPreamble              none
            #@TestStep                  Client searches entry for an attribute in a branch dn.
            #@TestStep                  Client searches entry for an attribute in another branch dn.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        and no entries are returned
                                        for all operations.
        -->
        <testcase name="'ACI: Targetattr: Postamble'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetattr: Postamble - existing branch, user searching entry that will be targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetattr: Postamble - existing branch, user searching entry that will be non-targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'cn=*'  ,
                'attributes'       : 'cn sn uid telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=tmorris,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
      </sequence>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/aci/aci_targetfilter_syntax.xml
@@ -30,1801 +30,1811 @@
  <defaultcall function="aci_targetfilter_syntax"/>
  <function name="aci_targetfilter_syntax">
      <!---
            Place suite-specific test information here.
            #@TestSuiteName             ACI Targetfilter Tests - syntax
            #@TestSuitePurpose          Test the basic ACI Targetfilter Support. (allow(read))
            #@TestSuiteGroup            Basic ACI Targetfilter Tests allow(read)
            #@TestScript                aci_targetfilter.xml
      -->
      <sequence>
    <sequence>
      <block name="'aci-targetfilter-syntax'">
      
      <script>
        CurrentTestPath['suite']='aci_targetfilter_syntax'
      </script>
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <!---
                Place suite-specific test information here.
                #@TestSuiteName             ACI Targetfilter Tests - syntax
                #@TestSuitePurpose          Test the basic ACI Targetfilter Support. (allow(read))
                #@TestSuiteGroup            Basic ACI Targetfilter Tests allow(read)
                #@TestScript                aci_targetfilter.xml
          -->
      
      <call function="'testSuite_Preamble'"/>
      <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Preamble
            #@TestIssue                 436
            #@TestPurpose               Test default aci settings
            #@TestPreamble              none
            #@TestStep                  Client searches entry in a branch.
            #@TestStep                  Client searches entry in another branch.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        and no entries are returned
                                        for all operations.
        -->
        <testcase name="'ACI: Targetfilter: Preamble'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Preamble - user searching entry that will be targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Preamble - user searching entry that will be non-targeted in future tests'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with one statement
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with one statement
            #@TestPreamble              Admin adds an aci with the targetfilter containing one statement.
            #@TestStep                  Client searches entry which should be allowed with the targetfilter.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the appropriate attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals One Statement'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci1.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'roomnumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'    : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'      : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified' : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with one statement 2
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with one statement
            #@TestPreamble              Admin adds an aci with the targetfilter containing one statement.
            #@TestStep                  Client searches entry which should be allowed with the targetfilter.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        but with no attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals One Statement 2'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 2, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci1.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 2, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'roomnumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 2, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 2, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'    : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'      : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified' : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 2, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with one statement 3
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with one statement
            #@TestPreamble              Admin adds an aci with the targetfilter containing one statement.
            #@TestStep                  Client searches entry which should be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the appropriate attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals One Statement 3'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 3, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'    : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'      : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified' : '%s/aci/aci_targetfilter/add_aci1.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 3, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'roomnumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 3, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 3, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals One Statement 3, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  }
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter set to negative of one statement
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with (not equals) one statement
            #@TestPreamble              Admin adds an aci with the targetfilter containing a negative of one statement.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which should be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 2
                                        and only with the appropriate attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Not Equals One Statement'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Not Equals One Statement, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci2.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching non-targeted entry in ACI branch'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'roomnumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Not Equals One Statement, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching previously non-targeted entry in ACI branch'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with three statements with or, one statement true
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with three statements with or and one statement is true
            #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with or.
            #@TestStep                  Client searches entry which should be allowed with the targetfilter.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the appropriate attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci3.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'roomnumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with three statements with or, no statement true
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with three statements with or and no statement is true
            #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with or.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        No entries are returned in any steps.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci4.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with three statements with and, one statement true
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with three statements with and and one statement is true
            #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with and.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        No entries are returned in any steps.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci5.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with three statements with and, all statements true
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with three statements with and and all statements are true
            #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with and.
            #@TestStep                  Client searches entry which should be allowed with the targetfilter.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Client searches entry which is outside of the scope of the aci.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        Entry is returned only for step 1
                                        and only with the appropriate attributes.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci6.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'roomnumber:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'cn:' }
            </call>
            <if expr="returnCode != '1'">
                <tcstatus result="'fail'"/>
            </if>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'telephonenumber:' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching non-targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching non-targeted entry outside of the scope of the aci'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with extra spaces
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with extra spaces
            #@TestPreamble              Admin adds an aci with the targetfilter containing extra spaces.
            #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
            #@TestStep                  Remove aci.
            #@TestStep                  Client searches entry which was previously not allowed with the targetfilter.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        for all ldap operations.
                                        No entries are returned for any steps.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter With Extra Spaces'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter With Extra Spaces, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci7.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter With Extra Spaces, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter With Extra Spaces, admin deleting aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter With Extra Spaces, user searching previously targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with missing quotes
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with missing quotes
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci with the targetfilter with missing quotes.
            #@TestStep                  Client searches entry which should not be allowed.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21
                                        and the aci was not addded.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter With Missing Quotes'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter With Missing Quotes, preamble adding aci'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci8.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter With Missing Quotes, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
          <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Targetattr Tests
                #@TestName                  Preamble
                #@TestIssue                 436
                #@TestPurpose               Test default aci settings
                #@TestPreamble              none
                #@TestStep                  Client searches entry in a branch.
                #@TestStep                  Client searches entry in another branch.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            and no entries are returned
                                            for all operations.
            -->
            <testcase name="'ACI: Targetfilter: Preamble'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Targetfilter: Preamble - user searching entry that will be targeted in future tests'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber telephonenumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Preamble - user searching entry that will be non-targeted in future tests'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber telephonenumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
         <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Targetfilter Tests - syntax
                #@TestName                  Targetfilter with one statement
                #@TestIssue                 436
                #@TestPurpose               Test with a targetfilter with one statement
                #@TestPreamble              Admin adds an aci with the targetfilter containing one statement.
                #@TestStep                  Client searches entry which should be allowed with the targetfilter.
                #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
                #@TestStep                  Client searches entry which is outside of the scope of the aci.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations.
                                            Entry is returned only for step 1
                                            and only with the appropriate attributes.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Targetfilter: Targetfilter Equals One Statement'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci1.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'      : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'roomnumber:' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'cn:' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'telephonenumber:' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, user searching non-targeted entry outside of the scope of the aci'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified' : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
         <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Targetfilter Tests - syntax
                #@TestName                  Targetfilter with one statement 2
                #@TestIssue                 436
                #@TestPurpose               Test with a targetfilter with one statement
                #@TestPreamble              Admin adds an aci with the targetfilter containing one statement.
                #@TestStep                  Client searches entry which should be allowed with the targetfilter.
                #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
                #@TestStep                  Client searches entry which is outside of the scope of the aci.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations.
                                            Entry is returned only for step 1
                                            but with no attributes.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Targetfilter: Targetfilter Equals One Statement 2'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 2, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci1.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 2, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'roomnumber:' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'cn:' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'telephonenumber:' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement, user searching non-targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 2, user searching non-targeted entry outside of the scope of the aci'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 2, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified' : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 2, user searching previously targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  ,
                    'attributes'       : 'cn sn uid roomnumber'}
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'checktestStringNotPresent'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
         <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Targetfilter Tests - syntax
                #@TestName                  Targetfilter with one statement 3
                #@TestIssue                 436
                #@TestPurpose               Test with a targetfilter with one statement
                #@TestPreamble              Admin adds an aci with the targetfilter containing one statement.
                #@TestStep                  Client searches entry which should be allowed with the targetfilter.
                #@TestStep                  Client searches entry which is outside of the scope of the aci.
                #@TestStep                  Remove aci.
                #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0
                                            for all ldap operations.
                                            Entry is returned only for step 1
                                            and only with the appropriate attributes.
            -->
          <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
          <!-- cross reference to DS6 docs -->
            <testcase name="'ACI: Targetfilter: Targetfilter Equals One Statement 3'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 3, preamble adding aci'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified' : '%s/aci/aci_targetfilter/add_aci1.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 3, user searching targeted entry'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'roomnumber:' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'cn:' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'telephonenumber:' }
                </call>
                <if expr="returnCode != '1'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 3, user searching non-targeted entry outside of the scope of the aci'
                </message>
                <call function="'SearchObject'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                    'dsInstancePswd'   : 'ACIRules' ,
                    'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                    'dsFilter'         : 'objectclass=*'  }
                </call>
                <script>
                 returnString = STAXResult[0][1]
                </script>
                <call function="'searchStringForSubstring'">
                    { 'returnString'       : returnString ,
                      'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
                </call>
                <if expr="returnCode != '0'">
                    <tcstatus result="'fail'"/>
                </if>
                <message>
                   'ACI: Targetfilter: Targetfilter Equals One Statement 3, admin deleting aci'
                </message>
                <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals One Statement 3, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  }
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter set to negative of one statement
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with (not equals) one statement
              #@TestPreamble              Admin adds an aci with the targetfilter containing a negative of one statement.
              #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
              #@TestStep                  Client searches entry which should be allowed with the targetfilter.
              #@TestStep                  Client searches entry which is outside of the scope of the aci.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 2
                                          and only with the appropriate attributes.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter Not Equals One Statement'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter Not Equals One Statement, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci2.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching non-targeted entry in ACI branch'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'roomnumber:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching non-targeted entry outside of the scope of the aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Not Equals One Statement, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Not Equals One Statement, user searching previously non-targeted entry in ACI branch'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with three statements with or, one statement true
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with three statements with or and one statement is true
              #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with or.
              #@TestStep                  Client searches entry which should be allowed with the targetfilter.
              #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
              #@TestStep                  Client searches entry which is outside of the scope of the aci.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          and only with the appropriate attributes.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci3.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'roomnumber:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching non-targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching non-targeted entry outside of the scope of the aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, one true, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with three statements with or, no statement true
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with three statements with or and no statement is true
              #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with or.
              #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
              #@TestStep                  Client searches entry which is outside of the scope of the aci.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          No entries are returned in any steps.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci4.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'      : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, user searching non-targeted entry outside of the scope of the aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With or, none true, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'      : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with three statements with and, one statement true
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with three statements with and and one statement is true
              #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with and.
              #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
              #@TestStep                  Client searches entry which is outside of the scope of the aci.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          No entries are returned in any steps.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci5.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, user searching non-targeted entry outside of the scope of the aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, one true, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with three statements with and, all statements true
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with three statements with and and all statements are true
              #@TestPreamble              Admin adds an aci with the targetfilter containing three statements with and.
              #@TestStep                  Client searches entry which should be allowed with the targetfilter.
              #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
              #@TestStep                  Client searches entry which is outside of the scope of the aci.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry which was previously allowed with the targetfilter.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          Entry is returned only for step 1
                                          and only with the appropriate attributes.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci6.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'roomnumber:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'cn:' }
              </call>
              <if expr="returnCode != '1'">
                  <tcstatus result="'fail'"/>
              </if>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'telephonenumber:' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching non-targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=scarter,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=scarter,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching non-targeted entry outside of the scope of the aci'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter Equals Three Statements With and, all true, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with extra spaces
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with extra spaces
              #@TestPreamble              Admin adds an aci with the targetfilter containing extra spaces.
              #@TestStep                  Client searches entry which should not be allowed with the targetfilter.
              #@TestStep                  Remove aci.
              #@TestStep                  Client searches entry which was previously not allowed with the targetfilter.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          for all ldap operations.
                                          No entries are returned for any steps.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter With Extra Spaces'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter With Extra Spaces, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_targetfilter/add_aci7.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter With Extra Spaces, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter With Extra Spaces, admin deleting aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'        : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'        : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'          : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'        : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'     : '%s/aci/aci_target/del_aci.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 0">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter With Extra Spaces, user searching previously targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with missing quotes
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with missing quotes
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci with the targetfilter with missing quotes.
              #@TestStep                  Client searches entry which should not be allowed.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21
                                          and the aci was not addded.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter With Missing Quotes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter With Missing Quotes, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci8.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter With Missing Quotes, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'      : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
       <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetfilter Tests - syntax
              #@TestName                  Targetfilter with misplaced quotes
              #@TestIssue                 436
              #@TestPurpose               Test with a targetfilter with misplaced quotes
              #@TestPreamble              none
              #@TestStep                  Admin adds an aci with the targetfilter with misplaced quotes.
              #@TestStep                  Client searches entry which should not be allowed.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 21
                                          and the aci was not addded.
          -->
        <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
        <!-- cross reference to DS6 docs -->
          <testcase name="'ACI: Targetfilter: Targetfilter With Missing Quotes 2'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Targetfilter With Missing Quotes 2, preamble adding aci'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci9.ldif' % STAGED_DATA_DIR }
              </call>
              <if expr="RC != 21">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Targetfilter With Missing Quotes 2, user searching targeted entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'      : 'cn sn uid roomnumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
                <!---
              Place test-specific test information here.
              The tag, TestMarker, must be the same as the tag, TestSuiteName.
              #@TestMarker                ACI Targetattr Tests
              #@TestName                  Postamble
              #@TestIssue                 436
              #@TestPurpose               Test default aci settings
              #@TestPreamble              none
              #@TestStep                  Client searches entry in one branch.
              #@TestStep                  Client searches entry in another branch.
              #@TestPostamble             none
              #@TestResult                Success if OpenDS returns 0
                                          and no entries are returned
                                          for all operations.
          -->
          <testcase name="'ACI: Targetfilter: Postamble'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'ACI: Targetfilter: Postamble - user searching entry that was targeted'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber telephonenumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'searchStringForSubstring'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
              </call>
              <if expr="returnCode != '0'">
                  <tcstatus result="'fail'"/>
              </if>
              <message>
                 'ACI: Targetfilter: Postamble - user searching entry that was non-targeted'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                  'dsInstancePswd'   : 'ACIRules' ,
                  'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*'  ,
                  'attributes'       : 'cn sn uid roomnumber telephonenumber'}
              </call>
              <script>
               returnString = STAXResult[0][1]
              </script>
              <call function="'checktestStringNotPresent'">
                  { 'returnString'       : returnString ,
                    'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
 
     <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetfilter Tests - syntax
            #@TestName                  Targetfilter with misplaced quotes
            #@TestIssue                 436
            #@TestPurpose               Test with a targetfilter with misplaced quotes
            #@TestPreamble              none
            #@TestStep                  Admin adds an aci with the targetfilter with misplaced quotes.
            #@TestStep                  Client searches entry which should not be allowed.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 21
                                        and the aci was not addded.
        -->
      <!-- cross reference to http://docs.sun.com/source/816-6698-10/aci.html -->
      <!-- cross reference to DS6 docs -->
        <testcase name="'ACI: Targetfilter: Targetfilter With Missing Quotes 2'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Targetfilter With Missing Quotes 2, preamble adding aci'
            </message>
        </sequence>
      </block>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_targetfilter/add_aci9.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 21">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Targetfilter With Missing Quotes 2, user searching targeted entry'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'      : 'cn sn uid roomnumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
              <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Targetattr Tests
            #@TestName                  Postamble
            #@TestIssue                 436
            #@TestPurpose               Test default aci settings
            #@TestPreamble              none
            #@TestStep                  Client searches entry in one branch.
            #@TestStep                  Client searches entry in another branch.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0
                                        and no entries are returned
                                        for all operations.
        -->
        <testcase name="'ACI: Targetfilter: Postamble'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: Targetfilter: Postamble - user searching entry that was targeted'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'searchStringForSubstring'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=aci branch,o=ACI Tests' }
            </call>
            <if expr="returnCode != '0'">
                <tcstatus result="'fail'"/>
            </if>
            <message>
               'ACI: Targetfilter: Postamble - user searching entry that was non-targeted'
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'ACIRules' ,
                'dsBaseDN'         : 'uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests,dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'attributes'       : 'cn sn uid roomnumber telephonenumber'}
            </call>
            <script>
             returnString = STAXResult[0][1]
            </script>
            <call function="'checktestStringNotPresent'">
                { 'returnString'       : returnString ,
                  'testString'         : 'dn: uid=dmiller,ou=People,ou=non-aci branch,o=ACI Tests' }
            </call>
            <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <call function="'testSuite_Postamble'"/>
      </sequence>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/aci/aci_teardown.xml
@@ -32,84 +32,92 @@
  <function name="aci_teardown">
    <sequence>
      <script>
        CurrentTestPath['suite']='aci-teardown'
      </script>
      <block name="'teardown'">
      
      <call function="'testSuite_Preamble'"/>
      <!---
            Place group-specific test information here.
            #@TestGroupName             ACI
            #@TestGroupPurpose          To test the ACI functionality.
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <!---
                Place group-specific test information here.
                #@TestGroupName             ACI
                #@TestGroupPurpose          To test the ACI functionality.
                Place suite-specific test information here.
                #@TestSuiteName             ACI Teardown Tests
                #@TestSuitePurpose          Unconfigure OpenDS after testing ACI functionality.
                #@TestSuiteGroup            ACI Teardown Tests
                #@TestScript                aci_teardown.xml
          -->
           <!--- Test Case : Remove Entries for ACI Tests -->
           <!---
                Place test-specific test information here.
                The tag, TestMarker, must be the same as the tag, TestSuiteName.
                #@TestMarker                ACI Teardown Tests
                #@TestName                  ACI Teardown Test
                #@TestIssue                 none
                #@TestPurpose               Remove entries that were needed for the ACI tests.
                #@TestPreamble              none
                #@TestStep                  Disable ACI with ldapmodify.
                #@TestStep                  Remove entries.
                #@TestPostamble             none
                #@TestResult                Success if OpenDS returns 0 for all operations
            -->
            <testcase name="'ACI: ACI Teardown: Remove Initial Entries'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                   'ACI: ACI Teardown: Disabling ACI'
                </message>
                <call function="'modifyEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'entryToBeModified'   : '%s/aci/aci_disable.ldif' % STAGED_DATA_DIR }
                </call>
                <if expr="RC != 0">
                    <tcstatus result="'fail'"/>
                </if>
                 <message>
                   'ACI: ACI Teardown: Removing Initial Entries'
                </message>
                <call function="'DeleteEntry'">
                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                    'dsBaseDN'         : 'o=ACI Tests,dc=example,dc=com' ,
                    'extraParams'      : '-x'}
                </call>
                <call function="'checktestRC'">
                    { 'returncode' : RC ,
                      'result'     : STAXResult }
                </call>
               <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <call function="'testSuite_Postamble'"/>
            
            Place suite-specific test information here.
            #@TestSuiteName             ACI Teardown Tests
            #@TestSuitePurpose          Unconfigure OpenDS after testing ACI functionality.
            #@TestSuiteGroup            ACI Teardown Tests
            #@TestScript                aci_teardown.xml
      -->
       <!--- Test Case : Remove Entries for ACI Tests -->
       <!---
            Place test-specific test information here.
            The tag, TestMarker, must be the same as the tag, TestSuiteName.
            #@TestMarker                ACI Teardown Tests
            #@TestName                  ACI Teardown Test
            #@TestIssue                 none
            #@TestPurpose               Remove entries that were needed for the ACI tests.
            #@TestPreamble              none
            #@TestStep                  Disable ACI with ldapmodify.
            #@TestStep                  Remove entries.
            #@TestPostamble             none
            #@TestResult                Success if OpenDS returns 0 for all operations
        -->
        <testcase name="'ACI: ACI Teardown: Remove Initial Entries'">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'ACI: ACI Teardown: Disabling ACI'
            </message>
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/aci/aci_disable.ldif' % STAGED_DATA_DIR }
            </call>
            <if expr="RC != 0">
                <tcstatus result="'fail'"/>
            </if>
             <message>
               'ACI: ACI Teardown: Removing Initial Entries'
            </message>
            <call function="'DeleteEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'dsBaseDN'         : 'o=ACI Tests,dc=example,dc=com' ,
                'extraParams'      : '-x'}
            </call>
            <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
            </call>
           <call function="'testCase_Postamble'"/>
          </sequence>
        </testcase>
        <call function="'testSuite_Postamble'"/>
     </sequence>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/backends.xml
@@ -31,56 +31,64 @@
  <function name="main_backends">
      <sequence>
    <sequence>
        <script>
          CurrentTestPath['group']='backends'
        </script>
      <block name="'backends'">
      
        <call function="'testGroup_Preamble'"/>
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/import.xml' % (TESTS_DIR)"/>
        <call function="'main_import'" />
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/import-tasks.xml' % (TESTS_DIR)"/>
        <call function="'main_import-tasks'" />
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/backendsetup.xml' % (TESTS_DIR)"/>
        <call function="'main_backend-setup'" />
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/backup-tasks.xml' % (TESTS_DIR)"/>
        <call function="'main_backup-tasks'" />
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/backup.xml' % (TESTS_DIR)"/>
        <call function="'main_backup'" />
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/restore-tasks.xml' % (TESTS_DIR)"/>
        <call function="'main_restore-tasks'" />
        <sequence>
          <script>
            CurrentTestPath['group']='backends'
          </script>
      
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/restore.xml' % (TESTS_DIR)"/>
        <call function="'main_restore'" />
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/export-tasks.xml' % (TESTS_DIR)"/>
        <call function="'main_export-tasks'" />
          <call function="'testGroup_Preamble'"/>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/import.xml' % (TESTS_DIR)"/>
          <call function="'main_import'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/import-tasks.xml' % (TESTS_DIR)"/>
          <call function="'main_import-tasks'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/backendsetup.xml' % (TESTS_DIR)"/>
          <call function="'main_backend-setup'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/backup-tasks.xml' % (TESTS_DIR)"/>
          <call function="'main_backup-tasks'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/backup.xml' % (TESTS_DIR)"/>
          <call function="'main_backup'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/restore-tasks.xml' % (TESTS_DIR)"/>
          <call function="'main_restore-tasks'" />
        
        <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
          file="'%s/testcases/backends/export.xml' % (TESTS_DIR)"/>
        <call function="'main_export'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/restore.xml' % (TESTS_DIR)"/>
          <call function="'main_restore'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/export-tasks.xml' % (TESTS_DIR)"/>
          <call function="'main_export-tasks'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/backends/export.xml' % (TESTS_DIR)"/>
          <call function="'main_export'" />
          <!-- Set the server backup the way it was before the backend tests -->
          <call function="'main_quickstart'" />
          <call function="'testGroup_Postamble'"/>
        
        <!-- Set the server backup the way it was before the backend tests -->
        <call function="'main_quickstart'" />
        <call function="'testGroup_Postamble'"/>
      </sequence>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/backendsetup.xml
@@ -34,60 +34,68 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='setup'
      </script>
      <call function="'testSuite_Preamble'"/>
      <!--- Test Suite information
      #@TestSuiteName       Backend Setup
      #@TestSuitePurpose    Verify that the basic import functionality is working in the Directory Server.
      #@TestSuiteID         Import Tests
      #@TestSuiteGroup      Import
      #@TestGroup           Backend
      #@TestScript          import.xml
      #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
      #@TestMarker          Backend Export, Backup, and Restore Tests
      #@TestName            Import: LDIF Default
      #@TestID              LDIF Default
      #@TestPurpose         Add entries that are required for these Backend Tests.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -l data/backends/backend_start.ldif -n "userRoot"
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Backend Setup'">
      <block name="'setup'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          
          <message>
            'Backend: Backend Setup for Export, Backup, and Restore Tests'
          </message>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/backend_start.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'testSuite_Preamble'"/>
          <!--- Test Suite information
          #@TestSuiteName       Backend Setup
          #@TestSuitePurpose    Verify that the basic import functionality is working in the Directory Server.
          #@TestSuiteID         Import Tests
          #@TestSuiteGroup      Import
          #@TestGroup           Backend
          #@TestScript          import.xml
          #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
          #@TestMarker          Backend Export, Backup, and Restore Tests
          #@TestName            Import: LDIF Default
          #@TestID              LDIF Default
          #@TestPurpose         Add entries that are required for these Backend Tests.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -l data/backends/backend_start.ldif -n "userRoot"
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Backend Setup'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                'Backend: Backend Setup for Export, Backup, and Restore Tests'
              </message>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/backend_start.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          
          <call function="'testCase_Postamble'"/>
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </testcase>
      <call function="'testSuite_Postamble'"/>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/backup-tasks.xml
@@ -34,67 +34,75 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='backup-tasks'
      </script>
      <call function="'testSuite_Preamble'"/>
        <!--- Start DS -->
      <block name="'backup-tasks'">
        <sequence>
          <message>
             'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
          </message>
  
          <call function="'StartDsWithScript'">
           { 'location'  : STAF_REMOTE_HOSTNAME }
          </call>
          <call function="'checkRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
        </sequence>
            <!--- Check that DS started -->
            <call function="'isAlive'">
              { 'noOfLoops'        : 5 ,
                'noOfMilliSeconds' : 2000 }
            </call>
              <testcase name="'Backend: Backup Tasks 1'">
              <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
            <!--- Start DS -->
            <sequence>
              <message>
                 'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
              </message>
      
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend ExportTasks1: Backup the data in OpenDS by scheduling a task'
                </message>
                <call function="'backupTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : '3',
                    'backupDir'       : '%s/backends/' % STAGED_DATA_DIR
                  }
                </call>
                <call function="'checktestRC'">
              <call function="'StartDsWithScript'">
               { 'location'  : STAF_REMOTE_HOSTNAME }
              </call>
              <call function="'checkRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
            </sequence>
                <!--- Check that DS started -->
                <call function="'isAlive'">
                  { 'noOfLoops'        : 5 ,
                    'noOfMilliSeconds' : 2000 }
                </call>
                <call function="'testCase_Postamble'"/>
                  <testcase name="'Backend: Backup Tasks 1'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend ExportTasks1: Backup the data in OpenDS by scheduling a task'
                    </message>
                    <call function="'backupTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : '3',
                        'backupDir'       : '%s/backends/' % STAGED_DATA_DIR
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <call function="'testSuite_Postamble'"/>
      
              </sequence>
            </testcase>
      <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/backup.xml
@@ -34,213 +34,221 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='backup'
      </script>
      <block name="'backup'">
      
      <call function="'testSuite_Preamble'"/>
      <!--- Test Suite information
        #@TestSuiteName       Backend Backup Tests
        #@TestSuitePurpose    Verify that the basic backup functionality is working in the Directory Server.
        #@TestSuiteID         Backup Tests
        #@TestSuiteGroup      Backup
        #@TestGroup           Backend
        #@TestScript          backup.xml
        #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
        #@TestMarker          Backend Backup Tests
        #@TestName            Export: Backup 1
        #@TestID              Backup1
        #@TestPurpose         Backup the data in OpenDS.
        #@TestPreamble
        #@TestSteps           Client calls backup with the parameters
                              default backendID, and backupDirectory
        #@TestPostamble
        #@TestResult Success if backup returns 0
      -->
             <testcase name="'Backend: Backup 1'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Backup1: Create a backup of the data in OpenDS'
                </message>
                <call function="'backup'">
                  {
                    'backupDir'       : '%s/backends/backup1' % STAGED_DATA_DIR
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Backup Tests
        #@TestName            Export: Backup 2
        #@TestID              Backup2
        #@TestPurpose         Create an incremental backup of the data in OpenDS.
        #@TestPreamble
        #@TestSteps           Client calls backup with the parameters
                              default backendID, backupDir, and incremental
        #@TestPostamble
        #@TestResult Success if backup returns 0
      -->
             <testcase name="'Backend: Backup 2'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Backup2: Create an incremental backup of the data in OpenDS'
                </message>
                <call function="'backup'">
                  {
                    'backupDir'       : '%s/backends/backup1' % STAGED_DATA_DIR,
                    'extraParams' : '-i'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Backup Tests
        #@TestName            Export: Backup 3
        #@TestID              Backup3
        #@TestPurpose         Create a backup of the data in OpenDS with a backup id.
        #@TestPreamble
        #@TestSteps           Client calls backup with the parameters
                              default backendID, backupDir, and backupID
        #@TestPostamble
        #@TestResult Success if backup returns 0
      -->
             <testcase name="'Backend: Backup 3'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Backup3: Create a backup of the data in OpenDS with a backup id'
                </message>
                <call function="'backup'">
                  {
                    'backupDir'       : '%s/backends/backup2' % STAGED_DATA_DIR,
                    'extraParams' : '-I 20070714142807Z'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
       <!--- Test Case information
        #@TestMarker          Backend Backup Tests
        #@TestName            Export: Backup 4
        #@TestID              Backup4
        #@TestPurpose         Create an incremental backup of the data in OpenDS with a backup id.
        #@TestPreamble
        #@TestSteps           Client calls backup with the parameters
                              default backendID, backupDir, incremental, and backupID
        #@TestPostamble
        #@TestResult Success if backup returns 0
      -->
             <testcase name="'Backend: Backup 4'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Backup4: Create an incremental backup of the data in OpenDS with a backup id'
                </message>
                <call function="'backup'">
                  {
                    'backupDir'       : '%s/backends/backup2' % STAGED_DATA_DIR,
                    'extraParams' : '-B 20070714142807Z -i'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
       <!--- Test Case information
        #@TestMarker          Backend Backup Tests
        #@TestName            Export: Backup 5
        #@TestID              Backup5
        #@TestPurpose         Create a compressed backup of the data in OpenDS.
        #@TestPreamble
        #@TestSteps           Client calls backup with the parameters
                              default backendID, backupDir, and compress
        #@TestPostamble
        #@TestResult Success if backup returns 0
      -->
             <testcase name="'Backend: Backup 5'">
              <sequence>
        <sequence>
  
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Backup5: Create a compressed backup of the data in OpenDS'
                </message>
                <call function="'backup'">
                  {
                    'backupDir'       : '%s/backends/backup1' % STAGED_DATA_DIR,
                    'extraParams' : '-c'
                  }
                </call>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
      
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
          <call function="'testSuite_Preamble'"/>
          <!--- Test Suite information
            #@TestSuiteName       Backend Backup Tests
            #@TestSuitePurpose    Verify that the basic backup functionality is working in the Directory Server.
            #@TestSuiteID         Backup Tests
            #@TestSuiteGroup      Backup
            #@TestGroup           Backend
            #@TestScript          backup.xml
            #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
            #@TestMarker          Backend Backup Tests
            #@TestName            Export: Backup 1
            #@TestID              Backup1
            #@TestPurpose         Backup the data in OpenDS.
            #@TestPreamble
            #@TestSteps           Client calls backup with the parameters
                                  default backendID, and backupDirectory
            #@TestPostamble
            #@TestResult Success if backup returns 0
          -->
          <testcase name="'Backend: Backup:1'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                'Backend Backup1: Create a backup of the data in OpenDS'
              </message>
              <call function="'backup'">
                {
                  'backupDir'       : '%s/backends/backup1' % STAGED_DATA_DIR
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
            
            <call function="'testSuite_Postamble'"/>
          <!--- Test Case information
            #@TestMarker          Backend Backup Tests
            #@TestName            Export: Backup 2
            #@TestID              Backup2
            #@TestPurpose         Create an incremental backup of the data in OpenDS.
            #@TestPreamble
            #@TestSteps           Client calls backup with the parameters
                                  default backendID, backupDir, and incremental
            #@TestPostamble
            #@TestResult Success if backup returns 0
          -->
          <testcase name="'Backend: Backup 2'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                'Backend Backup2: Create an incremental backup of the data in OpenDS'
              </message>
              <call function="'backup'">
                {
                  'backupDir'       : '%s/backends/backup1' % STAGED_DATA_DIR,
                  'extraParams' : '-i'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Backup Tests
            #@TestName            Export: Backup 3
            #@TestID              Backup3
            #@TestPurpose         Create a backup of the data in OpenDS with a backup id.
            #@TestPreamble
            #@TestSteps           Client calls backup with the parameters
                                  default backendID, backupDir, and backupID
            #@TestPostamble
            #@TestResult Success if backup returns 0
          -->
          <testcase name="'Backend: Backup 3'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                'Backend Backup3: Create a backup of the data in OpenDS with a backup id'
              </message>
              <call function="'backup'">
                {
                  'backupDir'       : '%s/backends/backup2' % STAGED_DATA_DIR,
                  'extraParams' : '-I 20070714142807Z'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
            
          <!--- Test Case information
            #@TestMarker          Backend Backup Tests
            #@TestName            Export: Backup 4
            #@TestID              Backup4
            #@TestPurpose         Create an incremental backup of the data in OpenDS with a backup id.
            #@TestPreamble
            #@TestSteps           Client calls backup with the parameters
                                  default backendID, backupDir, incremental, and backupID
            #@TestPostamble
            #@TestResult Success if backup returns 0
          -->
          <testcase name="'Backend: Backup 4'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                'Backend Backup4: Create an incremental backup of the data in OpenDS with a backup id'
              </message>
              <call function="'backup'">
                {
                  'backupDir'       : '%s/backends/backup2' % STAGED_DATA_DIR,
                  'extraParams' : '-B 20070714142807Z -i'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Backup Tests
            #@TestName            Export: Backup 5
            #@TestID              Backup5
            #@TestPurpose         Create a compressed backup of the data in OpenDS.
            #@TestPreamble
            #@TestSteps           Client calls backup with the parameters
                                  default backendID, backupDir, and compress
            #@TestPostamble
            #@TestResult Success if backup returns 0
          -->
          <testcase name="'Backend: Backup 5'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                'Backend Backup5: Create a compressed backup of the data in OpenDS'
              </message>
              <call function="'backup'">
                {
                  'backupDir'       : '%s/backends/backup1' % STAGED_DATA_DIR,
                  'extraParams' : '-c'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/export-tasks.xml
@@ -34,369 +34,377 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='export-tasks'
      </script>
      <call function="'testSuite_Preamble'"/>
         <!--- Start DS -->
         <sequence>
           <message>
              'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
           </message>
      <block name="'export-tasks'">
        <sequence>
  
            <call function="'StartDsWithScript'">
             { 'location'  : STAF_REMOTE_HOSTNAME }
            </call>
           <call function="'checkRC'">
               { 'returncode' : RC ,
                 'result'     : STAXResult }
           </call>
         </sequence>
         <sequence>
            <!--- Check that DS started -->
            <call function="'isAlive'">
              { 'noOfLoops'        : 5 ,
                'noOfMilliSeconds' : 2000 }
            </call>
      <!--- Test Suite information
        #@TestSuiteName       Backend Export Tasks Tests
        #@TestSuitePurpose    Verify that the basic export task functionality is working in the Directory Server.
        #@TestSuiteID         Export Tasks Tests
        #@TestSuiteGroup      Export Tasks
        #@TestGroup           Backend
        #@TestScript          export.xml
        #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Export Tasks 1
        #@TestID              ExportTasks1
        #@TestPurpose         Verify an export task of a LDIF file on the default backend.
        #@TestPreamble
        #@TestSteps           An ldif file is created that describes the export task to be
                              scheduled. The task is scheduled by adding the ldif file
                              with the static ldapmodify.
        #@TestPostamble
        #@TestResult          Success if OpenDS returns 0
      -->
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
             <!--- Start DS -->
             <sequence>
               <message>
                  'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
               </message>
      
            <testcase name="'Backend: Export Tasks 1'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend ExportTasks1: Export the data in OpenDS by scheduling a task'
                </message>
                <call function="'exportLdifTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : '1',
                    'ldifFile'       : '%s/backends/ExportTasks1.ldif' % STAGED_DATA_DIR
                  }
                <call function="'StartDsWithScript'">
                 { 'location'  : STAF_REMOTE_HOSTNAME }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
               <call function="'checkRC'">
                   { 'returncode' : RC ,
                     'result'     : STAXResult }
               </call>
             </sequence>
             <sequence>
                <!--- Check that DS started -->
                <call function="'isAlive'">
                  { 'noOfLoops'        : 5 ,
                    'noOfMilliSeconds' : 2000 }
                </call>
                <call function="'testCase_Postamble'"/>
          <!--- Test Suite information
            #@TestSuiteName       Backend Export Tasks Tests
            #@TestSuitePurpose    Verify that the basic export task functionality is working in the Directory Server.
            #@TestSuiteID         Export Tasks Tests
            #@TestSuiteGroup      Export Tasks
            #@TestGroup           Backend
            #@TestScript          export.xml
            #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Export Tasks 1
            #@TestID              ExportTasks1
            #@TestPurpose         Verify an export task of a LDIF file on the default backend.
            #@TestPreamble
            #@TestSteps           An ldif file is created that describes the export task to be
                                  scheduled. The task is scheduled by adding the ldif file
                                  with the static ldapmodify.
            #@TestPostamble
            #@TestResult          Success if OpenDS returns 0
          -->
                <testcase name="'Backend: Export Tasks 1'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend ExportTasks1: Export the data in OpenDS by scheduling a task'
                    </message>
                    <call function="'exportLdifTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : '1',
                        'ldifFile'       : '%s/backends/ExportTasks1.ldif' % STAGED_DATA_DIR
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: LDIF Default
            #@TestID              LDIF Default
            #@TestPurpose         Verify an export task of a LDIF file on the default backend.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: LDIF Non Default
            #@TestID              LDIF Non Default
            #@TestPurpose         Verify an export task of a LDIF file on a differrent backend to the default.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Include Branch
            #@TestID              Fractional Include Branch
            #@TestPurpose         Verify an export task of a LDIF file specifying a branch that should be included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Include Branches
            #@TestID              Fractional Include Branches
            #@TestPurpose         Verify an export task of a LDIF file specifying multiple branches that should be included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Exclude Branch
            #@TestID              Fractional Exclude Branch
            #@TestPurpose         Verify an export task of a LDIF file specifying a branch that should be excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Exclude Branches
            #@TestID              Fractional Exclude Branches
            #@TestPurpose         Verify an export task of a LDIF file specifying multiple branches that should be excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Branches Mix
            #@TestID              Fractional Branches Mix
            #@TestPurpose         Verify an export task of a LDIF file specifying a mix of include and exclude branches.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Include Attribute
            #@TestID              Fractional Include Attribute
            #@TestPurpose         Verify an export task of a LDIF file specifying an attribute that should be included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Include Attributes
            #@TestID              Fractional Include Attributes
            #@TestPurpose         Verify an export task of a LDIF file specifying multiple attributes that should be included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Exclude Attribute
            #@TestID              Fractional Exclude Attribute
            #@TestPurpose         Verify an export task of a LDIF file specifying an attribute that should be excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Exclude Attributes
            #@TestID              Fractional Exclude Attributes
            #@TestPurpose         Verify an export task of a LDIF file specifying multiple attribute that should be excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Mix
            #@TestID              Fractional Mix
            #@TestPurpose         Verify an export task of a LDIF file specifying a mix of fractional attributes and branches.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Filtered Include
            #@TestID              Filtered Include
            #@TestPurpose         Verify an export task of a LDIF file specifying a search filter control which entries are included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Filtered Includes
            #@TestID              Filtered Includes
            #@TestPurpose         Verify an export task of a LDIF file specifying a search filter control which entries are included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Filtered Excludes
            #@TestID              Filtered Excludes
            #@TestPurpose         Verify an export task of a LDIF file specifying multiple search filters control which entries are excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Filtered Includes
            #@TestID              Filtered Includes
            #@TestPurpose         Verify an export task of a LDIF file specifying multiple search filters control which entries are included in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Filtered Excludes Complex
            #@TestID              Filtered Excludes Complex
            #@TestPurpose         Verify an export task of a LDIF file specifying complex search filters control which entries are excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Filtered Excludes Complex
            #@TestID              Filtered Excludes Complex
            #@TestPurpose         Verify an export task of a LDIF file specifying complex search filters control which entries are excluded in the export task.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Fractional Filtered Mix
            #@TestID              Fractional Filtered Mix
            #@TestPurpose         Verify an export task of a LDIF file specifying a mix of fractional and filtered.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Append To LDIF
            #@TestID              Append To LDIF
            #@TestPurpose         Verify an export task of a LDIF file specifying that the export task process should append to the existing LDIF file.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Compress LDIF
            #@TestID              Compress LDIF
            #@TestPurpose         Verify an export task where the LDIF file is compressed.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Encrypt LDIF
            #@TestID              Encrypt LDIF
            #@TestPurpose         Verify an export task where the LDIF file is encrypted.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Hash Signed LDIF
            #@TestID              Hash Signed LDIF
            #@TestPurpose         Verify an export task where the LDIF file is hashed/signed.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Wrap Column
            #@TestID              Wrap Column
            #@TestPurpose         Verify an export task of a LDIF file containing wrapped columns
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tasks Tests
            #@TestName            Export Tasks: Error Codes
            #@TestID              Error Codes
            #@TestPurpose         Verify an export task fails with an error code.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
             </sequence>
          <call function="'testSuite_Postamble'"/>
      
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: LDIF Default
        #@TestID              LDIF Default
        #@TestPurpose         Verify an export task of a LDIF file on the default backend.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: LDIF Non Default
        #@TestID              LDIF Non Default
        #@TestPurpose         Verify an export task of a LDIF file on a differrent backend to the default.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Include Branch
        #@TestID              Fractional Include Branch
        #@TestPurpose         Verify an export task of a LDIF file specifying a branch that should be included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Include Branches
        #@TestID              Fractional Include Branches
        #@TestPurpose         Verify an export task of a LDIF file specifying multiple branches that should be included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Exclude Branch
        #@TestID              Fractional Exclude Branch
        #@TestPurpose         Verify an export task of a LDIF file specifying a branch that should be excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Exclude Branches
        #@TestID              Fractional Exclude Branches
        #@TestPurpose         Verify an export task of a LDIF file specifying multiple branches that should be excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Branches Mix
        #@TestID              Fractional Branches Mix
        #@TestPurpose         Verify an export task of a LDIF file specifying a mix of include and exclude branches.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Include Attribute
        #@TestID              Fractional Include Attribute
        #@TestPurpose         Verify an export task of a LDIF file specifying an attribute that should be included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Include Attributes
        #@TestID              Fractional Include Attributes
        #@TestPurpose         Verify an export task of a LDIF file specifying multiple attributes that should be included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Exclude Attribute
        #@TestID              Fractional Exclude Attribute
        #@TestPurpose         Verify an export task of a LDIF file specifying an attribute that should be excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Exclude Attributes
        #@TestID              Fractional Exclude Attributes
        #@TestPurpose         Verify an export task of a LDIF file specifying multiple attribute that should be excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Mix
        #@TestID              Fractional Mix
        #@TestPurpose         Verify an export task of a LDIF file specifying a mix of fractional attributes and branches.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Filtered Include
        #@TestID              Filtered Include
        #@TestPurpose         Verify an export task of a LDIF file specifying a search filter control which entries are included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Filtered Includes
        #@TestID              Filtered Includes
        #@TestPurpose         Verify an export task of a LDIF file specifying a search filter control which entries are included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Filtered Excludes
        #@TestID              Filtered Excludes
        #@TestPurpose         Verify an export task of a LDIF file specifying multiple search filters control which entries are excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Filtered Includes
        #@TestID              Filtered Includes
        #@TestPurpose         Verify an export task of a LDIF file specifying multiple search filters control which entries are included in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Filtered Excludes Complex
        #@TestID              Filtered Excludes Complex
        #@TestPurpose         Verify an export task of a LDIF file specifying complex search filters control which entries are excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Filtered Excludes Complex
        #@TestID              Filtered Excludes Complex
        #@TestPurpose         Verify an export task of a LDIF file specifying complex search filters control which entries are excluded in the export task.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Fractional Filtered Mix
        #@TestID              Fractional Filtered Mix
        #@TestPurpose         Verify an export task of a LDIF file specifying a mix of fractional and filtered.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Append To LDIF
        #@TestID              Append To LDIF
        #@TestPurpose         Verify an export task of a LDIF file specifying that the export task process should append to the existing LDIF file.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Compress LDIF
        #@TestID              Compress LDIF
        #@TestPurpose         Verify an export task where the LDIF file is compressed.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Encrypt LDIF
        #@TestID              Encrypt LDIF
        #@TestPurpose         Verify an export task where the LDIF file is encrypted.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Hash Signed LDIF
        #@TestID              Hash Signed LDIF
        #@TestPurpose         Verify an export task where the LDIF file is hashed/signed.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Wrap Column
        #@TestID              Wrap Column
        #@TestPurpose         Verify an export task of a LDIF file containing wrapped columns
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tasks Tests
        #@TestName            Export Tasks: Error Codes
        #@TestID              Error Codes
        #@TestPurpose         Verify an export task fails with an error code.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
         </sequence>
      <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/export.xml
@@ -34,880 +34,888 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='export'
      </script>
      <block name="'export'">
      
      <call function="'testSuite_Preamble'"/>
      <!--- Test Suite information
        #@TestSuiteName       Backend Export Tests
        #@TestSuitePurpose    Verify that the basic export functionality is working in the Directory Server.
        #@TestSuiteID         Export Tests
        #@TestSuiteGroup      Export
        #@TestGroup           Backend
        #@TestScript          export.xml
        #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 1
        #@TestID              Export1
        #@TestPurpose         Export the data in OpenDS.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, and ldifFile
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 1'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export1: Export the data in OpenDS'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export1.ldif' % STAGED_DATA_DIR
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 2
        #@TestID              Export2
        #@TestPurpose         Export the data in OpenDS by appending to an ldif file.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and append
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 2'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export2: Export the data in OpenDS by appending to an ldif file'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export1.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-a'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 3
        #@TestID              Export3
        #@TestPurpose         Export the data in OpenDS with one includeAttribute parameter.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and includeAttribute
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 3'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export3: Export the data in OpenDSwith one includeAttribute parameter '
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export3.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-i telephonenumber'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 4
        #@TestID              Export4
        #@TestPurpose         Export the data in OpenDS with three includeAttribute parameters.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and includeAttribute
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 4'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export4: Export the data in OpenDS with three includeAttribute parameters'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export4.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-i telephonenumber -i mail -i roomnumber'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 5
        #@TestID              Export5
        #@TestPurpose         Export the data in OpenDS with one excludeAttribute parameter.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and excludeAttribute
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 5'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export5: Export the data in OpenDS with one excludeAttribute parameter'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export5.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-e telephonenumber'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 6
        #@TestID              Export6
        #@TestPurpose         Export the data in OpenDS with three excludeAttribute parameters.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and excludeAttribute
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 6'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export6: Export the data in OpenDS with three excludeAttribute parameters'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export6.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-e telephonenumber -e mail -e roomnumber'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 7
        #@TestID              Export7
        #@TestPurpose         Export the data in OpenDS with one includeFilter parameter.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and includeFilter
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 7'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export7: Export the data in OpenDS with one includeFilter parameter'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export7.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-I "(&amp;(uid=jwalker)(roomnumber=*))'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
       <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 8
        #@TestID              Export8
        #@TestPurpose         Export the data in OpenDS with three includeFilter parameters.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and includeFilter
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 8'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export8: Export the data in OpenDS with three includeFilter parameters'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export8.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-I "(&amp;(uid=jwalker)(roomnumber=*))" -I "(&amp;(uid=jwalker)(l=Cupertino))" -I "(&amp;(uid=jwallace)(roomnumber=*))"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
       <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 9
        #@TestID              Export9
        #@TestPurpose         Export the data in OpenDS with one excludeFilter parameter.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and excludeFilter
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 9'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export9: Export the data in OpenDS with one excludeFilter parameter'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export9.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-E "(&amp;(uid=jwalker)(roomnumber=*))"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
        <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 10
        #@TestID              Export10
        #@TestPurpose         Export the data in OpenDS with three excludeFilter parameters.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and excludeFilter
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 10'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export10: Export the data in OpenDS with three excludeFilter parameters'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export10.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-E "(&amp;(uid=jwalker)(roomnumber=*))" -E "(&amp;(uid=jwalker)(l=Cupertino))" -E "(&amp;(uid=jwallace)(roomnumber=*))"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
        <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 11
        #@TestID              Export11
        #@TestPurpose         Export the data in OpenDS with one includeBranch parameter.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and includeBranch
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 11'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export11: Export the data in OpenDS with one includeBranch parameter'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export11.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-b "o=backend tests,dc=example,dc=com"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
         <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 12
        #@TestID              Export12
        #@TestPurpose         Export the data in OpenDS with one excludeBranch parameter.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and excludeBranch
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 12'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export12: Export the data in OpenDS with one excludeBranch parameter'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export12.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-B "ou=People,o=backend tests,dc=example,dc=com"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
         <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 13
        #@TestID              Export13
        #@TestPurpose         Export the data in OpenDS with one includeAttribute, excludeFilter, and includeBranch parameters.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, includeAttribute, excludeFilter, and includeBranch
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 13'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export13: Export the data in OpenDS with one includeAttribute, excludeFilter, and includeBranch parameters'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export13.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-E "(&amp;(uid=jwalker)(roomnumber=*))" -i telephonenumber -b "o=backend tests,dc=example,dc=com"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
         <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 14
        #@TestID              Export14
        #@TestPurpose         Export the data in OpenDS with one excludeAttribute, includeFilter, and excludeBranch parameters.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, excludeAttribute, includeFilter, and excludeBranch
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 14'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export14: Export the data in OpenDS with one excludeAttribute, includeFilter, and excludeBranch parameters'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export14.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-I "(&amp;(uid=jwalker)(roomnumber=*))" -e telephonenumber -B "ou=groups,o=backend tests,dc=example,dc=com"'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
          <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 15
        #@TestID              Export15
        #@TestPurpose         Export the data in OpenDS in compressed format.
        #@TestPreamble
        #@TestSteps           Client calls exportLDIF with the parameters
                              default backend, ldifFile, and compressLDIF
        #@TestPostamble
        #@TestResult Success if exportLDIF returns 0
      -->
             <testcase name="'Backend: Export 15'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <message>
                  'Backend Export15: Export the data in OpenDS in compressed format'
                </message>
                <call function="'exportLdif'">
                  {
                    'ldifFile'       : '%s/backends/Export15.ldif' % STAGED_DATA_DIR,
                    'extraParams' : '-c'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
        <sequence>
  
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Export 1
        #@TestID              Export1
        #@TestPurpose
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
      
          <call function="'testSuite_Preamble'"/>
          <!--- Test Suite information
            #@TestSuiteName       Backend Export Tests
            #@TestSuitePurpose    Verify that the basic export functionality is working in the Directory Server.
            #@TestSuiteID         Export Tests
            #@TestSuiteGroup      Export
            #@TestGroup           Backend
            #@TestScript          export.xml
            #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 1
            #@TestID              Export1
            #@TestPurpose         Export the data in OpenDS.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, and ldifFile
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 1'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export1: Export the data in OpenDS'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export1.ldif' % STAGED_DATA_DIR
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 2
            #@TestID              Export2
            #@TestPurpose         Export the data in OpenDS by appending to an ldif file.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and append
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 2'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export2: Export the data in OpenDS by appending to an ldif file'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export1.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-a'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 3
            #@TestID              Export3
            #@TestPurpose         Export the data in OpenDS with one includeAttribute parameter.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and includeAttribute
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 3'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export3: Export the data in OpenDSwith one includeAttribute parameter '
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export3.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-i telephonenumber'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 4
            #@TestID              Export4
            #@TestPurpose         Export the data in OpenDS with three includeAttribute parameters.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and includeAttribute
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 4'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export4: Export the data in OpenDS with three includeAttribute parameters'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export4.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-i telephonenumber -i mail -i roomnumber'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 5
            #@TestID              Export5
            #@TestPurpose         Export the data in OpenDS with one excludeAttribute parameter.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and excludeAttribute
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 5'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export5: Export the data in OpenDS with one excludeAttribute parameter'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export5.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-e telephonenumber'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 6
            #@TestID              Export6
            #@TestPurpose         Export the data in OpenDS with three excludeAttribute parameters.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and excludeAttribute
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 6'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export6: Export the data in OpenDS with three excludeAttribute parameters'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export6.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-e telephonenumber -e mail -e roomnumber'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 7
            #@TestID              Export7
            #@TestPurpose         Export the data in OpenDS with one includeFilter parameter.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and includeFilter
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 7'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export7: Export the data in OpenDS with one includeFilter parameter'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export7.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-I "(&amp;(uid=jwalker)(roomnumber=*))'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
           <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 8
            #@TestID              Export8
            #@TestPurpose         Export the data in OpenDS with three includeFilter parameters.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and includeFilter
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 8'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export8: Export the data in OpenDS with three includeFilter parameters'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export8.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-I "(&amp;(uid=jwalker)(roomnumber=*))" -I "(&amp;(uid=jwalker)(l=Cupertino))" -I "(&amp;(uid=jwallace)(roomnumber=*))"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
           <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 9
            #@TestID              Export9
            #@TestPurpose         Export the data in OpenDS with one excludeFilter parameter.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and excludeFilter
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 9'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export9: Export the data in OpenDS with one excludeFilter parameter'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export9.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-E "(&amp;(uid=jwalker)(roomnumber=*))"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 10
            #@TestID              Export10
            #@TestPurpose         Export the data in OpenDS with three excludeFilter parameters.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and excludeFilter
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 10'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export10: Export the data in OpenDS with three excludeFilter parameters'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export10.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-E "(&amp;(uid=jwalker)(roomnumber=*))" -E "(&amp;(uid=jwalker)(l=Cupertino))" -E "(&amp;(uid=jwallace)(roomnumber=*))"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
            <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 11
            #@TestID              Export11
            #@TestPurpose         Export the data in OpenDS with one includeBranch parameter.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and includeBranch
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 11'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export11: Export the data in OpenDS with one includeBranch parameter'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export11.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-b "o=backend tests,dc=example,dc=com"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
             <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 12
            #@TestID              Export12
            #@TestPurpose         Export the data in OpenDS with one excludeBranch parameter.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and excludeBranch
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 12'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export12: Export the data in OpenDS with one excludeBranch parameter'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export12.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-B "ou=People,o=backend tests,dc=example,dc=com"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
             <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 13
            #@TestID              Export13
            #@TestPurpose         Export the data in OpenDS with one includeAttribute, excludeFilter, and includeBranch parameters.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, includeAttribute, excludeFilter, and includeBranch
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 13'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export13: Export the data in OpenDS with one includeAttribute, excludeFilter, and includeBranch parameters'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export13.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-E "(&amp;(uid=jwalker)(roomnumber=*))" -i telephonenumber -b "o=backend tests,dc=example,dc=com"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
             <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 14
            #@TestID              Export14
            #@TestPurpose         Export the data in OpenDS with one excludeAttribute, includeFilter, and excludeBranch parameters.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, excludeAttribute, includeFilter, and excludeBranch
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 14'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export14: Export the data in OpenDS with one excludeAttribute, includeFilter, and excludeBranch parameters'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export14.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-I "(&amp;(uid=jwalker)(roomnumber=*))" -e telephonenumber -B "ou=groups,o=backend tests,dc=example,dc=com"'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
              <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 15
            #@TestID              Export15
            #@TestPurpose         Export the data in OpenDS in compressed format.
            #@TestPreamble
            #@TestSteps           Client calls exportLDIF with the parameters
                                  default backend, ldifFile, and compressLDIF
            #@TestPostamble
            #@TestResult Success if exportLDIF returns 0
          -->
                 <testcase name="'Backend: Export 15'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <message>
                      'Backend Export15: Export the data in OpenDS in compressed format'
                    </message>
                    <call function="'exportLdif'">
                      {
                        'ldifFile'       : '%s/backends/Export15.ldif' % STAGED_DATA_DIR,
                        'extraParams' : '-c'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
      
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: LDIF Default
        #@TestID              LDIF Default
        #@TestPurpose         Verify an export of a LDIF file on the default backend.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: LDIF Non Default
        #@TestID              LDIF Non Default
        #@TestPurpose         Verify an export of a LDIF file on a differrent backend to the default.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Include Branch
        #@TestID              Fractional Include Branch
        #@TestPurpose         Verify an export of a LDIF file specifying a branch that should be included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Include Branches
        #@TestID              Fractional Include Branches
        #@TestPurpose         Verify an export of a LDIF file specifying multiple branches that should be included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Exclude Branch
        #@TestID              Fractional Exclude Branch
        #@TestPurpose         Verify an export of a LDIF file specifying a branch that should be excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Exclude Branches
        #@TestID              Fractional Exclude Branches
        #@TestPurpose         Verify an export of a LDIF file specifying multiple branches that should be excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Branches Mix
        #@TestID              Fractional Branches Mix
        #@TestPurpose         Verify an export of a LDIF file specifying a mix of include and exclude branches.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Include Attribute
        #@TestID              Fractional Include Attribute
        #@TestPurpose         Verify an export of a LDIF file specifying an attribute that should be included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Include Attributes
        #@TestID              Fractional Include Attributes
        #@TestPurpose         Verify an export of a LDIF file specifying multiple attributes that should be included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Exclude Attribute
        #@TestID              Fractional Exclude Attribute
        #@TestPurpose         Verify an export of a LDIF file specifying an attribute that should be excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Exclude Attributes
        #@TestID              Fractional Exclude Attributes
        #@TestPurpose         Verify an export of a LDIF file specifying multiple attribute that should be excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Mix
        #@TestID              Fractional Mix
        #@TestPurpose         Verify an export of a LDIF file specifying a mix of fractional attributes and branches.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Filtered Include
        #@TestID              Filtered Include
        #@TestPurpose         Verify an export of a LDIF file specifying a search filter control which entries are included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Filtered Includes
        #@TestID              Filtered Includes
        #@TestPurpose         Verify an export of a LDIF file specifying a search filter control which entries are included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Filtered Excludes
        #@TestID              Filtered Excludes
        #@TestPurpose         Verify an export of a LDIF file specifying multiple search filters control which entries are excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Filtered Includes
        #@TestID              Filtered Includes
        #@TestPurpose         Verify an export of a LDIF file specifying multiple search filters control which entries are included in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Filtered Excludes Complex
        #@TestID              Filtered Excludes Complex
        #@TestPurpose         Verify an export of a LDIF file specifying complex search filters control which entries are excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Filtered Excludes Complex
        #@TestID              Filtered Excludes Complex
        #@TestPurpose         Verify an export of a LDIF file specifying complex search filters control which entries are excluded in the export.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Fractional Filtered Mix
        #@TestID              Fractional Filtered Mix
        #@TestPurpose         Verify an export of a LDIF file specifying a mix of fractional and filtered.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Append To LDIF
        #@TestID              Append To LDIF
        #@TestPurpose         Verify an export of a LDIF file specifying that the export process should append to the existing LDIF file.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Compress LDIF
        #@TestID              Compress LDIF
        #@TestPurpose         Verify an export where the LDIF file is compressed.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Encrypt LDIF
        #@TestID              Encrypt LDIF
        #@TestPurpose         Verify an export where the LDIF file is encrypted.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Hash Signed LDIF
        #@TestID              Hash Signed LDIF
        #@TestPurpose         Verify an export where the LDIF file is hashed/signed.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Wrap Column
        #@TestID              Wrap Column
        #@TestPurpose         Verify an export of a LDIF file containing wrapped columns
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <!--- Test Case information
        #@TestMarker          Backend Export Tests
        #@TestName            Export: Error Codes
        #@TestID              Error Codes
        #@TestPurpose         Verify an export fails with an error code.
        #@TestPreamble
        #@TestSteps
        #@TestPostamble
        #@TestResult
      -->
      <call function="'testSuite_Postamble'"/>
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Export 1
            #@TestID              Export1
            #@TestPurpose
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: LDIF Default
            #@TestID              LDIF Default
            #@TestPurpose         Verify an export of a LDIF file on the default backend.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: LDIF Non Default
            #@TestID              LDIF Non Default
            #@TestPurpose         Verify an export of a LDIF file on a differrent backend to the default.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Include Branch
            #@TestID              Fractional Include Branch
            #@TestPurpose         Verify an export of a LDIF file specifying a branch that should be included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Include Branches
            #@TestID              Fractional Include Branches
            #@TestPurpose         Verify an export of a LDIF file specifying multiple branches that should be included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Exclude Branch
            #@TestID              Fractional Exclude Branch
            #@TestPurpose         Verify an export of a LDIF file specifying a branch that should be excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Exclude Branches
            #@TestID              Fractional Exclude Branches
            #@TestPurpose         Verify an export of a LDIF file specifying multiple branches that should be excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Branches Mix
            #@TestID              Fractional Branches Mix
            #@TestPurpose         Verify an export of a LDIF file specifying a mix of include and exclude branches.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Include Attribute
            #@TestID              Fractional Include Attribute
            #@TestPurpose         Verify an export of a LDIF file specifying an attribute that should be included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Include Attributes
            #@TestID              Fractional Include Attributes
            #@TestPurpose         Verify an export of a LDIF file specifying multiple attributes that should be included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Exclude Attribute
            #@TestID              Fractional Exclude Attribute
            #@TestPurpose         Verify an export of a LDIF file specifying an attribute that should be excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Exclude Attributes
            #@TestID              Fractional Exclude Attributes
            #@TestPurpose         Verify an export of a LDIF file specifying multiple attribute that should be excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Mix
            #@TestID              Fractional Mix
            #@TestPurpose         Verify an export of a LDIF file specifying a mix of fractional attributes and branches.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Filtered Include
            #@TestID              Filtered Include
            #@TestPurpose         Verify an export of a LDIF file specifying a search filter control which entries are included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Filtered Includes
            #@TestID              Filtered Includes
            #@TestPurpose         Verify an export of a LDIF file specifying a search filter control which entries are included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Filtered Excludes
            #@TestID              Filtered Excludes
            #@TestPurpose         Verify an export of a LDIF file specifying multiple search filters control which entries are excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Filtered Includes
            #@TestID              Filtered Includes
            #@TestPurpose         Verify an export of a LDIF file specifying multiple search filters control which entries are included in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Filtered Excludes Complex
            #@TestID              Filtered Excludes Complex
            #@TestPurpose         Verify an export of a LDIF file specifying complex search filters control which entries are excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Filtered Excludes Complex
            #@TestID              Filtered Excludes Complex
            #@TestPurpose         Verify an export of a LDIF file specifying complex search filters control which entries are excluded in the export.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Fractional Filtered Mix
            #@TestID              Fractional Filtered Mix
            #@TestPurpose         Verify an export of a LDIF file specifying a mix of fractional and filtered.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Append To LDIF
            #@TestID              Append To LDIF
            #@TestPurpose         Verify an export of a LDIF file specifying that the export process should append to the existing LDIF file.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Compress LDIF
            #@TestID              Compress LDIF
            #@TestPurpose         Verify an export where the LDIF file is compressed.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Encrypt LDIF
            #@TestID              Encrypt LDIF
            #@TestPurpose         Verify an export where the LDIF file is encrypted.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Hash Signed LDIF
            #@TestID              Hash Signed LDIF
            #@TestPurpose         Verify an export where the LDIF file is hashed/signed.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Wrap Column
            #@TestID              Wrap Column
            #@TestPurpose         Verify an export of a LDIF file containing wrapped columns
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <!--- Test Case information
            #@TestMarker          Backend Export Tests
            #@TestName            Export: Error Codes
            #@TestID              Error Codes
            #@TestPurpose         Verify an export fails with an error code.
            #@TestPreamble
            #@TestSteps
            #@TestPostamble
            #@TestResult
          -->
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    
    </sequence>
opends/tests/functional-tests/testcases/backends/import-tasks.xml
@@ -34,1354 +34,29 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='import-tasks'
      </script>
      <block name="'import-tasks'">
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          
      <call function="'testSuite_Preamble'"/>
          <call function="'testSuite_Preamble'"/>
          <parallel>
    
      <parallel>
        <!--- Block : DS -->
        <block name="'Block DS Process Active'">
         <!--- Start DS -->
         <sequence>
           <message>
              'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
           </message>
          <call function="'StartDsWithScript'">
           { 'location'  : STAF_REMOTE_HOSTNAME }
          </call>
           <call function="'checkRC'">
               { 'returncode' : RC ,
                 'result'     : STAXResult }
           </call>
         </sequence>
        <!--- Block : DS -->
        </block>
        <!--- Block : Test Cases -->
        <block name="'Block Test Cases Active'">
          <sequence>
            <!--- Check that DS started -->
            <call function="'isAlive'">
              { 'noOfLoops'        : 5 ,
                'noOfMilliSeconds' : 2000 }
            </call>
            <!--- Test Suite information
              #@TestSuiteName       Backend Import Tasks Tests
              #@TestSuitePurpose    Verify that the basic import using the task based functionality is working in the Directory Server.
              #@TestSuiteID         Import Tasks Tests
              #@TestSuiteGroup      Import-Tasks
              #@TestGroup           Backend
              #@TestScript          import-tasks.xml
              #@TestHTMLLink        http://opends.dev.java.net/
            -->
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Import Tasks: LDIF Default
              #@TestID              LDIF Default
              #@TestPurpose         Verify an import task of a LDIF file using the default backend.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: LDIF Default'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : STAXCurrentTestcase,
                    'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                     'startDS'        : 'no'
                   }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: LDIF Non Default
              #@TestID              LDIF Non Default
              #@TestPurpose         Verify an import task of a LDIF file using a differrent backend to the default.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Include Branch
              #@TestID              Fractional Include Branch
              #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Include Branch'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeBranches' : 'dc=com',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Include Branches
              #@TestID              Fractional Include Branches
              #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Include Branches'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeBranches' : ['dc=com','dc=example,dc=com']
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Exclude Branch
              #@TestID              Fractional Exclude Branch
              #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Exclude Branch'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeBranches' : 'ou=Departed,ou=People,dc=example,dc=com',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Exclude Branches
              #@TestID              Fractional Exclude Branches
              #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Exclude Branches'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeBranches' : ['ou=Departed,ou=People,dc=example,dc=com',
                                         'cn=QA Managers,ou=groups,dc=example,dc=com']
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com',
                                         'uid=bbaret,cn=QA Managers,ou=groups,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Branches Mix
              #@TestID              Fractional Branches Mix
              #@TestPurpose         Verify an import task of a LDIF file specifying a mix of include and exclude branches.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Branches Mix'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'includeBranches' : 'dc=com',
                    'excludeBranches' : 'ou=Departed,ou=People,dc=example,dc=com',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Include Attribute
              #@TestID              Fractional Include Attribute
              #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Include Attribute'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeAttributes' : 'dc',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['dc=com','dc=example,dc=com'],
                    'missingEntries'  : ['ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Include Attributes
              #@TestID              Fractional Include Attributes
              #@TestPurpose         Verify an import task of a LDIF file specifying multiple attributes that should be included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Include Attributes'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeAttributes' : ['dc','cn','ou','sn']
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Exclude Attribute
              #@TestID              Fractional Exclude Attribute
              #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Exclude Attribute'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                    'taskID'            : STAXCurrentTestcase,
                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeAttributes' : 'userpassword'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                    'missingAttributes' : ['userpassword'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Exclude Attributes
              #@TestID              Fractional Exclude Attributes
              #@TestPurpose         Verify an import task of a LDIF file specifying multiple attribute that should be excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Exclude Attributes'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                    'taskID'            : STAXCurrentTestcase,
                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeAttributes' : ['userpassword','mail','roomnumber']
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                    'missingAttributes' : ['userpassword','mail','roomnumber'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Mix
              #@TestID              Fractional Mix
              #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional attributes and branches.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Mix'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                    'taskID'            : STAXCurrentTestcase,
                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'includeBranches'   : ['dc=com','dc=example,dc=com','ou=People,dc=example,dc=com'],
                    'excludeBranches'   : 'ou=Departed,ou=People,dc=example,dc=com',
                    'includeAttributes' : ['dc','cn','ou','sn'],
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller, ou=People, dc=example,dc=com',
                                         'uid=rhunt, ou=People, dc=example,dc=com'],
                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                         'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Filtered Include
              #@TestID              Filtered Include
              #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Filtered Include'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeFilters'  : 'objectclass=*',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Filtered Exclude
              #@TestID              Filtered Exclude
              #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Filtered Exclude'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeFilters'  : 'objectclass=person',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['dc=example,dc=com',
                                         'ou=People,dc=example,dc=com'],
                    'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Filtered Includes
              #@TestID              Filtered Includes
              #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Filtered Includes'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeFilters'  : ['objectclass=domain*','objectclass=organizationalunit']
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['dc=example,dc=com',
                                         'ou=People,dc=example,dc=com'],
                    'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                        'uid=dmiller,ou=People,dc=example,dc=com',
                                        'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Filtered Excludes
              #@TestID              Filtered Excludes
              #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Filtered Excludes'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeFilters'  : ['objectclass=person','objectclass=organizationalunit'],
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['dc=example,dc=com'],
                    'missingEntries'  : ['ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Filtered Includes Complex
              #@TestID              Filtered Includes Complex
              #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are included in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Filtered Includes Complex'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                    'includeFilters'  : '|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Filtered Excludes Complex
              #@TestID              Filtered Excludes Complex
              #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are excluded in the import.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Filtered Excludes Complex'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeFilters'  : '&amp;(objectclass=person)(ou=Departed)',
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
                    'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Fractional Filtered Mix
              #@TestID              Fractional Filtered Mix
              #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional and filtered.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Fractional Filtered Mix'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                    'taskID'            : STAXCurrentTestcase,
                    'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                    'excludeFilters'    : '&amp;(objectclass=person)(ou=Departed)',
                    'includeBranches'   : 'dc=com',
                    'excludeAttributes' : 'userpassword'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                    'missingAttributes' : ['userpassword'],
                    'startDS'           : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Append
              #@TestID              Append
              #@TestPurpose         Verify an import task of a LDIF file specifying that the import process should append to the existing database.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Append'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : STAXCurrentTestcase,
                    'ldifFile'       : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
                    'append'         : 'TRUE'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                          'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                          'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks:Append Replace Existing
              #@TestID              Append Replace Existing
              #@TestPurpose         Verify an import task of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Append Replace Existing'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                    'taskID'          : STAXCurrentTestcase,
                    'ldifFile'        : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
                    'append'          : 'TRUE',
                    'replaceExisting' : 'TRUE'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                          'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                          'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Compressed
              #@TestID              Compressed
              #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is compressed.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Compressed'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : STAXCurrentTestcase,
                    'ldifFile'       : '%s/backends/Example.ldif.gz' % STAGED_DATA_DIR,
                    'isCompressed'   : 'TRUE'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Encrypted
              #@TestID              Encrypted
              #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is encrypted.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Encrypted'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : STAXCurrentTestcase,
                    'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                    'isEncrypted'    : 'TRUE'
                  }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <!-- This test should fail. -->
                <tcstatus result="'fail'"/>
                <message log="1" level="'Error'">
                 'Error: Known bug. Issue 839: Encrypted LDIF export is not implemented'
                </message>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Hashed Signed
              #@TestID              Hashed Signed
              #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is hashed/signed.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <!-- Test Not Implemented. Feature not avaliable -->
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Rejects File
              #@TestID              Rejects File
              #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is not overwritten.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Rejects File'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : STAXCurrentTestcase,
                    'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                    'rejectsFile'    : './rejects'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <!-- Should check there is a rejects file and the contents are correct -->
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Rejects File Overwrite
              #@TestID              Rejects File Overwrite
              #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is overwritten.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Rejects File'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
                    'taskID'               : STAXCurrentTestcase,
                    'ldifFile'             : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                    'rejectsFile'          : './rejects',
                    'overwriteRejectsFile' : 'TRUE'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=rhunt,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <!-- Should check there is a rejects file and the contents are correct -->
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Skip Schema Validation Accept
              #@TestID              Skip Schema Validation Accept
              #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is accepted when skip schema validation is specified
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Skip Schema Validation Accept'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
                    'taskID'               : STAXCurrentTestcase,
                    'ldifFile'             : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
                    'skipSchemaValidation' : 'TRUE'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=dmiller,ou=People,dc=example,dc=com',
                                         'uid=kwinters,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
            <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Skip Schema Validation Reject
              #@TestID              Skip Schema Validation Reject
              #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <testcase name="'Backend: Import Tasks: Skip Schema Validation Reject'">
              <sequence>
                <call function="'testCase_Preamble'"/>
                <call function="'importLdifTask'">
                  { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
                    'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
                    'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
                    'taskID'               : STAXCurrentTestcase,
                    'ldifFile'             : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
                    'skipSchemaValidation' : 'FALSE'
                  }
                </call>
                <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
                </call>
                <call function="'checkImport'">
                  { 'expectedEntries' : ['uid=dmiller,ou=People,dc=example,dc=com'],
                    'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
                                         'uid=kwinters,ou=People,dc=example,dc=com'],
                    'startDS'         : 'no'
                  }
                </call>
                <call function="'testCase_Postamble'"/>
              </sequence>
            </testcase>
             <!--- Test Case information
              #@TestMarker          Backend Import Tasks Tests
              #@TestName            Backend: Import Tasks: Error Codes
              #@TestID              Error Codes
              #@TestPurpose         Verify an import task fails with an error code.
              #@TestPreamble
              #@TestSteps
              #@TestPostamble
              #@TestResult
            -->
            <!-- Need to know what the error codes are -->
            <!--- Stop DS -->
            <!--- Block : DS -->
            <block name="'Block DS Process Active'">
             <!--- Start DS -->
             <sequence>
               <message>
                  'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT)
                  'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
               </message>
      
               <!--- Stop DS -->
              <call function="'StopDsWithScript'">
                  { 'location'  : STAF_REMOTE_HOSTNAME,
                    'dsHost'    : DIRECTORY_INSTANCE_HOST,
                    'dsPort'    : DIRECTORY_INSTANCE_PORT,
                    'dsBindDN'  : DIRECTORY_INSTANCE_DN,
                    'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
              <call function="'StartDsWithScript'">
               { 'location'  : STAF_REMOTE_HOSTNAME }
              </call>
     
               <call function="'checkRC'">
@@ -1390,16 +65,1349 @@
               </call>
     
             </sequence>
          </sequence>
        <!--- Block : Test Cases -->
        </block>
      </parallel>
            <!--- Block : DS -->
            </block>
            <!--- Block : Test Cases -->
            <block name="'Block Test Cases Active'">
              <sequence>
                <!--- Check that DS started -->
                <call function="'isAlive'">
                  { 'noOfLoops'        : 5 ,
                    'noOfMilliSeconds' : 2000 }
                </call>
      
      <call function="'testSuite_Postamble'"/>
                <!--- Test Suite information
                  #@TestSuiteName       Backend Import Tasks Tests
                  #@TestSuitePurpose    Verify that the basic import using the task based functionality is working in the Directory Server.
                  #@TestSuiteID         Import Tasks Tests
                  #@TestSuiteGroup      Import-Tasks
                  #@TestGroup           Backend
                  #@TestScript          import-tasks.xml
                  #@TestHTMLLink        http://opends.dev.java.net/
                -->
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Import Tasks: LDIF Default
                  #@TestID              LDIF Default
                  #@TestPurpose         Verify an import task of a LDIF file using the default backend.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: LDIF Default'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : STAXCurrentTestcase,
                        'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                         'startDS'        : 'no'
                       }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: LDIF Non Default
                  #@TestID              LDIF Non Default
                  #@TestPurpose         Verify an import task of a LDIF file using a differrent backend to the default.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Include Branch
                  #@TestID              Fractional Include Branch
                  #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Include Branch'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeBranches' : 'dc=com',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Include Branches
                  #@TestID              Fractional Include Branches
                  #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Include Branches'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeBranches' : ['dc=com','dc=example,dc=com']
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Exclude Branch
                  #@TestID              Fractional Exclude Branch
                  #@TestPurpose         Verify an import task of a LDIF file specifying a branch that should be excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Exclude Branch'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeBranches' : 'ou=Departed,ou=People,dc=example,dc=com',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                        'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                             'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Exclude Branches
                  #@TestID              Fractional Exclude Branches
                  #@TestPurpose         Verify an import task of a LDIF file specifying multiple branches that should be excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Exclude Branches'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeBranches' : ['ou=Departed,ou=People,dc=example,dc=com',
                                             'cn=QA Managers,ou=groups,dc=example,dc=com']
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                        'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                             'uid=brammage,ou=Departed,ou=People,dc=example,dc=com',
                                             'uid=bbaret,cn=QA Managers,ou=groups,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Branches Mix
                  #@TestID              Fractional Branches Mix
                  #@TestPurpose         Verify an import task of a LDIF file specifying a mix of include and exclude branches.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Branches Mix'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'includeBranches' : 'dc=com',
                        'excludeBranches' : 'ou=Departed,ou=People,dc=example,dc=com',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                        'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                             'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Include Attribute
                  #@TestID              Fractional Include Attribute
                  #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Include Attribute'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeAttributes' : 'dc',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['dc=com','dc=example,dc=com'],
                        'missingEntries'  : ['ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Include Attributes
                  #@TestID              Fractional Include Attributes
                  #@TestPurpose         Verify an import task of a LDIF file specifying multiple attributes that should be included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Include Attributes'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeAttributes' : ['dc','cn','ou','sn']
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Exclude Attribute
                  #@TestID              Fractional Exclude Attribute
                  #@TestPurpose         Verify an import task of a LDIF file specifying an attribute that should be excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Exclude Attribute'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                        'taskID'            : STAXCurrentTestcase,
                        'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeAttributes' : 'userpassword'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                        'missingAttributes' : ['userpassword'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Exclude Attributes
                  #@TestID              Fractional Exclude Attributes
                  #@TestPurpose         Verify an import task of a LDIF file specifying multiple attribute that should be excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Exclude Attributes'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                        'taskID'            : STAXCurrentTestcase,
                        'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeAttributes' : ['userpassword','mail','roomnumber']
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                        'missingAttributes' : ['userpassword','mail','roomnumber'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Mix
                  #@TestID              Fractional Mix
                  #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional attributes and branches.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Mix'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                        'taskID'            : STAXCurrentTestcase,
                        'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'includeBranches'   : ['dc=com','dc=example,dc=com','ou=People,dc=example,dc=com'],
                        'excludeBranches'   : 'ou=Departed,ou=People,dc=example,dc=com',
                        'includeAttributes' : ['dc','cn','ou','sn'],
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller, ou=People, dc=example,dc=com',
                                             'uid=rhunt, ou=People, dc=example,dc=com'],
                        'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                             'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Filtered Include
                  #@TestID              Filtered Include
                  #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Filtered Include'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeFilters'  : 'objectclass=*',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Filtered Exclude
                  #@TestID              Filtered Exclude
                  #@TestPurpose         Verify an import task of a LDIF file specifying a search filter control which entries are excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Filtered Exclude'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeFilters'  : 'objectclass=person',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['dc=example,dc=com',
                                             'ou=People,dc=example,dc=com'],
                        'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Filtered Includes
                  #@TestID              Filtered Includes
                  #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Filtered Includes'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeFilters'  : ['objectclass=domain*','objectclass=organizationalunit']
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['dc=example,dc=com',
                                             'ou=People,dc=example,dc=com'],
                        'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                            'uid=dmiller,ou=People,dc=example,dc=com',
                                            'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Filtered Excludes
                  #@TestID              Filtered Excludes
                  #@TestPurpose         Verify an import task of a LDIF file specifying multiple search filters control which entries are excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Filtered Excludes'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeFilters'  : ['objectclass=person','objectclass=organizationalunit'],
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['dc=example,dc=com'],
                        'missingEntries'  : ['ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Filtered Includes Complex
                  #@TestID              Filtered Includes Complex
                  #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are included in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Filtered Includes Complex'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                        'includeFilters'  : '|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Filtered Excludes Complex
                  #@TestID              Filtered Excludes Complex
                  #@TestPurpose         Verify an import task of a LDIF file specifying complex search filters control which entries are excluded in the import.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Filtered Excludes Complex'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeFilters'  : '&amp;(objectclass=person)(ou=Departed)',
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
                        'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Fractional Filtered Mix
                  #@TestID              Fractional Filtered Mix
                  #@TestPurpose         Verify an import task of a LDIF file specifying a mix of fractional and filtered.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Fractional Filtered Mix'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'    : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'    : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'      : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'    : DIRECTORY_INSTANCE_PSWD,
                        'taskID'            : STAXCurrentTestcase,
                        'ldifFile'          : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                        'excludeFilters'    : '&amp;(objectclass=person)(ou=Departed)',
                        'includeBranches'   : 'dc=com',
                        'excludeAttributes' : 'userpassword'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                        'missingAttributes' : ['userpassword'],
                        'startDS'           : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Append
                  #@TestID              Append
                  #@TestPurpose         Verify an import task of a LDIF file specifying that the import process should append to the existing database.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Append'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : STAXCurrentTestcase,
                        'ldifFile'       : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
                        'append'         : 'TRUE'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                              'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                              'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks:Append Replace Existing
                  #@TestID              Append Replace Existing
                  #@TestPurpose         Verify an import task of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Append Replace Existing'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'  : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'    : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD,
                        'taskID'          : STAXCurrentTestcase,
                        'ldifFile'        : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
                        'append'          : 'TRUE',
                        'replaceExisting' : 'TRUE'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                              'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                              'uid=brammage,ou=Departed,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Compressed
                  #@TestID              Compressed
                  #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is compressed.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Compressed'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : STAXCurrentTestcase,
                        'ldifFile'       : '%s/backends/Example.ldif.gz' % STAGED_DATA_DIR,
                        'isCompressed'   : 'TRUE'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Encrypted
                  #@TestID              Encrypted
                  #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is encrypted.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Encrypted'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : STAXCurrentTestcase,
                        'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                        'isEncrypted'    : 'TRUE'
                      }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <!-- This test should fail. -->
                    <tcstatus result="'fail'"/>
                    <message log="1" level="'Error'">
                     'Error: Known bug. Issue 839: Encrypted LDIF export is not implemented'
                    </message>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Hashed Signed
                  #@TestID              Hashed Signed
                  #@TestPurpose         Verify an import task of a LDIF file specifying the data to import is hashed/signed.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <!-- Test Not Implemented. Feature not avaliable -->
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Rejects File
                  #@TestID              Rejects File
                  #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is not overwritten.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Rejects File'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort' : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                        'taskID'         : STAXCurrentTestcase,
                        'ldifFile'       : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                        'rejectsFile'    : './rejects'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <!-- Should check there is a rejects file and the contents are correct -->
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Rejects File Overwrite
                  #@TestID              Rejects File Overwrite
                  #@TestPurpose         Verify an import task of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is overwritten.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Rejects File'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
                        'taskID'               : STAXCurrentTestcase,
                        'ldifFile'             : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                        'rejectsFile'          : './rejects',
                        'overwriteRejectsFile' : 'TRUE'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=rhunt,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <!-- Should check there is a rejects file and the contents are correct -->
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Skip Schema Validation Accept
                  #@TestID              Skip Schema Validation Accept
                  #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is accepted when skip schema validation is specified
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Skip Schema Validation Accept'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
                        'taskID'               : STAXCurrentTestcase,
                        'ldifFile'             : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
                        'skipSchemaValidation' : 'TRUE'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=dmiller,ou=People,dc=example,dc=com',
                                             'uid=kwinters,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Skip Schema Validation Reject
                  #@TestID              Skip Schema Validation Reject
                  #@TestPurpose         Verify an import task of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <testcase name="'Backend: Import Tasks: Skip Schema Validation Reject'">
                  <sequence>
                    <call function="'testCase_Preamble'"/>
                    <call function="'importLdifTask'">
                      { 'dsInstanceHost'       : DIRECTORY_INSTANCE_HOST,
                        'dsInstancePort'       : DIRECTORY_INSTANCE_PORT,
                        'dsInstanceDn'         : DIRECTORY_INSTANCE_DN,
                        'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD,
                        'taskID'               : STAXCurrentTestcase,
                        'ldifFile'             : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
                        'skipSchemaValidation' : 'FALSE'
                      }
                    </call>
                    <call function="'checktestRC'">
                      { 'returncode' : RC ,
                        'result'     : STAXResult }
                    </call>
                    <call function="'checkImport'">
                      { 'expectedEntries' : ['uid=dmiller,ou=People,dc=example,dc=com'],
                        'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
                                             'uid=kwinters,ou=People,dc=example,dc=com'],
                        'startDS'         : 'no'
                      }
                    </call>
                    <call function="'testCase_Postamble'"/>
                  </sequence>
                </testcase>
                 <!--- Test Case information
                  #@TestMarker          Backend Import Tasks Tests
                  #@TestName            Backend: Import Tasks: Error Codes
                  #@TestID              Error Codes
                  #@TestPurpose         Verify an import task fails with an error code.
                  #@TestPreamble
                  #@TestSteps
                  #@TestPostamble
                  #@TestResult
                -->
                <!-- Need to know what the error codes are -->
                <!--- Stop DS -->
                 <sequence>
                   <message>
                      'Stop DS running on port %s' % (DIRECTORY_INSTANCE_PORT)
                   </message>
                   <!--- Stop DS -->
                  <call function="'StopDsWithScript'">
                      { 'location'  : STAF_REMOTE_HOSTNAME,
                        'dsHost'    : DIRECTORY_INSTANCE_HOST,
                        'dsPort'    : DIRECTORY_INSTANCE_PORT,
                        'dsBindDN'  : DIRECTORY_INSTANCE_DN,
                        'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
                  </call>
                   <call function="'checkRC'">
                       { 'returncode' : RC ,
                         'result'     : STAXResult }
                   </call>
                 </sequence>
              </sequence>
            <!--- Block : Test Cases -->
            </block>
          </parallel>
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/import.xml
@@ -34,1160 +34,1168 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='import'
      </script>
      <block name="'import'">
      
      <call function="'testSuite_Preamble'"/>
      <!--- Test Suite information
      #@TestSuiteName       Backend Import Tests
      #@TestSuitePurpose    Verify that the basic import functionality is working in the Directory Server.
      #@TestSuiteID         Import Tests
      #@TestSuiteGroup      Import
      #@TestGroup           Backend
      #@TestScript          import.xml
      #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: LDIF Default
      #@TestID              LDIF Default
      #@TestPurpose         Verify an import of a LDIF file using the default backend.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -l ../ldif/Example.ldif -n "userRoot"
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: LDIF Default'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'] }
          </call>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: LDIF Non Default
      #@TestID              LDIF Non Default
      #@TestPurpose         Verify an import of a LDIF file using a differrent backend to the default.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -n "nonDefault" -l ../ldif/Example.ldif
      #@TestPostamble
      #@TestResult
      -->
<!--  Not clear how to create a second backend
      <testcase name="'Backend: Import: LDIF Non Default'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
              'backEnd'     : 'nonDefault' }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com','uid=dmiller, ou=People, dc=example,dc=com','uid=rhunt, ou=People, dc=example,dc=com'] }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
-->
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Include Branch
      #@TestID              Fractional Include Branch
      #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be included in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Include Branch'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-b dc=com'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'] }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Include Branches
      #@TestID              Fractional Include Branches
      #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be included in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Include Branches'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-b "dc=com" -b "dc=example,dc=com"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'] }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Exclude Branch
      #@TestID              Fractional Exclude Branch
      #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be excluded in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Exclude Branch'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-B "ou=Departed,ou=People,dc=example,dc=com"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'] ,
               'missingEntries' : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                   'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Exclude Branches
      #@TestID              Fractional Exclude Branches
      #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be excluded in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Exclude Branches'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-B "ou=Departed,ou=People,dc=example,dc=com"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'] ,
               'missingEntries' : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                   'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Branches Mix
      #@TestID              Fractional Branches Mix
      #@TestPurpose         Verify an import of a LDIF file specifying a mix of include and exclude branches.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Branches Mix'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-b dc=com -B "ou=Departed,ou=People,dc=example,dc=com"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'] ,
               'missingEntries' : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                   'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Include Attribute
      #@TestID              Fractional Include Attribute
      #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be included in the import.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -n "userRoot" -i dc -l Include.ldif
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Include Attribute'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-i dc'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['dc=com','dc=example,dc=com'],
              'missingEntries'  : ['ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Include Attributes
      #@TestID              Fractional Include Attributes
      #@TestPurpose         Verify an import of a LDIF file specifying multiple attributes that should be included in the import.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -n "userRoot" -i cn -i dc -i ou -i sn -l Include.ldif
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Include Attributes'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-i dc -i cn -i ou -i sn'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Exclude Attribute
      #@TestID              Fractional Exclude Attribute
      #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be excluded in the import.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -l Example.ldif
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Exclude Attribute'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-e userpassword'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
              'missingAttributes' : ['userpassword']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Exclude Attributes
      #@TestID              Fractional Exclude Attributes
      #@TestPurpose         Verify an import of a LDIF file specifying multiple attribute that should be excluded in the import.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -e mail -e roomnumber -l Example.ldif
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Exclude Attributes'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-e userpassword -e mail -e roomnumber'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
              'missingAttributes' : ['userpassword']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Mix
      #@TestID              Fractional Mix
      #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional attributes and branches.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Mix'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-i dc -i cn -i ou -i sn -b "dc=com" -b "dc=example,dc=com" -b "ou=People,dc=example,dc=com" -B "ou=Departed,ou=People,dc=example,dc=com"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller, ou=People, dc=example,dc=com',
                                   'uid=rhunt, ou=People, dc=example,dc=com'],
              'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                   'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Filtered Include
      #@TestID              Filtered Include
      #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are included in the import.
      #@TestPreamble
      #@TestSteps           ./import-ldif.sh -n "userRoot" -I "objectclass=*" -l Include.ldif
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Filtered Include'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-I "objectclass=*'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Filtered Exclude
      #@TestID              Filtered Exclude
      #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are excluded in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Filtered Exclude'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-E "objectclass=person"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['dc=example,dc=com',
                                   'ou=People,dc=example,dc=com'],
               'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Filtered Includes
      #@TestID              Filtered Includes
      #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are included in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Filtered Includes'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-I "objectclass=domain" -I "objectclass=organizationalunit"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['dc=example,dc=com',
                                   'ou=People,dc=example,dc=com'],
               'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Filtered Excludes
      #@TestID              Filtered Excludes
      #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are excluded in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Filtered Excludes'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-E "objectclass=person" -E "objectclass=organizationalunit"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['dc=example,dc=com'],
              'missingEntries'  : ['ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Filtered Includes Complex
      #@TestID              Filtered Includes Complex
      #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are included in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Filtered Includes Complex'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-I "|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Filtered Excludes Complex
      #@TestID              Filtered Excludes Complex
      #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are excluded in the import.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Filtered Excludes Complex'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-E "&amp;(objectclass=person)(ou=Departed)"'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
              'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Fractional Filtered Mix
      #@TestID              Fractional Filtered Mix
      #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional and filtered.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Fractional Filtered Mix'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-E "&amp;(objectclass=person)(ou=Departed)" -b "dc=com" -e userpassword'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
              'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Append
      #@TestID              Append
      #@TestPurpose         Verify an import of a LDIF file specifying that the import process should append to the existing database.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Append'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-a'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            {  'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                    'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                    'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Append Replace Existing
      #@TestID              Append Replace Existing
      #@TestPurpose         Verify an import of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Append Replace Existing'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-a -r'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            {  'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                    'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                    'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Compressed
      #@TestID              Compressed
      #@TestPurpose         Verify an import of a LDIF file specifying the data to import is compressed.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Compressed'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif.gz' % STAGED_DATA_DIR,
              'extraParams' : '-c'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Encrypted
      #@TestID              Encrypted
      #@TestPurpose         Verify an import of a LDIF file specifying the data to import is encrypted.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Encrypted'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-y'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <!-- This test should fail. -->
          <tcstatus result="'fail'"/>
          <message log="1" level="'Error'">
            'Error: Known bug. Issue 839: Encrypted LDIF export is not implemented'
          </message>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Hashed Signed
      #@TestID              Hashed Signed
      #@TestPurpose         Verify an import of a LDIF file specifying the data to import is hashed/signed.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <!-- Test Not Implemented. Feature not avaliable -->
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Rejects File
      #@TestID              Rejects File
      #@TestPurpose         Verify an import of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is not overwritten.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Rejects File'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-R %s/rejects.txt' % TMPDIR
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Rejects File Overwrite
      #@TestID              Rejects File Overwrite
      #@TestPurpose         Verify an import of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is overwritten.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Rejects File Overwrite'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-R %s/rejects.txt -O' % TMPDIR
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=rhunt,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Skip Schema Validation Accept
      #@TestID              Skip Schema Validation Accept
      #@TestPurpose         Verify an import of a LDIF file containing invalided schema is accepted when skip schema validation is specified
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Skip Schema Validation Accept'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
              'extraParams' : '-s'
            }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=dmiller,ou=People,dc=example,dc=com',
                                   'uid=kwinters,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Skip Schema Validation Reject
      #@TestID              skip schema validation reject
      #@TestPurpose         Verify an import of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <testcase name="'Backend: Import: Skip Schema Validation Reject'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <call function="'importLdif'">
            { 'ldifFile'    : '%s/backends/Schema.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
            { 'returncode' : RC ,
              'result'     : STAXResult }
          </call>
          <call function="'checkImport'">
            { 'expectedEntries' : ['uid=dmiller,ou=People,dc=example,dc=com'],
              'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
                                   'uid=kwinters,ou=People,dc=example,dc=com']
            }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case information
      #@TestMarker          Backend Import Tests
      #@TestName            Backend: Import: Error Codes
      #@TestID              Error Codes
      #@TestPurpose         Verify an import fails with an error code.
      #@TestPreamble
      #@TestSteps
      #@TestPostamble
      #@TestResult
      -->
      <!-- Need to know what the error codes are -->
      <call function="'testSuite_Postamble'"/>
          <!--- Test Suite information
          #@TestSuiteName       Backend Import Tests
          #@TestSuitePurpose    Verify that the basic import functionality is working in the Directory Server.
          #@TestSuiteID         Import Tests
          #@TestSuiteGroup      Import
          #@TestGroup           Backend
          #@TestScript          import.xml
          #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: LDIF Default
          #@TestID              LDIF Default
          #@TestPurpose         Verify an import of a LDIF file using the default backend.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -l ../ldif/Example.ldif -n "userRoot"
          #@TestPostamble
          #@TestResult
          -->
            
          <testcase name="'Backend: Import: LDIF Default'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: LDIF Non Default
          #@TestID              LDIF Non Default
          #@TestPurpose         Verify an import of a LDIF file using a differrent backend to the default.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "nonDefault" -l ../ldif/Example.ldif
          #@TestPostamble
          #@TestResult
          -->
          <!--  Not clear how to create a second backend
          <testcase name="'Backend: Import: LDIF Non Default'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                  'backEnd'     : 'nonDefault' }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com','uid=dmiller, ou=People, dc=example,dc=com','uid=rhunt, ou=People, dc=example,dc=com'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
    -->
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Branch
          #@TestID              Fractional Include Branch
          #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Include Branch'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-b dc=com'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Branches
          #@TestID              Fractional Include Branches
          #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Include Branches'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-b "dc=com" -b "dc=example,dc=com"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'] }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Branch
          #@TestID              Fractional Exclude Branch
          #@TestPurpose         Verify an import of a LDIF file specifying a branch that should be excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Exclude Branch'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-B "ou=Departed,ou=People,dc=example,dc=com"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'] ,
                   'missingEntries' : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                       'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Branches
          #@TestID              Fractional Exclude Branches
          #@TestPurpose         Verify an import of a LDIF file specifying multiple branches that should be excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Exclude Branches'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-B "ou=Departed,ou=People,dc=example,dc=com"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'] ,
                   'missingEntries' : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                       'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Branches Mix
          #@TestID              Fractional Branches Mix
          #@TestPurpose         Verify an import of a LDIF file specifying a mix of include and exclude branches.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Branches Mix'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-b dc=com -B "ou=Departed,ou=People,dc=example,dc=com"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'] ,
                   'missingEntries' : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                       'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Attribute
          #@TestID              Fractional Include Attribute
          #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be included in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -i dc -l Include.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Include Attribute'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-i dc'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['dc=com','dc=example,dc=com'],
                  'missingEntries'  : ['ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Include Attributes
          #@TestID              Fractional Include Attributes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple attributes that should be included in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -i cn -i dc -i ou -i sn -l Include.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Include Attributes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-i dc -i cn -i ou -i sn'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Attribute
          #@TestID              Fractional Exclude Attribute
          #@TestPurpose         Verify an import of a LDIF file specifying an attribute that should be excluded in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -l Example.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Exclude Attribute'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-e userpassword'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                  'missingAttributes' : ['userpassword']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Exclude Attributes
          #@TestID              Fractional Exclude Attributes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple attribute that should be excluded in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -e userpassword -e mail -e roomnumber -l Example.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Exclude Attributes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-e userpassword -e mail -e roomnumber'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries'   : ['uid=scarter,ou=People,dc=example,dc=com'],
                  'missingAttributes' : ['userpassword']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Mix
          #@TestID              Fractional Mix
          #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional attributes and branches.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Mix'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-i dc -i cn -i ou -i sn -b "dc=com" -b "dc=example,dc=com" -b "ou=People,dc=example,dc=com" -B "ou=Departed,ou=People,dc=example,dc=com"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller, ou=People, dc=example,dc=com',
                                       'uid=rhunt, ou=People, dc=example,dc=com'],
                  'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                       'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Include
          #@TestID              Filtered Include
          #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are included in the import.
          #@TestPreamble
          #@TestSteps           ./import-ldif.sh -n "userRoot" -I "objectclass=*" -l Include.ldif
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Filtered Include'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-I "objectclass=*'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Exclude
          #@TestID              Filtered Exclude
          #@TestPurpose         Verify an import of a LDIF file specifying a search filter control which entries are excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Filtered Exclude'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-E "objectclass=person"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['dc=example,dc=com',
                                       'ou=People,dc=example,dc=com'],
                   'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Includes
          #@TestID              Filtered Includes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Filtered Includes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-I "objectclass=domain" -I "objectclass=organizationalunit"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['dc=example,dc=com',
                                       'ou=People,dc=example,dc=com'],
                   'missingEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Excludes
          #@TestID              Filtered Excludes
          #@TestPurpose         Verify an import of a LDIF file specifying multiple search filters control which entries are excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Filtered Excludes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-E "objectclass=person" -E "objectclass=organizationalunit"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['dc=example,dc=com'],
                  'missingEntries'  : ['ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Includes Complex
          #@TestID              Filtered Includes Complex
          #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are included in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Filtered Includes Complex'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Include.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-I "|(objectclass=person)(objectclass=domain)(objectclass=organizationalunit)"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Filtered Excludes Complex
          #@TestID              Filtered Excludes Complex
          #@TestPurpose         Verify an import of a LDIF file specifying complex search filters control which entries are excluded in the import.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Filtered Excludes Complex'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-E "&amp;(objectclass=person)(ou=Departed)"'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
                  'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Fractional Filtered Mix
          #@TestID              Fractional Filtered Mix
          #@TestPurpose         Verify an import of a LDIF file specifying a mix of fractional and filtered.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Fractional Filtered Mix'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Exclude.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-E "&amp;(objectclass=person)(ou=Departed)" -b "dc=com" -e userpassword'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=rhunt,ou=People,dc=example,dc=com'],
                  'missingEntries'  : ['uid=fvinker,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Append
          #@TestID              Append
          #@TestPurpose         Verify an import of a LDIF file specifying that the import process should append to the existing database.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Append'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-a'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                {  'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                        'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                        'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Append Replace Existing
          #@TestID              Append Replace Existing
          #@TestPurpose         Verify an import of a LDIF file specifying that an existing entry should be replaced when appending to an existing database.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Append Replace Existing'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Append.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-a -r'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                {  'expectedEntries'  : ['ou=Departed,ou=People,dc=example,dc=com',
                                        'uid=fvinker,ou=Departed,ou=People,dc=example,dc=com',
                                        'uid=brammage,ou=Departed,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Compressed
          #@TestID              Compressed
          #@TestPurpose         Verify an import of a LDIF file specifying the data to import is compressed.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Compressed'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif.gz' % STAGED_DATA_DIR,
                  'extraParams' : '-c'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Encrypted
          #@TestID              Encrypted
          #@TestPurpose         Verify an import of a LDIF file specifying the data to import is encrypted.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Encrypted'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-y'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <!-- This test should fail. -->
              <tcstatus result="'fail'"/>
              <message log="1" level="'Error'">
                'Error: Known bug. Issue 839: Encrypted LDIF export is not implemented'
              </message>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Hashed Signed
          #@TestID              Hashed Signed
          #@TestPurpose         Verify an import of a LDIF file specifying the data to import is hashed/signed.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <!-- Test Not Implemented. Feature not avaliable -->
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Rejects File
          #@TestID              Rejects File
          #@TestPurpose         Verify an import of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is not overwritten.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Rejects File'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-R %s/rejects.txt' % TMPDIR
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Rejects File Overwrite
          #@TestID              Rejects File Overwrite
          #@TestPurpose         Verify an import of a LDIF file specifying the a path to a file into which rejected entries may be written if they are not accepted during the import process, when the rejects file is overwritten.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Rejects File Overwrite'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Example.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-R %s/rejects.txt -O' % TMPDIR
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=rhunt,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Skip Schema Validation Accept
          #@TestID              Skip Schema Validation Accept
          #@TestPurpose         Verify an import of a LDIF file containing invalided schema is accepted when skip schema validation is specified
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Skip Schema Validation Accept'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Schema.ldif' % STAGED_DATA_DIR,
                  'extraParams' : '-s'
                }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=dmiller,ou=People,dc=example,dc=com',
                                       'uid=kwinters,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Skip Schema Validation Reject
          #@TestID              skip schema validation reject
          #@TestPurpose         Verify an import of a LDIF file containing invalided schema is rejected when skip schema validation is not specified
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <testcase name="'Backend: Import: Skip Schema Validation Reject'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <call function="'importLdif'">
                { 'ldifFile'    : '%s/backends/Schema.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
              </call>
              <call function="'checkImport'">
                { 'expectedEntries' : ['uid=dmiller,ou=People,dc=example,dc=com'],
                  'missingEntries'  : ['uid=scarter,ou=People,dc=example,dc=com',
                                       'uid=kwinters,ou=People,dc=example,dc=com']
                }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case information
          #@TestMarker          Backend Import Tests
          #@TestName            Backend: Import: Error Codes
          #@TestID              Error Codes
          #@TestPurpose         Verify an import fails with an error code.
          #@TestPreamble
          #@TestSteps
          #@TestPostamble
          #@TestResult
          -->
          <!-- Need to know what the error codes are -->
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
    
  </function>
opends/tests/functional-tests/testcases/backends/restore-tasks.xml
@@ -34,36 +34,39 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='restore-tasks'
      </script>
      <call function="'testSuite_Preamble'"/>
      <!--- Test Suite information
        #@TestSuiteName       Backend Restore Tasks Tests
        #@TestSuitePurpose    Verify that the basic restore task functionality is working in the Directory Server.
        #@TestSuiteID         Restore Tasks Tests
        #@TestSuiteGroup      Restore Tasks
        #@TestGroup           Backend
        #@TestScript          restore-tasks.xml
        #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
        #@TestMarker          Backend Restore Tasks Tests
        #@TestName            Restore Tasks: Restore Tasks 1
        #@TestID              RestoreTasks1
        #@TestPurpose         Verify an restore task of a LDIF file on the default backend.
        #@TestPreamble
        #@TestSteps           An ldif file is created that describes the restore task to be
                              scheduled. The task is scheduled by adding the ldif file
                              with the static ldapmodify.
        #@TestPostamble
        #@TestResult          Success if OpenDS returns 0
      -->
      <block name="'restore-tasks'">
      
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <!--- Test Suite information
            #@TestSuiteName       Backend Restore Tasks Tests
            #@TestSuitePurpose    Verify that the basic restore task functionality is working in the Directory Server.
            #@TestSuiteID         Restore Tasks Tests
            #@TestSuiteGroup      Restore Tasks
            #@TestGroup           Backend
            #@TestScript          restore-tasks.xml
            #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
            #@TestMarker          Backend Restore Tasks Tests
            #@TestName            Restore Tasks: Restore Tasks 1
            #@TestID              RestoreTasks1
            #@TestPurpose         Verify an restore task of a LDIF file on the default backend.
            #@TestPreamble
            #@TestSteps           An ldif file is created that describes the restore task to be
                                  scheduled. The task is scheduled by adding the ldif file
                                  with the static ldapmodify.
            #@TestPostamble
            #@TestResult          Success if OpenDS returns 0
          -->
            <testcase name="'Backend: Restore Tasks 1'">
              
@@ -79,7 +82,7 @@
                    'dsInstanceDn'   : DIRECTORY_INSTANCE_DN,
                    'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
                    'taskID'         : '4',
                    'backupDir'       : '%s/backends/' % STAGED_DATA_DIR
                    'backupDir'      : '%s/backends/' % STAGED_DATA_DIR
                  }
                </call>
      
@@ -94,8 +97,12 @@
      
            </testcase>
      <call function="'testSuite_Postamble'"/>
          <call function="'testSuite_Postamble'"/>
      
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/backends/restore.xml
@@ -34,34 +34,38 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='restore'
      </script>
      <block name="'restore'">
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          
      <call function="'testSuite_Preamble'"/>
      <!--- Test Suite information
        #@TestSuiteName       Backend Restore Tests
        #@TestSuitePurpose    Test the restore functionality for OpenDS.
        #@TestSuiteID         Restore Tests
        #@TestSuiteGroup      Restore
        #@TestGroup           Backend
        #@TestScript          restore.xml
        #@TestHTMLLink        http://opends.dev.java.net/
      -->
      <!--- Test Case information
        #@TestMarker          Backend Restore Tests
        #@TestName            Export: Restore 1
        #@TestID              Restore1
        #@TestPurpose         Restore data to OpenDS.
        #@TestPreamble
        #@TestSteps           Client calls restore with the parameters
                              default backendID, and backupDirectory
        #@TestPostamble
        #@TestResult Success if restore returns 0
      -->
          <call function="'testSuite_Preamble'"/>
          <!--- Test Suite information
            #@TestSuiteName       Backend Restore Tests
            #@TestSuitePurpose    Test the restore functionality for OpenDS.
            #@TestSuiteID         Restore Tests
            #@TestSuiteGroup      Restore
            #@TestGroup           Backend
            #@TestScript          restore.xml
            #@TestHTMLLink        http://opends.dev.java.net/
          -->
          <!--- Test Case information
            #@TestMarker          Backend Restore Tests
            #@TestName            Export: Restore 1
            #@TestID              Restore1
            #@TestPurpose         Restore data to OpenDS.
            #@TestPreamble
            #@TestSteps           Client calls restore with the parameters
                                  default backendID, and backupDirectory
            #@TestPostamble
            #@TestResult Success if restore returns 0
          -->
             <testcase name="'Backend: Restore 1'">
    
              <sequence>
@@ -88,20 +92,20 @@
              </sequence>
      
            </testcase>
          <!--- Test Case information
            #@TestMarker          Backend Restore Tests
            #@TestName            Export: Restore 2
            #@TestID              Restore2
            #@TestPurpose         Restore compressed data to OpenDS.
            #@TestPreamble
            #@TestSteps           Client calls restore with the parameters
                                  default backendID, backupDirectory, and uncompress
                                  is automatically done
            #@TestPostamble
            #@TestResult Success if restore returns 0
          -->
            
      <!--- Test Case information
        #@TestMarker          Backend Restore Tests
        #@TestName            Export: Restore 2
        #@TestID              Restore2
        #@TestPurpose         Restore compressed data to OpenDS.
        #@TestPreamble
        #@TestSteps           Client calls restore with the parameters
                              default backendID, backupDirectory, and uncompress
                              is automatically done
        #@TestPostamble
        #@TestResult Success if restore returns 0
      -->
             <testcase name="'Backend: Restore 2'">
    
              <sequence>
@@ -127,8 +131,12 @@
      
            </testcase>
            
      <call function="'testSuite_Postamble'"/>
          <call function="'testSuite_Postamble'"/>
      
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/cleanup/cleanup.xml
@@ -31,27 +31,35 @@
  <function name="main_cleanup">
      <sequence>
     <sequence>
      <!--- Delete file if it exists already-->
      <message>
          'Delete folder %s/ldifdata.zip' % DIRECTORY_INSTANCE_DIR
      </message>
      <call function="'deleteFile'">
          { 'location' : STAF_REMOTE_HOSTNAME,
            'filename' : '%s/ldifdata.zip' % DIRECTORY_INSTANCE_DIR }
      </call>
      <block name="'cleanup'">
        <sequence>
      <!--- Delete folder if it exists already-->
      <message>
          'Delete folder %s/functional-tests' % DIRECTORY_INSTANCE_DIR
      </message>
      <call function="'deleteFolder'">
          { 'location'   : STAF_REMOTE_HOSTNAME,
            'foldername' : '%s/functional-tests' % DIRECTORY_INSTANCE_DIR }
      </call>
     </sequence>
          <!--- Delete file if it exists already-->
          <message>
              'Delete folder %s/ldifdata.zip' % DIRECTORY_INSTANCE_DIR
          </message>
          <call function="'deleteFile'">
              { 'location' : STAF_REMOTE_HOSTNAME,
                'filename' : '%s/ldifdata.zip' % DIRECTORY_INSTANCE_DIR }
          </call>
          <!--- Delete folder if it exists already-->
          <message>
              'Delete folder %s/functional-tests' % DIRECTORY_INSTANCE_DIR
          </message>
          <call function="'deleteFolder'">
              { 'location'   : STAF_REMOTE_HOSTNAME,
                'foldername' : '%s/functional-tests' % DIRECTORY_INSTANCE_DIR }
          </call>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/core/core.xml
@@ -33,101 +33,109 @@
    <sequence>
      <script>
        CurrentTestPath['group']='core'
      </script>
      <block name="'core'">
        <sequence>
          <script>
            CurrentTestPath['group']='core'
          </script>
            
      <call function="'testGroup_Preamble'"/>
      <parallel>
          <call function="'testGroup_Preamble'"/>
          <parallel>
          <block name="'Block DS Process Active'">
      
      <block name="'Block DS Process Active'">
        <!--- Start DS -->
        <sequence>
          <message>
             'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
          </message>
          <call function="'StartDsWithScript'">
           { 'location'  : STAF_REMOTE_HOSTNAME }
          </call>
          <call function="'checkRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
        </sequence>
       <!--- End Block DS Process Active -->
       </block>
       <block name="'Block Clients'">
        <sequence>
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 5 ,
              'noOfMilliSeconds' : 2000 }
          </call>
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/core/core_setup.xml' % (TESTS_DIR)"/>
          <call function="'core_setup'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/core/core_entry_cache.xml' % (TESTS_DIR)"/>
          <call function="'core_entry_cache'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/core/core_search_sizelimit.xml' % (TESTS_DIR)"/>
          <call function="'core_search_sizelimit'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/core/core_search_timelimit.xml' % (TESTS_DIR)"/>
          <call function="'core_search_timelimit'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/core/core_tf_filters.xml' % (TESTS_DIR)"/>
          <call function="'core_tf_filters'" />
          <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
            file="'%s/testcases/core/core_version_report.xml' % (TESTS_DIR)"/>
          <call function="'core_version_report'" />
          <!--- 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,
                  'dsPort'    : DIRECTORY_INSTANCE_PORT,
                  'dsBindDN'  : DIRECTORY_INSTANCE_DN,
                  'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
            </call>
            <call function="'checkRC'">
                { 'returncode' : RC ,
                  'result'     : STAXResult }
            </call>
          </sequence>
        </sequence>
        <!--- End Block Clients -->
        </block>
      </parallel>
      <call function="'testGroup_Postamble'"/>
            <!--- Start DS -->
            <sequence>
              <message>
                 'Start DS to run on port %s' % (DIRECTORY_INSTANCE_PORT)
              </message>
              <call function="'StartDsWithScript'">
               { 'location'  : STAF_REMOTE_HOSTNAME }
              </call>
      
              <call function="'checkRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
            </sequence>
           <!--- End Block DS Process Active -->
           </block>
           <block name="'Block Clients'">
            <sequence>
              <!--- Check that DS started -->
              <call function="'isAlive'">
                { 'noOfLoops'        : 5 ,
                  'noOfMilliSeconds' : 2000 }
              </call>
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/core/core_setup.xml' % (TESTS_DIR)"/>
              <call function="'core_setup'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/core/core_entry_cache.xml' % (TESTS_DIR)"/>
              <call function="'core_entry_cache'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/core/core_search_sizelimit.xml' % (TESTS_DIR)"/>
              <call function="'core_search_sizelimit'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/core/core_search_timelimit.xml' % (TESTS_DIR)"/>
              <call function="'core_search_timelimit'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/core/core_tf_filters.xml' % (TESTS_DIR)"/>
              <call function="'core_tf_filters'" />
              <import machine="'%s' % (STAF_LOCAL_HOSTNAME)"
                file="'%s/testcases/core/core_version_report.xml' % (TESTS_DIR)"/>
              <call function="'core_version_report'" />
              <!--- 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,
                      'dsPort'    : DIRECTORY_INSTANCE_PORT,
                      'dsBindDN'  : DIRECTORY_INSTANCE_DN,
                      'dsBindPwd' : DIRECTORY_INSTANCE_PSWD }
                </call>
                <call function="'checkRC'">
                    { 'returncode' : RC ,
                      'result'     : STAXResult }
                </call>
              </sequence>
            </sequence>
            <!--- End Block Clients -->
            </block>
          </parallel>
          <call function="'testGroup_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/core/core_entry_cache.xml
@@ -33,195 +33,203 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='entry-cache'
      </script>
      <block name="'entry-cache'">
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
            
      <call function="'testSuite_Preamble'"/>
      <!--- Check that DS started -->
      <call function="'isAlive'">
        { 'noOfLoops'        : 5 ,
          'noOfMilliSeconds' : 2000 }
      </call>
      <!--- Test Case : Entry Cache: Default Search -->
      <testcase name="'Core: Entry Cache: Default Search'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Check the response of OpenDS when an ldap search request is conducted with a single pipe character ("|") for an existing entry'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'cn=version,cn=monitor' ,
              'dsFilter'         : '|' ,
              'extraParams'    : '' }
          <call function="'testSuite_Preamble'"/>
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 5 ,
              'noOfMilliSeconds' : 2000 }
          </call>
          <!--- Test Case : Entry Cache: Default Search -->
          <testcase name="'Core: Entry Cache: Default Search'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              
          </call>
              <message>
                 'Check the response of OpenDS when an ldap search request is conducted with a single pipe character ("|") for an existing entry'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'cn=version,cn=monitor' ,
                  'dsFilter'         : '|' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Entry Cache: Enable Default -->
          <testcase name="'Core: Entry Cache: Enable Default'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Enable the default entry cache'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/core/ldifs/mod_entrycache2.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Entry Cache: Add Attributes -->
          <testcase name="'Core: Entry Cache: Add Attributes'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Add three attributes to cn=Entry Cache,cn=config'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/core/ldifs/mod_entrycache3.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Entry Cache: Attribute Already Exists -->
          <testcase name="'Core: Entry Cache: Attribute Already Exists'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Add one attribute that is not allowed under cn=Entry Cache,cn=config'
              </message>
              <call function="'modifyEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeModified'   : '%s/core/ldifs/mod_entrycache4.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 65 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Entry Cache: FIFO Cache-->
          <testcase name="'Core: Entry Cache: FIFO Cache'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Add second entry cache which is an object of the ds-cfg-fifo-entry-cache class'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_entrycache5.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Entry Cache: Search -->
          <testcase name="'Core: Entry Cache: Cache Search'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Check the response of OpenDS when an ldap search request is conducted'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Entry Cache: Enable Default -->
      <testcase name="'Core: Entry Cache: Enable Default'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Enable the default entry cache'
          </message>
          <call function="'modifyEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeModified'   : '%s/core/ldifs/mod_entrycache2.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Entry Cache: Add Attributes -->
      <testcase name="'Core: Entry Cache: Add Attributes'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Add three attributes to cn=Entry Cache,cn=config'
          </message>
          <call function="'modifyEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeModified'   : '%s/core/ldifs/mod_entrycache3.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Entry Cache: Attribute Already Exists -->
      <testcase name="'Core: Entry Cache: Attribute Already Exists'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Add one attribute that is not allowed under cn=Entry Cache,cn=config'
          </message>
          <call function="'modifyEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeModified'   : '%s/core/ldifs/mod_entrycache4.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 65 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Entry Cache: FIFO Cache-->
      <testcase name="'Core: Entry Cache: FIFO Cache'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Add second entry cache which is an object of the ds-cfg-fifo-entry-cache class'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_entrycache5.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Entry Cache: Search -->
      <testcase name="'Core: Entry Cache: Cache Search'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Check the response of OpenDS when an ldap search request is conducted'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <call function="'testSuite_Postamble'"/>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/core/core_search_sizelimit.xml
@@ -33,304 +33,312 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='search-sizelimit'
      </script>
      <block name="'search-sizelimit'">
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
            
      <call function="'testSuite_Preamble'"/>
      <!--- Check that DS started -->
      <call function="'isAlive'">
        { 'noOfLoops'        : 5 ,
          'noOfMilliSeconds' : 2000 }
      </call>
      <!--- Test Case : Search Size Limit: Size Limit Exceeded -->
      <testcase name="'Core: Search Size Limit: Size Limit Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL1: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined in the command line and the search size is exceeed '
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '-z 150' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 4 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: Size Limit Not Exceeded -->
      <testcase name="'Core: Search Size Limit: Size Limit Not Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL2: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined in the command line and the search size is not exceeed'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '-z 151' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
       <!--- Test Case : Search Size Limit: Server Wide Size Limit 5 -->
      <testcase name="'Core: Search Size Limit: Server Wide Size Limit 5'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL3: Change the server-wide search size limit to 5'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
          <call function="'testSuite_Preamble'"/>
    
      <!--- Test Case : Search Size Limit: Server Wide Size Limit Exceeded  -->
      <testcase name="'Core: Search Size Limit: Server Wide Size Limit Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL4: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined by the server-wide parameter, ds-cfg-size-limit, and the search size limit is exceeded'
          </message>
          <call function="'AnonSearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 5 ,
              'noOfMilliSeconds' : 2000 }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 4 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: Server Wide Size Limit 1000-->
      <testcase name="'Core: Search Size Limit: Server Wide Size Limit 1000'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL5: Change the server-wide search size limit to 1000'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit2.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: Server Wide Size Limit Not Exceeded -->
      <testcase name="'Core: Search Size Limit: Server Wide Size Limit Not Exceeded '">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL6: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined by the server-wide parameter, ds-cfg-size-limit, and the search size limit is not exceeded'
          </message>
          <call function="'AnonSearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: Directory Manager Size Limit 5 -->
      <testcase name="'Core: Search Size Limit: Directory Manager Size Limit 5'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL7: Change the search size limit for cn=Directory Manager to 5'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit3.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: User Specific Size Limit Exceeded -->
      <testcase name="'Core: Search Size Limit: User Specific Size Limit Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL8: Check the response of OpenDS when an ldap search request is conducted with a user search size limit defined by the user-specific parameter, ds-rlim-size-limit, and the search size limit is exceeded'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 4 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: Size Limit Not Applicable  -->
      <testcase name="'Core: Search Size Limit: Size Limit Not Applicable'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL9: Check the response of OpenDS when an ldap search request is conducted with a user search size limit defined by the user-specific parameter, ds-rlim-size-limit, and the search is conducted as a bind to a different user'
          </message>
          <call function="'AnonSearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: Modify Directory Manager Limit -1 -->
      <testcase name="'Core: Search Size Limit: Modify Directory Manager Limit -1'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL10: Change the search size limit for cn=Directory Manager to -1'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit4.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Size Limit: No Size Limit -->
      <testcase name="'Core: Search Size Limit: No Size Limit'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core SSzL11: Check the response of OpenDS when an ldap search request is conducted with a user search size limit defined as "unlimited" by the user-specific parameter, ds-rlim-size-limit, equal to -1 and the search is against 1150 entries'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'      : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <!--- Test Case : Search Size Limit: Size Limit Exceeded -->
          <testcase name="'Core: Search Size Limit: Size Limit Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL1: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined in the command line and the search size is exceeed '
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '-z 150' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 4 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          
          <call function="'testCase_Postamble'"/>
          <!--- Test Case : Search Size Limit: Size Limit Not Exceeded -->
          <testcase name="'Core: Search Size Limit: Size Limit Not Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL2: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined in the command line and the search size is not exceeed'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '-z 151' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          
        </sequence>
      </testcase>
      <call function="'testSuite_Postamble'"/>
           <!--- Test Case : Search Size Limit: Server Wide Size Limit 5 -->
          <testcase name="'Core: Search Size Limit: Server Wide Size Limit 5'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL3: Change the server-wide search size limit to 5'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: Server Wide Size Limit Exceeded  -->
          <testcase name="'Core: Search Size Limit: Server Wide Size Limit Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL4: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined by the server-wide parameter, ds-cfg-size-limit, and the search size limit is exceeded'
              </message>
              <call function="'AnonSearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 4 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: Server Wide Size Limit 1000-->
          <testcase name="'Core: Search Size Limit: Server Wide Size Limit 1000'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL5: Change the server-wide search size limit to 1000'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit2.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: Server Wide Size Limit Not Exceeded -->
          <testcase name="'Core: Search Size Limit: Server Wide Size Limit Not Exceeded '">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL6: Check the response of OpenDS when an ldap search request is conducted with a search size limit defined by the server-wide parameter, ds-cfg-size-limit, and the search size limit is not exceeded'
              </message>
              <call function="'AnonSearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: Directory Manager Size Limit 5 -->
          <testcase name="'Core: Search Size Limit: Directory Manager Size Limit 5'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL7: Change the search size limit for cn=Directory Manager to 5'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit3.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: User Specific Size Limit Exceeded -->
          <testcase name="'Core: Search Size Limit: User Specific Size Limit Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL8: Check the response of OpenDS when an ldap search request is conducted with a user search size limit defined by the user-specific parameter, ds-rlim-size-limit, and the search size limit is exceeded'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 4 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: Size Limit Not Applicable  -->
          <testcase name="'Core: Search Size Limit: Size Limit Not Applicable'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL9: Check the response of OpenDS when an ldap search request is conducted with a user search size limit defined by the user-specific parameter, ds-rlim-size-limit, and the search is conducted as a bind to a different user'
              </message>
              <call function="'AnonSearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: Modify Directory Manager Limit -1 -->
          <testcase name="'Core: Search Size Limit: Modify Directory Manager Limit -1'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL10: Change the search size limit for cn=Directory Manager to -1'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_searchsizelimit4.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Size Limit: No Size Limit -->
          <testcase name="'Core: Search Size Limit: No Size Limit'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core SSzL11: Check the response of OpenDS when an ldap search request is conducted with a user search size limit defined as "unlimited" by the user-specific parameter, ds-rlim-size-limit, equal to -1 and the search is against 1150 entries'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'ou=People,o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'      : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
        </sequence>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/core/core_search_timelimit.xml
@@ -33,302 +33,310 @@
    <sequence>
      <script>
        CurrentTestPath['suite']='search-timelimit'
      </script>
      <block name="'search-timelimit'">
        <sequence>
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
            
      <call function="'testSuite_Preamble'"/>
      <!--- Check that DS started -->
      <call function="'isAlive'">
        { 'noOfLoops'        : 5 ,
          'noOfMilliSeconds' : 2000 }
      </call>
      <!--- Test Case : Search Time Limit: Time Limit Exceeded -->
      <testcase name="'Core: Search Time Limit: Time Limit Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL1: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined in the command line and the search time is exceeeded'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '-l 1' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 3 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: Time Limit Not Exceeded -->
      <testcase name="'Core: Search Time Limit: Time Limit Not Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL2: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined in the command line and the search time is not exceeed'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '-l 100' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
       <!--- Test Case : Search Time Limit: Server Wide Time Limit 1 -->
      <testcase name="'Core: Search Time Limit: Server Wide Time Limit 1'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL3: Change the server-wide search time limit to 1'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
          <call function="'testSuite_Preamble'"/>
    
      <!--- Test Case : Search Time Limit: Server Wide Time Limit Exceeded -->
      <testcase name="'Core: Search Time Limit: Server Wide Time Limit Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL4: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined by the server-wide parameter, ds-cfg-time-limit, and the search time limit is exceeded'
          </message>
          <call function="'AnonSearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 5 ,
              'noOfMilliSeconds' : 2000 }
          </call>
          <!--- Test Case : Search Time Limit: Time Limit Exceeded -->
          <testcase name="'Core: Search Time Limit: Time Limit Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL1: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined in the command line and the search time is exceeeded'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '-l 1' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 3 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Time Limit Not Exceeded -->
          <testcase name="'Core: Search Time Limit: Time Limit Not Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL2: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined in the command line and the search time is not exceeed'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '-l 100' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
           <!--- Test Case : Search Time Limit: Server Wide Time Limit 1 -->
          <testcase name="'Core: Search Time Limit: Server Wide Time Limit 1'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL3: Change the server-wide search time limit to 1'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Server Wide Time Limit Exceeded -->
          <testcase name="'Core: Search Time Limit: Server Wide Time Limit Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL4: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined by the server-wide parameter, ds-cfg-time-limit, and the search time limit is exceeded'
              </message>
              <call function="'AnonSearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 3 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Server Wide Time Limit 60 -->
          <testcase name="'Core: Search Time Limit: Server Wide Time Limit 60'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL5: Change the server-wide search time limit to 60'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit2.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Server Wide Time Limit Not Exceeded -->
          <testcase name="'Core: Search Time Limit: Server Wide Time Limit Not Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL6: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined by the server-wide parameter, ds-cfg-time-limit, and the search time limit is not exceeded'
              </message>
              <call function="'AnonSearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Directory Manager Time Limit 1 -->
          <testcase name="'Core: Search Time Limit: Directory Manager Time Limit 1'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL7: Change the search time limit for cn=Directory Manager to 1'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit3.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: User Specific Time Limit Exceeded -->
          <testcase name="'Core: Search Time Limit: User Specific Time Limit Exceeded'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL8: Check the response of OpenDS when an ldap search request is conducted with a user search time limit defined by the user-specific parameter, ds-rlim-time-limit, and the search time limit is exceeded'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult ,
                    'expected'   : 3 }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Time Limit Not Applicable -->
          <testcase name="'Core: Search Time Limit: Time Limit Not Applicable'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL9: Check the response of OpenDS when an ldap search request is conducted with a user search time limit defined by the user-specific parameter, ds-rlim-time-limit, and the search is conducted as a bind to a different user'
              </message>
              <call function="'AnonSearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: Directory Manager Time Limit 60 -->
          <testcase name="'Core: Search Time Limit: Directory Manager Time Limit 60'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL10: Change the search time limit for cn=Directory Manager to 60'
              </message>
              <call function="'addEntry'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit4.ldif' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : Search Time Limit: No Time Limit -->
          <testcase name="'Core: Search Time Limit: No Time Limit'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <message>
                 'Core STmL11: Check the response of OpenDS when an ldap search request is conducted with a user search time limit defined by the user-specific parameter ds-rlim-time-limit, equal to 60 and the search is conducted against 1150 entries'
              </message>
              <call function="'SearchObject'">
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
                  'dsFilter'         : 'objectclass=*' ,
                  'extraParams'    : '' }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 3 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: Server Wide Time Limit 60 -->
      <testcase name="'Core: Search Time Limit: Server Wide Time Limit 60'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL5: Change the server-wide search time limit to 60'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit2.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: Server Wide Time Limit Not Exceeded -->
      <testcase name="'Core: Search Time Limit: Server Wide Time Limit Not Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL6: Check the response of OpenDS when an ldap search request is conducted with a search time limit defined by the server-wide parameter, ds-cfg-time-limit, and the search time limit is not exceeded'
          </message>
          <call function="'AnonSearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: Directory Manager Time Limit 1 -->
      <testcase name="'Core: Search Time Limit: Directory Manager Time Limit 1'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL7: Change the search time limit for cn=Directory Manager to 1'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit3.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: User Specific Time Limit Exceeded -->
      <testcase name="'Core: Search Time Limit: User Specific Time Limit Exceeded'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL8: Check the response of OpenDS when an ldap search request is conducted with a user search time limit defined by the user-specific parameter, ds-rlim-time-limit, and the search time limit is exceeded'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult ,
                'expected'   : 3 }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: Time Limit Not Applicable -->
      <testcase name="'Core: Search Time Limit: Time Limit Not Applicable'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL9: Check the response of OpenDS when an ldap search request is conducted with a user search time limit defined by the user-specific parameter, ds-rlim-time-limit, and the search is conducted as a bind to a different user'
          </message>
          <call function="'AnonSearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: Directory Manager Time Limit 60 -->
      <testcase name="'Core: Search Time Limit: Directory Manager Time Limit 60'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL10: Change the search time limit for cn=Directory Manager to 60'
          </message>
          <call function="'addEntry'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'entryToBeAdded'   : '%s/core/ldifs/mod_timelimit4.ldif' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <!--- Test Case : Search Time Limit: No Time Limit -->
      <testcase name="'Core: Search Time Limit: No Time Limit'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <message>
             'Core STmL11: Check the response of OpenDS when an ldap search request is conducted with a user search time limit defined by the user-specific parameter ds-rlim-time-limit, equal to 60 and the search is conducted against 1150 entries'
          </message>
          <call function="'SearchObject'">
            { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
              'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
              'dsBaseDN'         : 'o=core tests,dc=example,dc=com' ,
              'dsFilter'         : 'objectclass=*' ,
              'extraParams'    : '' }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <call function="'testSuite_Postamble'"/>
      </block>
    </sequence>
  </function>
opends/tests/functional-tests/testcases/core/core_setup.xml
@@ -31,70 +31,78 @@
  <function name="core_setup">
    <sequence>
     <sequence>
      <script>
        CurrentTestPath['suite']='setup'
      </script>
      <call function="'testSuite_Preamble'"/>
      <!--- Check that DS started -->
      <call function="'isAlive'">
        { 'noOfLoops'        : 5 ,
          'noOfMilliSeconds' : 2000 }
      </call>
      <!--- Test Case : Setup: Add required entries -->
      <testcase name="'Core: Setup: Add Core Entries'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <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' % STAGED_DATA_DIR }
          </call>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <block name="'setup'">
      
      <!--- Test Case : To add 1000 extra entries that are required for some of the Core Tests -->
      <testcase name="'Core: Setup: Add 1000 Core Entries'">
        <sequence>
          <call function="'testCase_Preamble'"/>
          <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' % STAGED_DATA_DIR }
          <script>
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <call function="'testSuite_Preamble'"/>
          <!--- Check that DS started -->
          <call function="'isAlive'">
            { 'noOfLoops'        : 5 ,
              'noOfMilliSeconds' : 2000 }
          </call>
          <!--- Test Case : Setup: Add required entries -->
          <testcase name="'Core: Setup: Add Core Entries'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <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' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <!--- Test Case : To add 1000 extra entries that are required for some of the Core Tests -->
          <testcase name="'Core: Setup: Add 1000 Core Entries'">
            <sequence>
              <call function="'testCase_Preamble'"/>
              <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' % STAGED_DATA_DIR }
              </call>
              <call function="'checktestRC'">
                  { 'returncode' : RC ,
                    'result'     : STAXResult }
              </call>
              <call function="'testCase_Postamble'"/>
            </sequence>
          </testcase>
          <call function="'testSuite_Postamble'"/>
          <call function="'checktestRC'">
              { 'returncode' : RC ,
                'result'     : STAXResult }
          </call>
          <call function="'testCase_Postamble'"/>
        </sequence>
      </testcase>
      <call function="'testSuite_Postamble'"/>
      </block>
    </sequence>
  </function>
Diff truncated after the above file
opends/tests/functional-tests/testcases/core/core_tf_filters.xml opends/tests/functional-tests/testcases/core/core_version_report.xml opends/tests/functional-tests/testcases/quickstart/quickstart.xml opends/tests/functional-tests/testcases/schema/schema.xml opends/tests/functional-tests/testcases/schema/schema_dynamic.xml opends/tests/functional-tests/testcases/schema/schema_rfc_tests.xml opends/tests/functional-tests/testcases/schema/schema_setup.xml opends/tests/functional-tests/testcases/security/account_activation/security_account_activation.xml opends/tests/functional-tests/testcases/security/auth_pwd_syntax/security_auth_pwd_syntax.xml opends/tests/functional-tests/testcases/security/bind_no_pwd/security_bind_no_pwd.xml opends/tests/functional-tests/testcases/security/jks/security_jks.xml opends/tests/functional-tests/testcases/security/jks/security_setup_jks.xml opends/tests/functional-tests/testcases/security/pkcs12/security_pkcs12.xml opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml opends/tests/functional-tests/testcases/security/pwd_policy_root/security_pwd_policy_root.xml opends/tests/functional-tests/testcases/security/pwd_storage/security_pwd_storage.xml opends/tests/functional-tests/testcases/security/pwd_validator/security_pwd_validator.xml opends/tests/functional-tests/testcases/security/sasl/security_sasl.xml opends/tests/functional-tests/testcases/security/security.xml opends/tests/functional-tests/testcases/setup/setup.xml