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

maudj
16.05.2008 6563d84fb80464f7724e5d58b6cc3d1bd89cd829
add tags for test spec docs and change function - maudj
7 files modified
1571 ■■■■ changed files
opends/tests/functional-tests/testcases/security/pwd_validator/security_attribute_value.xml 419 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_character_set.xml 295 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_dictionary.xml 178 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_history_based.xml 380 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_mult_validators.xml 224 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_pwd_validator.xml 40 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_setup_pwd_validator.xml 35 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/pwd_validator/security_attribute_value.xml
@@ -32,13 +32,41 @@
  <function name="attribute_value">
      <sequence>
        <!--- Test Suite information
         #@TestSuiteName       Attribute Value
         #@TestSuitePurpose    Reject Passwords Matching Attribute Value
         #@TestSuiteGroup      Attribute Value
         #@TestScript          security_attribute_value.xml
        -->
        <!--- Define default value for basedn -->
        <script>
        basedn1 = 'ou=people,ou=password tests,'
        basedn = '%s o=Pwd Validator Tests,dc=example,dc=com' % basedn1
        val = 'cn=Attribute Value,cn=Password Validators,cn=config'
        msg = 'Security: Pwd Validator: Attribute Value:'
        </script>
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value Preamble
          #@TestIssue        none
          #@TestPurpose      Attribute Value Preamble
          #@TestPreamble     none
          #@TestStep         Check ds-cfg-enabled exists
          #@TestStep         Admin Enabling Validator Attribute Value
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName('Attribute Value: Preamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: Preamble Step 1. Checking existence of ds-cfg-password-validator-length'
            '%s Preamble Step 1. Check existence of ds-cfg-enabled' % msg
            </message>
            <call function="'compareEntry'">
@@ -47,11 +75,11 @@
                'dsInstanceDn'       : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'     : DIRECTORY_INSTANCE_PSWD ,
                'attrToBeCompared'   : 'ds-cfg-enabled:true',
                'entryToBeCompared'  : 'cn=Attribute Value,cn=Password Validators,cn=config' }
                'entryToBeCompared'  : val }
            </call>
            <message>
               'Security: Pwd Validator: Attribute Value: Preamble Step 2. Admin Enabling Validator'
            '%s Preamble Step 2. Admin Enabling Validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -69,11 +97,22 @@
          </sequence>
        </testcase>
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: add attribute sn
          #@TestIssue        none
          #@TestPurpose      add attribute sn
          #@TestPreamble     none
          #@TestStep         add attribute sn with modifyPwdValidator
          #@TestPostamble    none
          #@TestResult       Success if the test is PASS
        -->
        <testcase name="getTestCaseName('Attribute Value: add attribute sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Attribute Value: add attribute sn'
            '%s add attribute sn' % msg
            </message>
            
            <call function="'modifyPwdValidator'">
@@ -91,39 +130,50 @@
            
          </sequence>
        </testcase>
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password to sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to sn
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to sn Miller RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        
        <testcase name="getTestCaseName('Attribute Value: user modifying password to sn')">
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to sn'
            '%s user modifying password to sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Miller' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'Miller' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'Miller' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -132,38 +182,50 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: user modifying password to lower case sn')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password
                             to lower case sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to lower case sn
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to lower case sn
                             miller RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to lower case sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to lower case sn'
            '%s user modifying password to lower case sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'miller' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller,%s' % basedn ,
                    'dsNewPassword'          : 'miller' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'miller' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -171,39 +233,52 @@
            
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: user modifying password to upper case sn')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password
                             to upper case sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to upper case sn
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to upper case sn
                             MILLER RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to upper case sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to upper case sn'
            '%s user modifying password to upper case sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'MILLER' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'MILLER' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'MILLER' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -211,39 +286,52 @@
            
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: user modifying password to mixed case sn')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value : user modifying password
                             to mixed case sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to mixed case sn
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to mixed case sn
                             mIlLeR RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to mixed case sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to mixed case sn'
            '%s user modifying password to mixed case sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'mIlLeR' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'mIlLeR' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'mIlLeR' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -252,38 +340,51 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: user modifying password to reversed upper case sn')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value : user modifying password to
                             reversed upper case sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to reversed upper case sn
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to reversed upper
                             case sn  RELLIM RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to reversed upper case sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to reversed upper case sn'
            '%s user modifying password to reversed upper case sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'RELLIM' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn,
                    'dsNewPassword'          : 'RELLIM' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn,
                'dsInstancePswd'   : 'RELLIM' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -292,11 +393,22 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: add attribute roomnumber')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: add attribute roomnumber
          #@TestIssue        none
          #@TestPurpose      add attribute roomnumber
          #@TestPreamble     none
          #@TestStep         add attribute roomnumber with modifyPwdValidator
          #@TestPostamble    none
          #@TestResult       Success if the test is PASS
        -->
 <testcase name="getTestCaseName('Attribute Value: add attribute roomnumber')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Attribute Value: add attribute roomnumber'
            '%s add attribute roomnumber' % msg
            </message>
            
            <call function="'modifyPwdValidator'">
@@ -315,38 +427,51 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Attribute Value: user modifying password to roomnumber')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password to
                             roomnumber
          #@TestIssue        none
          #@TestPurpose      user modifying password to roomnumber
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to roomnumber 4135
                             RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to roomnumber')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to roomnumber'
            '%s user modifying password to roomnumber' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : '4135' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : '4135' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'Miller' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -355,38 +480,49 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: user modifying password to sn 2')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password to sn 2
          #@TestIssue        none
          #@TestPurpose      user modifying password to sn 2
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to sn Miller RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to sn 2')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to sn 2'
            '%s user modifying password to sn 2' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Miller' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'Miller' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password 2'
            '%s user binding with invalid password 2' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'Miller' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -395,7 +531,19 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: disable reverse match-attribute')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: disable reverse match-attribute
          #@TestIssue        none
          #@TestPurpose      disable reverse match-attribute
          #@TestPreamble     none
          #@TestStep         set test-reversed-password to false
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: disable reverse match-attribute')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
@@ -418,33 +566,46 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Attribute Value: user modifying password to reverse sn')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password to reverse
                             sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to sn
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to reverse sn
                             rellim RC 0
          #@TestStep         user dmiller binding with good password rellim RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to reverse sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to reverse sn'
            '%s user modifying password to reverse sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'gosling' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'rellim' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'rellim' ,  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with good password'
            '%s user binding with good password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'rellim' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -456,38 +617,49 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Attribute Value: user modifying password to sn 3')">
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: user modifying password to sn 3
          #@TestIssue        none
          #@TestPurpose      user modifying password to sn 3
          #@TestPreamble     none
          #@TestStep         user dmiller modifying password to sn Miller RC 53
          #@TestStep         user dmiller binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName
        ('Attribute Value: user modifying password to sn 3')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to sn 3'
            '%s user modifying password to sn 3' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'rellim' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Miller' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'Miller' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user binding with invalid password 3'
            '%s user binding with invalid password 3' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'Miller' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -497,11 +669,24 @@
        </testcase>
        
        <!--- Test Case information
          #@TestMarker       Attribute Value
          #@TestName         Attribute Value: Postamble
          #@TestIssue        none
          #@TestPurpose      Postamble
          #@TestPreamble     none
          #@TestStep         Step 1. Admin Resetting password-validator
          #@TestStep         Step 2. User Changing Password Miller RC 0
          #@TestStep         Step 3. User Searching With Password Miller RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 2 test are PASS
        -->
        <testcase name="getTestCaseName('Attribute Value: Postamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Attribute Value: Postamble Step 1. Admin Resetting Maximum Pwd Length'
            '%s Postamble Step 1. Admin Resetting password-validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -517,28 +702,26 @@
            
            <!--- User Change Password -->
            <message>
               'Security: Pwd Validator: Attribute Value: Postamble Step 2. User Changing Password'
            '%s Postamble Step 2. User Changing Password' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                    'dsInstancePswd'         : 'rellim' ,
                    'DNToModify'             : 'uid=dmiller, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Miller' ,
                    'changetype'             : 'replace' }
                    'dsAuthzID'              : 'dn:uid=dmiller, %s' % basedn ,
                    'dsNewPassword'          : 'Miller' , }
            </call>
            
            <message>
               'Security: Pwd Validator: Attribute Value: Postamble Step 3. User Searching With Password'
            '%s Postamble Step 3. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'Miller' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
opends/tests/functional-tests/testcases/security/pwd_validator/security_character_set.xml
@@ -32,13 +32,41 @@
  <function name="character_set">
      <sequence>
        <!--- Test Suite information
         #@TestSuiteName       Character Set
         #@TestSuitePurpose    Reject Passwords Matching Character set
         #@TestSuiteGroup      Character Set
         #@TestScript          security_character_set.xml
        -->
        <!--- Define default value for basedn -->
        <script>
        basedn1 = 'ou=people,ou=password tests,'
        basedn = '%s o=Pwd Validator Tests,dc=example,dc=com' % basedn1
        val = 'cn=Character Set,cn=Password Validators,cn=config'
        msg = 'Security: Pwd Validator: Character Set:'
        </script>
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set Preamble
          #@TestIssue        none
          #@TestPurpose      Character Set Preamble
          #@TestPreamble     none
          #@TestStep         Check ds-cfg-enabled exists
          #@TestStep         Admin Enabling Validator Character Set
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName('Character Set: Preamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Character Set: Preamble Step 1. Checking existence of ds-cfg-password-validator-length'
            '%s Preamble Step 1. Check ds-cfg-enabled exists' % msg
            </message>
            <call function="'compareEntry'">
@@ -47,11 +75,11 @@
                'dsInstanceDn'       : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'     : DIRECTORY_INSTANCE_PSWD ,
                'attrToBeCompared'   : 'ds-cfg-enabled:true',
                'entryToBeCompared'  : 'cn=Character Set,cn=Password Validators,cn=config' }
                'entryToBeCompared'  : val }
            </call>
            <message>
               'Security: Pwd Validator: Character Set: Preamble Step 2. Admin Enabling Validator'
            '%s Preamble Step 2. Admin Enabling Validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -69,38 +97,50 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Character Set: user modifying password to string with all letters')">
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with all letters
          #@TestIssue        none
          #@TestPurpose      Pwd with all letters
          #@TestPreamble     none
          #@TestStep         user modifying password to string with all letters
                             RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Character Set: user modifying password to string with all letters')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to string with all letters'
            '%s user modifying password to string with all letters' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn,
                    'dsInstancePswd'         : 'ruling' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'newruling' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn,
                    'dsNewPassword'          : 'newruling' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn,
                'dsInstancePswd'   : 'newruling' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -109,38 +149,50 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Character Set: user modifying password to string with all numbers')">
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with all numbers
          #@TestIssue        none
          #@TestPurpose      Pwd with all numbers
          #@TestPreamble     none
          #@TestStep         user modifying password to string with all numbers
                             RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Character Set: user modifying password to string with all numbers')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to string with all numbers'
            '%s user modifying password to string with all numbers' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn,
                    'dsInstancePswd'         : 'ruling' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : '123456789' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn,
                    'dsNewPassword'          : '123456789' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn,
                'dsInstancePswd'   : '123456789' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -149,11 +201,26 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Character Set: change letter characters')">
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with all letters
          #@TestIssue        none
          #@TestPurpose      Pwd with all letters
          #@TestPreamble     none
          #@TestStep         modifyPwdValidator character-set to 3:0123456789
          #@TestStep         modifyPwdValidator character-set to
                             1:ABCDEFGHIJKLMNOPQRSTUVWXYZ
          #@TestStep         modifyPwdValidator character-set to
                             3:abcdefghijklmnopqrstuvwxyz
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
   <testcase name="getTestCaseName('Character Set: change letter characters')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Attribute Value: add attribute sn'
            'Security: Pwd Validator: Character Set: change letter characters'
            </message>
            
            <call function="'modifyPwdValidator'">
@@ -194,38 +261,50 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Character Set: user modifying password to string with all letters 2')">
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with just letters
          #@TestIssue        none
          #@TestPurpose      Pwd with just letters
          #@TestPreamble     none
          #@TestStep         user modifying password to string with just letters
                             RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
      ('Character Set: user modifying password to string with just letters 2')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to string with all letters 2'
            '%s user modifying password to string with just letters 2' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn,
                    'dsInstancePswd'         : 'ruling' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'newruling' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn,
                    'dsNewPassword'          : 'newruling' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn,
                'dsInstancePswd'   : 'newruling' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -234,38 +313,50 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Character Set: user modifying password to string with all numbers 2')">
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with just numbers
          #@TestIssue        none
          #@TestPurpose      Pwd with just numbers
          #@TestPreamble     none
          #@TestStep         user modifying password to string with just numbers
                             RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
     ('Character Set: user modifying password to string with just numbers 2')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to string with all numbers 2'
            '%s user modifying password to string with just numbers 2' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn,
                    'dsInstancePswd'         : 'ruling' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : '123456789' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn,
                    'dsNewPassword'          : '123456789' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn ,
                'dsInstancePswd'   : '123456789' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -274,33 +365,44 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Character Set: user modifying password to valid string')">
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with a valid string
          #@TestIssue        none
          #@TestPurpose      Pwd with a valid string
          #@TestPreamble     none
          #@TestStep         user modifying password to a valid string RC 0
          #@TestStep         user binding with valid password RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Character Set: user modifying password to valid string')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to valid string'
            '%s user modifying password to valid string' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn ,
                    'dsInstancePswd'         : 'ruling' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Newruling123' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn ,
                    'dsNewPassword'          : 'Newruling123' ,  }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: user binding with valid password'
            '%s user binding with valid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn ,
                'dsInstancePswd'   : 'Newruling123' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -312,11 +414,23 @@
          </sequence>
        </testcase>
        
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Disable Validator
          #@TestIssue        none
          #@TestPurpose      Disbale Validator
          #@TestPreamble     none
          #@TestStep         reset password-validator RC 0
          #@TestStep         set propertyName Character-Set to false
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName('Character Set: disable validator')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Attribute Value: add attribute sn'
               'Security: Pwd Validator: Character Set: disable validator'
            </message>
            
            <call function="'modifyPwdPolicy'">
@@ -345,34 +459,44 @@
          </sequence>
        </testcase>
        
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Pwd with a valid string 2
          #@TestIssue        none
          #@TestPurpose      Pwd with a valid string 2
          #@TestPreamble     none
          #@TestStep         user modifying password to a valid string RC 0
          #@TestStep         user binding with valid password RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        
        <testcase name="getTestCaseName('Character Set: user modifying password to valid string 2')">
        <testcase name="getTestCaseName
        ('Character Set: user modifying password to valid string 2')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Attribute Value: user modifying password to valid string 2'
            '%s user modifying password to valid string 2' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn,
                    'dsInstancePswd'         : 'Newruling123' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'newruling' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn,
                    'dsNewPassword'          : 'newruling' }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: user binding with valid password'
            '%s user binding with valid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn,
                'dsInstancePswd'   : 'newruling' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -384,11 +508,24 @@
          </sequence>
        </testcase>
        
        <!--- Test Case information
          #@TestMarker       Character Set
          #@TestName         Character Set : Postamble
          #@TestIssue        none
          #@TestPurpose      Postamble
          #@TestPreamble     none
          #@TestStep         remove password-validator:Character Set
          #@TestStep         User Changing Password with just letters
          #@TestStep         User Searching Password with just letters
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName('Character Set: Postamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Character Set: Postamble Step 1. Admin Resetting Maximum Pwd Length'
            '%s Postamble Step 1. Admin Resetting password-validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -404,28 +541,26 @@
            
            <!--- User Change Password -->
            <message>
               'Security: Pwd Validator: Character Set: Postamble Step 2. User Changing Password'
            '%s Postamble Step 2. User Changing Password' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=gfarmer,%s' % basedn,
                    'dsInstancePswd'         : 'newruling' ,
                    'DNToModify'             : 'uid=gfarmer, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'newnewruling' ,
                    'changetype'             : 'replace' }
                    'dsAuthzID'              : 'dn:uid=gfarmer, %s' % basedn,
                    'dsNewPassword'          : 'newnewruling'  }
            </call>
            
            <message>
               'Security: Pwd Validator: Character Set: Postamble Step 3. User Searching With Password'
            '%s Postamble Step 3. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn,
                'dsInstancePswd'   : 'newnewruling' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
opends/tests/functional-tests/testcases/security/pwd_validator/security_dictionary.xml
@@ -32,13 +32,41 @@
  <function name="dictionary">
      <sequence>
        <!--- Test Suite information
         #@TestSuiteName       Dictionary
         #@TestSuitePurpose    Reject Passwords Matching Dictionary
         #@TestSuiteGroup      Dictionary
         #@TestScript          security_dictionary.xml
        -->
        <!--- Define default value for basedn -->
        <script>
        basedn1 = 'ou=people,ou=password tests,'
        basedn = '%s o=Pwd Validator Tests,dc=example,dc=com' % basedn1
        msg = 'Security: Pwd Validator: Dictionary:'
        </script>
        <!--- Test Case information
          #@TestMarker       Dictionary
          #@TestName         Dictionary: Preamble
          #@TestIssue        none
          #@TestPurpose      Preamble Enabling Dictionary Validator
          #@TestPreamble     none
          #@TestStep         Admin Enabling Dictionary modifyPwdValidator
          #@TestStep         Admin Enabling Validator modifyPwdPolicy
                             password-validator:Dictionary
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName('Dictionary: Preamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Dictionary: Preamble - Admin Enabling Dictionary'
            '%s Preamble - Admin Enabling Dictionary' % msg
            </message>
            <call function="'modifyPwdValidator'">
@@ -53,7 +81,7 @@
            </call>
            
            <message>
               'Security: Pwd Validator: Dictionary: Preamble - Admin Enabling Validator'
            '%s Preamble - Admin Enabling Validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -71,38 +99,52 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Dictionary: user modifying password to string with all letters')">
        <!--- Test Case information
          #@TestMarker       Dictionary
          #@TestName         Dictionary: user modifying password to a
                             dictionary letter string
          string with all letters
          #@TestIssue        none
          #@TestPurpose      dictionary string with all letters
          #@TestPreamble     none
          #@TestStep         user modifying password to string with all letters
                             matching a dictionary word zymochemistry RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Dictionary: user modifying password to string with all letters')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Dictionary: user modifying password to string with all letters'
            '%s user modifying password to string with all letters' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=abergin,%s' % basedn,
                    'dsInstancePswd'         : 'inflict' ,
                    'DNToModify'             : 'uid=abergin, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'zymochemistry' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=abergin, %s' % basedn,
                    'dsNewPassword'          : 'zymochemistry' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Dictionary: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=abergin,%s' % basedn,
                'dsInstancePswd'   : 'zymochemistry' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -111,38 +153,51 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Dictionary: Using Using Reverse Password')">
        <!--- Test Case information
          #@TestMarker       Dictionary
          #@TestName         Dictionary: user modifying password to a Reverse
                             password
          #@TestIssue        none
          #@TestPurpose      dictionary string with reverse password
                             (set to true by default)
          #@TestPreamble     none
          #@TestStep         user modifying password to a reverse password
                             from inflict to tcilfni RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
 <testcase name="getTestCaseName('Dictionary: Using Using Reverse Password')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Dictionary: user modifying password to reverse word'
            '%s user modifying password to reverse password' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=abergin,%s' % basedn,
                    'dsInstancePswd'         : 'inflict' ,
                    'DNToModify'             : 'uid=abergin, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sbbad' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=abergin, %s' % basedn ,
                    'dsNewPassword'          : 'tcilfni' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Dictionary: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'sbbad' ,
                'dsInstanceDn'     : 'uid=abergin,%s' % basedn ,
                'dsInstancePswd'   : 'tcilfni' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -151,7 +206,22 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Dictionary: Disable Reverse Password')">
        <!--- Test Case information
          #@TestMarker       Dictionary
          #@TestName         Dictionary: Disable Reverse Password
          #@TestIssue        none
          #@TestPurpose      Disable Reverse Password and test
          #@TestPreamble     none
          #@TestStep         Disable Reverse Password set test-reversed-password
                             to false
          #@TestStep         user modifying password to a reverse password
                             from inflict to tcilfni RC 0
          #@TestStep         user binding with valid password RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
<testcase name="getTestCaseName('Dictionary: Disable Reverse Password')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
@@ -177,34 +247,32 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Dictionary: Using Using Reverse Password 2')">
<testcase name="getTestCaseName('Dictionary: Using Reverse Password 2')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Dictionary: user modifying password to reverse word 2'
            '%s user modifying password to reverse password 2' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=abergin,%s' % basedn,
                    'dsInstancePswd'         : 'inflict' ,
                    'DNToModify'             : 'uid=abergin, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sbbad' ,
                    'changetype'             : 'replace' }
                    'dsAuthzID'              : 'dn:uid=abergin, %s' % basedn ,
                    'dsNewPassword'          : 'tcilfni'  }
            </call>
            <message>
               'Security: Pwd Validator: Dictionary: user binding with valid password'
            '%s user binding with valid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstancePswd'   : 'sbbad' ,
                'dsInstanceDn'     : 'uid=abergin,%s' % basedn ,
                'dsInstancePswd'   : 'tcilfni' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' }
@@ -219,11 +287,25 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Dictionary: Postamble')">
        <!--- Test Case information
          #@TestMarker       Dictionary
          #@TestName         Dictionary: Postamble
          #@TestIssue        none
          #@TestPurpose      Postamble Disabling Dictionary Validator
          #@TestPreamble     none
          #@TestStep         Admin Disabling Validator modifyPwdPolicy
                             remove password-validator:Dictionary
          #@TestStep         User Changing Password with zymochemistry RC 0
          #@TestStep         User Searching with valid Password RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
         <testcase name="getTestCaseName('Dictionary: Postamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Dictionary: Postamble Step 1. Admin Resetting Maximum Pwd Length'
            '%s Postamble Step 1. Admin  Disabling Validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -239,28 +321,26 @@
            
            <!--- User Change Password -->
            <message>
               'Security: Pwd Validator: Dictionary: Postamble Step 2. User Changing Password'
            '%s Postamble Step 2. User Changing Password' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstancePswd'         : 'sbbad' ,
                    'DNToModify'             : 'uid=abergin, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'zymochemistry' ,
                    'changetype'             : 'replace' }
                    'dsInstanceDn'           : 'dn:uid=abergin,%s' % basedn ,
                    'dsInstancePswd'         : 'tcilfni' ,
                    'dsAuthzID'              : 'dn:uid=abergin, %s' % basedn,
                    'dsNewPassword'          : 'zymochemistry'  }
            </call>
            
            <message>
               'Security: Pwd Validator: Dictionary: Postamble Step 3. User Searching With Password'
            '%s Postamble Step 3. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=abergin,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=abergin,%s' % basedn ,
                'dsInstancePswd'   : 'zymochemistry' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
opends/tests/functional-tests/testcases/security/pwd_validator/security_history_based.xml
@@ -33,12 +33,38 @@
      <sequence>
        <!--- Test Suite information
         #@TestSuiteName       History based
         #@TestSuitePurpose    Reject Passwords looking in the History Base
         #@TestSuiteGroup      History Based
         #@TestScript          security_history_based.xml
        -->
        <!--- Define default value for basedn -->
        <script>
        basedn1 = 'ou=people,ou=password tests,'
        basedn = '%s o=Pwd Validator Tests,dc=example,dc=com' % basedn1
        msg = 'Security: Pwd Validator: History Based:'
        </script>
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: Preamble
          #@TestIssue        none
          #@TestPurpose      Preamble Enabling History Based Validator
          #@TestPreamble     none
          #@TestStep         Admin Enabling History Based Validator set
                             password-history-count to 3
          #@TestPostamble    none
          #@TestResult       Success if the test is PASS
        -->
        <testcase name="getTestCaseName('History Based: Preamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: History Based: Preamble - Admin Enabling Validator'
            '%s Preamble - Admin Enabling Validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -55,82 +81,117 @@
            
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('History Based: user modifying password 1')">
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: user modify password 1
          #@TestIssue        none
          #@TestPurpose      user modify password 1
          #@TestPreamble     none
          #@TestStep         user modify password 1 from sprain to sprainone
                             RC 0
          #@TestStep         user modify password back to old password sprain
                             RC 53
          #@TestStep         user binding with password 1 sprainone RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
<testcase name="getTestCaseName('History Based: user modifying password 1')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password 1'
            '%s user modifying password 1' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprain' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprainone' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'sprainone' }
            </call>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password back to old password'
            '%s user modifying password back to old password' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainone' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprain' ,
                    'changetype'             : 'replace'  ,
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'sprain' ,
                    'expectedRC'             : 53 }
            </call>
            
        <script>
              knownIssue(3270)
            </script>
            <message>
               'Security: Pwd Validator: History Based: user binding with password 1'
            '%s user binding with password 1' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=scarter,%s' % basedn,
                'dsInstancePswd'   : 'sprainone' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' }
            </call>
            <script>
              knownIssue(3270)
            </script>
            <call function="'testCase_Postamble'"/>
            
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('History Based: user modifying password 2')">
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: user modifying password 2
          #@TestIssue        none
          #@TestPurpose      user modifying password 2
          #@TestPreamble     none
          #@TestStep         user modify password from sprainone to spraintwo
                             RC 0
          #@TestStep         user modify password back to old passwords sprain
                             and sprainone RC 53
          #@TestStep         user binding with password 2 spraintwo RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
<testcase name="getTestCaseName('History Based: user modifying password 2')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password 2'
            '%s user modifying password 2' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainone' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'spraintwo' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'spraintwo'  }
            </call>
            <script>
              knownIssue(3270)
            </script>
            <message>
               'Security: Pwd Validator: History Based: user modifying password back to old passwords'
            '%s user modifying password back to old passwords' % msg
            </message>
            <script>
@@ -138,59 +199,82 @@
            </script>
            
            <iterate var="pwds" in="modify_pwds" indexvar="index">
              <call function="'modifyAnAttribute'">
              <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'spraintwo' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : '%s' % pwds ,
                    'changetype'             : 'replace'  ,
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : '%s' % pwds ,
                    'expectedRC'             : 53 }
              </call>
            </iterate>
            <script>
              knownIssue(3270)
            </script>
            <message>
               'Security: Pwd Validator: History Based: user binding with password 2'
            '%s user binding with password 2' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=scarter,%s' % basedn ,
                'dsInstancePswd'   : 'spraintwo' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' }
            </call>
            <script>
              knownIssue(3270)
            </script>
            <call function="'testCase_Postamble'"/>
            
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('History Based: user modifying password 3')">
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: user modifying password 3
          #@TestIssue        none
          #@TestPurpose      user modifying password 3
          #@TestPreamble     none
          #@TestStep         user modify password from spraintwo to sprainthree
                             RC 0
          #@TestStep         user modify password back to old passwords sprain
                             sprainone and spraintwo RC 53
          #@TestStep         user binding with password 3 sprainthree RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
<testcase name="getTestCaseName('History Based: user modifying password 3')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password 3'
            '%s user modifying password 3' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'spraintwo' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprainthree' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'sprainthree'  }
            </call>
            <script>
              knownIssue(3270)
            </script>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password back to old passwords'
            '%s user modifying password back to old passwords' % msg
            </message>
            <script>
@@ -198,59 +282,85 @@
            </script>
            
            <iterate var="pwds" in="modify_pwds" indexvar="index">
              <call function="'modifyAnAttribute'">
              <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainthree' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : '%s' % pwds ,
                    'changetype'             : 'replace'  ,
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : '%s' % pwds ,
                    'expectedRC'             : 53 }
              </call>
            </iterate>
            <script>
              knownIssue(3270)
            </script>
            
            <message>
               'Security: Pwd Validator: History Based: user binding with password 3'
            '%s user binding with password 3' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=scarter,%s' % basedn,
                'dsInstancePswd'   : 'sprainthree' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base' }
            </call>
            <script>
              knownIssue(3270)
            </script>
            <call function="'testCase_Postamble'"/>
            
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('History Based: user modifying password 4')">
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: user modifying password 4
          #@TestIssue        none
          #@TestPurpose      user modifying password 4
          #@TestPreamble     none
          #@TestStep         user modify password from sprainthree to sprainfour
                             RC 0
          #@TestStep         user modify password back to last 3 passwords
                             sprainone spraintwo  and sprainthree RC 53
          #@TestStep         user modify password back to  original password
                             sprain RC 0
          #@TestStep         user binding with original password sprain RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 4 tests are PASS
        -->
<testcase name="getTestCaseName('History Based: user modifying password 4')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password 4'
            '%s user modifying password 4' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainthree' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprainfour' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn ,
                    'dsNewPassword'          : 'sprainfour'   }
            </call>
            <script>
              knownIssue(3270)
            </script>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password back to old passwords'
            '%s user modifying password back to old passwords' % msg
            </message>
            <script>
@@ -258,42 +368,46 @@
            </script>
            
            <iterate var="pwds" in="modify_pwds" indexvar="index">
              <call function="'modifyAnAttribute'">
              <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainfour' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : '%s' % pwds ,
                    'changetype'             : 'replace'  ,
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : '%s' % pwds ,
                    'expectedRC'             : 53 }
              </call>
            </iterate>
            
            <script>
              knownIssue(3270)
            </script>
            <message>
               'Security: Pwd Validator: History Based: user modifying password to original one'
            '%s user modifying password to original one' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn ,
                    'dsInstancePswd'         : 'sprainfour' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprain' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'sprain'   }
            </call>
            <script>
              knownIssue(3270)
            </script>
            <message>
               'Security: Pwd Validator: History Based: user binding with original password'
            '%s user binding with original password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=scarter,%s' % basedn,
                'dsInstancePswd'   : 'sprain' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -304,13 +418,25 @@
            
          </sequence>
        </testcase>
         <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: Modify password history duration
          #@TestIssue        none
          #@TestPurpose      user modifying password history duration
          #@TestPreamble     none
          #@TestStep         set password-history-duration to 10 s
          #@TestPostamble    none
          #@TestResult       Success if the test is PASS
        -->
        
        <testcase name="getTestCaseName('History Based: Modify password history duration')">
        <testcase name="getTestCaseName
        ('History Based: Modify password history duration')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: History Based: Admin modifying password history duration'
            '%s Admin modifying password history duration' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -328,7 +454,25 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('History Based: user modifying password after duration')">
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: user modifying password after
                             duration
          #@TestIssue        none
          #@TestPurpose      The "Password History Duration" property specifies
                             the maximum length of time that a formerly-used
                             password should remain in the user's password
                             history
          #@TestPreamble     none
          #@TestStep         Sleep of 15 seconds
          #@TestStep         user modifying password after duration RC 0
          #@TestStep         user binding with password after duration RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('History Based: user modifying password after duration')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
@@ -341,28 +485,26 @@
            </call>
            
            <message>
               'Security: Pwd Validator: History Based: user modifying password after duration'
            '%s user modifying password after duration' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprain' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprainone' ,
                    'changetype'             : 'replace'  }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn ,
                    'dsNewPassword'          : 'sprainone' , }
            </call>
            
            <message>
               'Security: Pwd Validator: History Based: user binding with password after duration'
            '%s user binding with password after duration' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=scarter,%s' % basedn,
                'dsInstancePswd'   : 'sprainone' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -374,11 +516,25 @@
          </sequence>
        </testcase>
        
        <!--- Test Case information
          #@TestMarker       History Based
          #@TestName         History Based: Postamble
          #@TestIssue        none
          #@TestPurpose      Postamble Admin resetting password history duration
                             and count
          #@TestPreamble     none
          #@TestStep         reset password-history-duration to 0 d
          #@TestStep         reset password-history-count to 0
          #@TestStep         user modifying password back to old passwords RC 0
          #@TestStep         user Searching With Password sprain RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 3 tests are PASS
        -->
        <testcase name="getTestCaseName('History Based: Postamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: History Based: Postamble Step 1. Admin resetting password history duration'
            '%s Postamble Step 1. Admin resets password history duration' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -392,7 +548,7 @@
            </call>
            
            <message>
               'Security: Pwd Validator: History Based: Postamble Step 2. Admin resetting password history count'
            '%s Postamble Step 2. Admin resetting password history count' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -407,50 +563,44 @@
            
            <!--- User Change Password -->
            <message>
               'Security: Pwd Validator: History Based: Postamble Step 3. user modifying password back to old passwords'
            '%s Postamble Step 3. user modify pwd back to old passwords' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainone' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'spraintwo' ,
                    'changetype'             : 'replace'   }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'spraintwo'  }
            </call>
            
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'spraintwo' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprainthree' ,
                    'changetype'             : 'replace'   }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn ,
                    'dsNewPassword'          : 'sprainthree'    }
            </call>
            
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=scarter,%s' % basedn,
                    'dsInstancePswd'         : 'sprainthree' ,
                    'DNToModify'             : 'uid=scarter, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'sprain' ,
                    'changetype'             : 'replace'   }
                    'dsAuthzID'              : 'dn:uid=scarter, %s' % basedn,
                    'dsNewPassword'          : 'sprain'    }
            </call>
            
            <message>
               'Security: Pwd Validator: History Based: Postamble Step 4. User Searching With Password'
            '%s Postamble Step 4. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=scarter,%s' % basedn,
                'dsInstancePswd'   : 'sprain' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
opends/tests/functional-tests/testcases/security/pwd_validator/security_mult_validators.xml
@@ -33,12 +33,44 @@
      <sequence>
                <!--- Test Suite information
         #@TestSuiteName       Multiple Validators
         #@TestSuitePurpose    Check Multiple Validators
         #@TestSuiteGroup      Multiple Validators
         #@TestScript          security_mult_validators.xml
        -->
        <!--- Define default value for basedn -->
        <script>
        basedn1 = 'ou=people,ou=password tests,'
        basedn = '%s o=Pwd Validator Tests,dc=example,dc=com' % basedn1
        msg = 'Security: Pwd Validator: Multiple Validators:'
        msg1 = '--set enabled:true  --set test-reversed-password:true '
        </script>
        <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: Preamble
          #@TestIssue        none
          #@TestPurpose      Preamble Enabling Multiple Validators
          #@TestPreamble     none
          #@TestStep         Admin Enabling one validator set password-validator
                             to Attribute Value
          #@TestStep         Admin creating a custom validator
                             Custom Attribute Value
          #@TestStep         Admin enabling custom validator
          #@TestStep         Admin enabling third validator set
                             password-validator to Repeated Characters
          #@TestPostamble    none
          #@TestResult       Success if the 4 tests are PASS
        -->
        <testcase name="getTestCaseName('Multiple Validators: Preamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Preamble Step 1. Admin enabling one validator'
            '%s Preamble Step 1. Admin enabling one validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -52,7 +84,7 @@
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Preamble Step 2. Admin creating a custom validator'
            '%s Preamble Step 2. Admin creating a custom validator' % msg
            </message>
            <call function="'dsconfig'">
@@ -60,15 +92,15 @@
              'dsInstancePort'       : DIRECTORY_INSTANCE_PORT ,
              'dsInstanceDn'         : DIRECTORY_INSTANCE_DN ,
              'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD ,
              'subcommand'           : 'create-password-validator' ,
              'subcommand'           : 'create-password-validator' ,
              'objectType'           : 'validator-name' ,
              'objectName'           : 'Custom Attribute Value',
              'optionsString'        : '--type attribute-value --set enabled:true  --set test-reversed-password:true ',
              'expectedRC'           : 0 }
              'optionsString'        : '--type attribute-value %s ' % msg1,
              'expectedRC'           : 0 }
            </call>          
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Preamble Step 3. Admin enabling custom validator'
            '%s Preamble Step 3. Admin enabling custom validator' % msg
            </message>
            <call function="'dsconfigSet'">
@@ -85,7 +117,7 @@
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Preamble Step 4. Admin enabling third validator'
            '%s Preamble Step 4. Admin enabling third validator' % msg
            </message>
            <call function="'dsconfigSet'">
@@ -106,11 +138,24 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Multiple Validators: add attribute sn to one validator')">
       <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: add attribute sn to one
                             validator
          #@TestIssue        none
          #@TestPurpose      add attribute sn to one validator
          #@TestPreamble     none
          #@TestStep         add attribute sn to one validator
          #@TestPostamble    none
          #@TestResult       Success if the test is PASS
        -->
        <testcase name="getTestCaseName
        ('Multiple Validators: add attribute sn to one validator')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Multiple Validators: add attribute sn to one validator'
            '%s add attribute sn to one validator' % msg
            </message>
            
            <call function="'modifyPwdValidator'">
@@ -129,38 +174,49 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Multiple Validators: user modifying password to sn')">
        <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: user modifying password to sn
          #@TestIssue        none
          #@TestPurpose      user modifying password to sn
          #@TestPreamble     none
          #@TestStep         user modifying password to sn RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Multiple Validators: user modifying password to sn')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: user modifying password to sn'
            '%s user modifying password to sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
            <call function="'ldapPasswordModifyWithScript'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=cschmith,%s' % basedn,
                    'dsInstancePswd'         : 'hypotenuse' ,
                    'DNToModify'             : 'uid=cschmith, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Schmith' ,
                    'changetype'             : 'replace' ,
                    'dsAuthzID'              : 'dn:uid=cschmith, %s' % basedn ,
                    'dsNewPassword'          : 'Schmith' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=cschmith,%s' % basedn,
                'dsInstancePswd'   : 'Schmith' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -169,11 +225,25 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Multiple Validators: add attribute givenName to custom validator')">
        <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: add attribute givenName
                             to custom validator
          #@TestIssue        none
          #@TestPurpose      add attribute givenName to custom validator
          #@TestPreamble     none
          #@TestStep         for the custom validator Custom Attribute Value
                             set match-attribute to givenName
          #@TestPostamble    none
          #@TestResult       Success if the test is PASS
        -->
        <testcase name="getTestCaseName
        ('Multiple Validators: add attribute givenName to custom validator')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Multiple Validators: add attribute sn to one validator'
            '%s add attribute sn to one validator' % msg
            </message>
            
            <call function="'modifyPwdValidator'">
@@ -192,38 +262,52 @@
          </sequence>
        </testcase>
        
        <testcase name="getTestCaseName('Multiple Validators: user modifying password to givenName')">
        <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: user modifying password to
                             givenName
          #@TestIssue        none
          #@TestPurpose      user modifying password to givenName
          #@TestPreamble     none
          #@TestStep         user modifying password to givenName RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Multiple Validators: user modifying password to givenName')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: user modifying password to givenName'
            '%s user modifying password to givenName' % msg
            </message>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=cschmith,%s' % basedn,
                    'dsInstancePswd'         : 'hypotenuse' ,
                    'DNToModify'             : 'uid=cschmith, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'DNToModify'             : 'uid=cschmith, %s' % basedn,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Chris' ,
                    'changetype'             : 'replace' ,
                    'changetype'             : 'replace' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn,
                'dsInstancePswd'   : 'Chris' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -232,38 +316,53 @@
          </sequence>
        </testcase>
        <testcase name="getTestCaseName('Multiple Validators: user modifying password to aaaaaa')">
        <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: user modifying password to
                             aaaaaa
          #@TestIssue        none
          #@TestPurpose      user modifying password to aaaaaa
          #@TestPreamble     none
          #@TestStep         user modifying password to aaaaaa RC 53
          #@TestStep         user binding with invalid password RC 49
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName
        ('Multiple Validators: user modifying password to aaaaaa')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: user modifying password to aaaaaa'
            '%s user modifying password to aaaaaa' % msg
            </message>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=cschmith,%s' % basedn,
                    'dsInstancePswd'         : 'hypotenuse' ,
                    'DNToModify'             : 'uid=cschmith, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'DNToModify'             : 'uid=cschmith, %s' % basedn ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'aaaaaa' ,
                    'changetype'             : 'replace' ,
                    'changetype'             : 'replace' ,
                    'expectedRC'             : 53  }
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: user binding with invalid password'
            '%s user binding with invalid password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                'dsInstancePswd'   : 'aaaaaa' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
                'extraParams'      : '-s base',
                'extraParams'      : '-s base',
                'expectedRC'       : 49 }
            </call>
@@ -272,11 +371,28 @@
          </sequence>
        </testcase>
        <!--- Test Case information
          #@TestMarker       Multiple Validators
          #@TestName         Multiple Validators: Postamble
          #@TestIssue        none
          #@TestPurpose      Postamble: Admin resetting pwd validator
          #@TestPreamble     none
          #@TestStep         Admin Resetting password-validator
          #@TestStep         User Changing Password to sn RC 0
          #@TestStep         User binding with valid password RC 0
          #@TestStep         User Changing Password to givenName RC 0
          #@TestStep         User binding with valid password RC 0
          #@TestStep         User Changing Password to aaaaaa RC 0
          #@TestStep         User binding with valid password RC 0
          #@TestPostamble    none
          #@TestResult       Success if the 2 tests are PASS
        -->
        <testcase name="getTestCaseName('Multiple Validators: Postamble')">
          <sequence>
            <call function="'testCase_Preamble'"/>
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 1. Admin Resetting Maximum Pwd Length'
            '%s Postamble Step 1. Admin Resetting password-validator' % msg
            </message>
            <call function="'modifyPwdPolicy'">
@@ -291,28 +407,28 @@
            
            <!--- User Change Password -->
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 2. User Changing Password'
            '%s Postamble Step 2. User Changing Password to sn' % msg
            </message>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=cschmith,%s' % basedn,
                    'dsInstancePswd'         : 'hypotenuse' ,
                    'DNToModify'             : 'uid=cschmith, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'DNToModify'             : 'uid=cschmith, %s' % basedn,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Schmith' ,
                    'changetype'             : 'replace' }
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 3. User Searching With Password'
            '%s Postamble Step 3. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=cschmith,%s' % basedn,
                'dsInstancePswd'   : 'Schmith' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -320,28 +436,28 @@
            </call>
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 4. User Changing Password'
            '%s Postamble Step 4. User Changing Password to givenName' % msg
            </message>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=cschmith,%s' % basedn,
                    'dsInstancePswd'         : 'Schmith' ,
                    'DNToModify'             : 'uid=cschmith, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'DNToModify'             : 'uid=cschmith, %s' % basedn,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'Chris' ,
                    'changetype'             : 'replace' }
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 5. User Searching With Password'
            '%s Postamble Step 5. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=cschmith,%s' % basedn,
                'dsInstancePswd'   : 'Chris' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
@@ -349,28 +465,28 @@
            </call>
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 6. User Changing Password'
            '%s Postamble Step 6. User Changing Password to aaaaaa' % msg
            </message>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                    'dsInstanceDn'           : 'uid=cschmith,%s' % basedn,
                    'dsInstancePswd'         : 'Chris' ,
                    'DNToModify'             : 'uid=cschmith, ou=People, ou=password tests,  o=Pwd Validator Tests, dc=example,dc=com' ,
                    'DNToModify'             : 'uid=cschmith, %s' % basedn,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'aaaaaa' ,
                    'changetype'             : 'replace' }
            </call>
            
            <message>
               'Security: Pwd Validator: Multiple Validators: Postamble Step 7. User Searching With Password'
            '%s Postamble Step 7. User Searching With Password' % msg
            </message>
            <call function="'SearchObject'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : 'uid=cschmith,ou=people,ou=password tests,o=Pwd Validator Tests,dc=example,dc=com' ,
                'dsInstanceDn'     : 'uid=cschmith,%s' % basedn,
                'dsInstancePswd'   : 'aaaaaa' ,
                'dsBaseDN'         : 'dc=example,dc=com' ,
                'dsFilter'         : 'objectclass=*'  ,
opends/tests/functional-tests/testcases/security/pwd_validator/security_pwd_validator.xml
@@ -36,13 +36,23 @@
      <block name="'pwd-validator'">
      
        <sequence>
          <!--- Test Group information
            #@TestGroupName          Security
            #@TestGroupPurpose       To test the security functionality.
            #@TestSubgroupName       Password Validator
          -->
          <script>
            if not CurrentTestPath.has_key('group'):
              CurrentTestPath['group']='security'
              CurrentTestPath['group']='security'
            CurrentTestPath['suite']=STAXCurrentBlock
          </script>
          <script>
          securityPath = '%s/testcases/security/pwd_validator' % TESTS_DIR
          </script>
        <call function="'testSuite_Preamble'"/>
@@ -53,51 +63,51 @@
                                  
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_setup_pwd_validator.xml' % (TESTS_DIR)"/>
            file="'%s/security_setup_pwd_validator.xml' % securityPath"/>
        <call function="'setup_pwd_validator'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_pwd_length.xml' % (TESTS_DIR)"/>
            file="'%s/security_pwd_length.xml' % securityPath"/>
        <call function="'pwd_length'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_attribute_value.xml' % (TESTS_DIR)"/>
            file="'%s/security_attribute_value.xml' % securityPath"/>
        <call function="'attribute_value'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_character_set.xml' % (TESTS_DIR)"/>
            file="'%s/security_character_set.xml' % securityPath"/>
        <call function="'character_set'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_history_based.xml' % (TESTS_DIR)"/>
            file="'%s/security_history_based.xml' % securityPath"/>
        <call function="'history_based'" />
        
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_similarity_based.xml' % (TESTS_DIR)"/>
            file="'%s/security_similarity_based.xml' % securityPath"/>
        <call function="'similarity_based'" />
        
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_dictionary.xml' % (TESTS_DIR)"/>
            file="'%s/security_dictionary.xml' % securityPath"/>
        <call function="'dictionary'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_unique_chars.xml' % (TESTS_DIR)"/>
            file="'%s/security_unique_chars.xml' % securityPath"/>
        <call function="'unique_chars'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_repeat_chars.xml' % (TESTS_DIR)"/>
            file="'%s/security_repeat_chars.xml' % securityPath"/>
        <call function="'repeat_chars'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_mult_validators.xml' % (TESTS_DIR)"/>
            file="'%s/security_mult_validators.xml' % securityPath"/>
        <call function="'mult_validators'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_skip_val_for_admins.xml' % (TESTS_DIR)"/>
            file="'%s/security_skip_val_for_admins.xml' % securityPath"/>
        <call function="'skip_val_for_admins'" />
        <import machine="STAF_LOCAL_HOSTNAME"
          file="'%s/testcases/security/pwd_validator/security_teardown_pwd_validator.xml' % (TESTS_DIR)"/>
            file="'%s/security_teardown_pwd_validator.xml' % securityPath"/>
        <call function="'teardown_pwd_validator'" />
opends/tests/functional-tests/testcases/security/pwd_validator/security_setup_pwd_validator.xml
@@ -32,8 +32,29 @@
  <function name="setup_pwd_validator">
      <sequence>
        <!--- Test Suite information
          #@TestSuiteName       setup Password Validator
          #@TestSuitePurpose    Setup for the Password Validator test suite.
          #@TestSuiteGroup      setup Password Validator
          #@TestScript          security_setup_pwd_validator.xml
        -->
        <script>
        path = '%s/security/pwd_validator' % logsRemoteDataDir
        </script>
        <!--- Test Case information
          #@TestMarker          setup Password Validator
          #@TestName            setup: Add Initials Entries
          #@TestIssue           none
          #@TestPurpose         Add Entries for Password Validator Tests
          #@TestPreamble        none
          #@TestStep            Add pwd_validator_startup.ldif
          #@TestPostamble       none
          #@TestResult          Success if addEntry returns 0.
        -->
        <!--- Test Case : Add Entries for Password Validator Tests -->
        <testcase name="getTestCaseName('Add Initial Entries')">
          <sequence>
            <call function="'testCase_Preamble'"/>
@@ -42,12 +63,12 @@
            </message>
            <call function="'addEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeAdded'   : '%s/security/pwd_validator/pwd_validator_startup.ldif' % logsRemoteDataDir }
            </call>
                { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                  'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                  'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                  'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                  'entryToBeAdded'   : '%s/pwd_validator_startup.ldif' % path }
  </call>
            <call function="'testCase_Postamble'"/>