From e072968725a1a50807ac4f4c2eb1e8f05f5ef073 Mon Sep 17 00:00:00 2001
From: maudj <maudj@localhost>
Date: Tue, 13 May 2008 10:14:43 +0000
Subject: [PATCH] add tags for test specs, change functions, fix 80 charc - maudj

---
 opends/tests/functional-tests/testcases/security/pwd_policy/security_grace_login.xml                |  226 +++++-
 opends/tests/functional-tests/testcases/security/pwd_policy/security_preencoded_pwds.xml            |  131 ++
 opends/tests/functional-tests/testcases/security/pwd_policy/security_setup_pwd_policy.xml           |   12 
 opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml |  131 +++
 opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_fail_cnt.xml           |   96 ++
 opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml                 |   38 
 opends/tests/functional-tests/testcases/security/pwd_policy/security_teardown_pwd_policy.xml        |   20 
 opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change.xml           |  428 +++++++++---
 opends/tests/functional-tests/testcases/security/pwd_policy/security_last_login.xml                 |  489 ++++++++++++--
 opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml           |  170 +++-
 opends/tests/functional-tests/testcases/security/pwd_policy/security_min_pwd_age.xml                |   95 ++
 opends/tests/functional-tests/testcases/security/pwd_policy/security_mult_pwd_policies.xml          |  151 +++
 12 files changed, 1,563 insertions(+), 424 deletions(-)

diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change.xml
index b63e99e..08fe942 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change.xml
@@ -32,12 +32,38 @@
   <function name="force_pwd_change">
 
       <sequence>
+        
+        <!--- Test Suite information
+         #@TestSuiteName       Force Password Change
+         #@TestSuitePurpose    Force Password Change
+         #@TestSuiteGroup      Force Password Change
+         #@TestScript          security_force_pwd_change.xml
+        -->
+ 
+	<!--- Define default value for basedn -->
+     <script>
+     basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+     basepwp = 'cn=Default Password Policy,cn=Password Policies,cn=config'
+     </script>
+
+       
+        <!--- Test Case information
+   #@TestMarker         Force Password Change
+   #@TestName           Force Pwd Change On Add
+   #@TestIssue          none
+   #@TestPurpose        Force Pwd Change On Add
+   #@TestPreamble       none
+   #@TestStep           Step 1. Checking existence of ds-cfg-force-change-on-add
+   #@TestStep           Step 2. Admin Enabling Force Password On Add
+   #@TestPostamble      none
+   #@TestResult         Success if the 2 steps are PASS
+        -->
 
         <testcase name="getTestCaseName('Preamble - Force Pwd Change On Add')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Pwd Change: Preamble Step 1. Checking existence of ds-cfg-force-change-on-add'
+'Security: Pwd Change: Preamble Step 1. Chk ds-cfg-force-change-on-add exists'
             </message>
 
             <call function="'compareEntry'">
@@ -46,12 +72,12 @@
                 'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
                 'attrToBeCompared'    : 'ds-cfg-force-change-on-add:false',
-                'entryToBeCompared'   : 'cn=Default Password Policy,cn=Password Policies,cn=config' }
+                'entryToBeCompared'   : basepwp }
             </call>
 
 
             <message>
-               'Security: Pwd Change: Preamble Step 2. Admin Enabling Force Password On Add'
+  'Security: Pwd Change: Preamble Step 2. Admin Enabling Force Password On Add'
             </message>
 
             <call function="'modifyPwdPolicy'">
@@ -68,7 +94,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Add Single New User -->
+        <!--- Test Case information
+          #@TestMarker        Force Password Change
+          #@TestName          Add Single New User
+          #@TestIssue         none
+          #@TestPurpose       Add Single New User
+          #@TestPreamble      none
+          #@TestStep          add_entry1.ldif
+          #@TestStep          User Searching With Password SearchObject RC 19
+          #@TestPostamble     none
+          #@TestResult        Success if the 2 steps are PASS
+        -->
+
         <testcase name="getTestCaseName('Add Single New User')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -77,11 +114,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_policy/add_entry1.ldif' % logsRemoteDataDir }
+          { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+            'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+            'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+            'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+            'entryToBeAdded'   : '%s/security/pwd_policy/add_entry1.ldif' \
+                                 % logsRemoteDataDir }
             </call>
 
             <message>
@@ -91,19 +129,30 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mcat,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mcat,%s' % basedn ,
                 'dsInstancePswd'   : 'pizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base',
-                'expectedRC'       : 19 }              
+                'expectedRC'       : 19 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Change Password -->
+        <!--- Test Case information
+          #@TestMarker        Force Password Change
+          #@TestName          Added User changes password
+          #@TestIssue         none
+          #@TestPurpose       Added User changes password
+          #@TestPreamble      none
+          #@TestStep          User Change Password
+          #@TestStep          User Searching With Password SearchObject RC 0
+          #@TestPostamble     none
+          #@TestResult        Success if the 2 steps are PASS
+        -->
+
         <testcase name="getTestCaseName('Added User Change Password')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -111,15 +160,13 @@
                'Security: Pwd Change: User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mcat,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mcat,%s' % basedn ,
                     'dsInstancePswd'         : 'pizza' ,
-                    'DNToModify'             : 'uid=mcat,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newpizza' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mcat,%s' % basedn ,
+                    'dsNewPassword'          : 'newpizza' }
             </call>
             
             <message>
@@ -129,7 +176,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mcat,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mcat,%s' % basedn ,
                 'dsInstancePswd'   : 'newpizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -140,12 +187,24 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Disable Force Password On Add -->
-        <testcase name="getTestCaseName('Postamble - Disable Force Pwd On Add')">
+        <!--- Test Case information
+          #@TestMarker        Force Password Change
+          #@TestName          Admin Disable Force Password On Add
+          #@TestIssue         none
+          #@TestPurpose       Admin Disable Force Password On Add
+          #@TestPreamble      none
+          #@TestStep          Step 1. Admin Disabling Force Password On Add
+          #@TestStep          Step 2. Adding Single New User add_entry2.ldif
+          #@TestStep          Step 3. User Searching With Password RC 0
+          #@TestPostamble     none
+          #@TestResult        Success if the 3 steps are PASS
+        -->
+        
+      <testcase name="getTestCaseName('Postamble - Disable Force Pwd On Add')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Pwd Change: Postamble Step 1. Admin Disabling Force Password On Add'
+ 'Security: Pwd Change: Postamble Step 1. Admin Disabling Force Password On Add'
             </message>
 
             <call function="'modifyPwdPolicy'">
@@ -167,18 +226,19 @@
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                 'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/security/pwd_policy/add_entry2.ldif' % logsRemoteDataDir }
+                'entryToBeAdded'   : '%s/security/pwd_policy/add_entry2.ldif' \
+                                     % logsRemoteDataDir }
             </call>
 
 
             <message>
-               'Security: Pwd Change: Postamble Step 3. User Searching With Password'
+          'Security: Pwd Change: Postamble Step 3. User Searching With Password'
             </message>
 
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'pizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -189,11 +249,24 @@
           </sequence>
         </testcase>
 
-        <testcase name="getTestCaseName('Preamble - Force Pwd Change On Reset')">
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Force Pwd Change On Reset
+          #@TestIssue        none
+          #@TestPurpose      Force Pwd Change On Reset
+          #@TestPreamble     none
+          #@TestStep         Step 1. Checking ds-cfg-force-change-on-reset exist
+          #@TestStep         Step 2. Admin Enabling Force Password On Reset
+                             Change ds-cfg-force-change-on-reset to true
+          #@TestPostamble    none
+          #@TestResult       Success if the 2 steps are PASS
+        -->
+        
+      <testcase name="getTestCaseName('Preamble - Force Pwd Change On Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Pwd Change: Preamble Step 1. Checking existence of ds-cfg-force-change-on-reset'
+'Security: Pwd Change: Preamble Step 1. Chk ds-cfg-force-change-on-reset exists'
             </message>
 
             <call function="'compareEntry'">
@@ -202,11 +275,11 @@
                 'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
                 'attrToBeCompared'    : 'ds-cfg-force-change-on-reset:false',
-                'entryToBeCompared'   : 'cn=Default Password Policy,cn=Password Policies,cn=config' }
+                'entryToBeCompared'   : basepwp }
             </call>
 
             <message>
-               'Security: Pwd Change: Preamble Step 2. Admin Enabling Force Password On Reset'
+ 'Security: Pwd Change: Preamble Step 2. Admin Enabling Force Password On Reset'
             </message>
 
             <call function="'modifyPwdPolicy'">
@@ -223,7 +296,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Change User Pwd -->
+
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Admin Reset User Pwd
+          #@TestIssue        none
+          #@TestPurpose      Admin Reset User Pwd
+          #@TestPreamble     none
+          #@TestStep         Admin Resetting User Pwd
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Reset User Pwd')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -231,22 +315,30 @@
                'Security: Pwd Change: Admin Resetting User Pwd'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=mdog,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'adminpizza' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mdog,%s' % basedn ,
+                    'dsNewPassword'          : 'adminpizza' }
             </call>
             
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Search With Old Pwd -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Search With Old Pwd
+          #@TestIssue        none
+          #@TestPurpose      User Search With Old Pwd
+          #@TestPreamble     none
+          #@TestStep         User Search With Old Pwd : SearchObject returns 49
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Old Pwd - Search')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -257,19 +349,30 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'pizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base',
-                'expectedRC'       : 49 }              
+                'expectedRC'       : 49 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Add With Old Pwd -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Add With Old Pwd
+          #@TestIssue        none
+          #@TestPurpose      User Add With Old Pwd
+          #@TestPreamble     none
+          #@TestStep         User Adding Attr With Old Password RC 49
+          #@TestStep         Checking User-added Attribute Exists RC 16
+          #@TestPostamble    none
+          #@TestResult       Success if the 2 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Old Pwd - Add')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -280,9 +383,9 @@
             <call function="'modifyAnAttribute'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mdog,%s' % basedn ,
                     'dsInstancePswd'         : 'pizza' ,
-                    'DNToModify'             : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'DNToModify'             : 'uid=mdog,%s' % basedn ,
                     'attributeName'          : 'pager' ,
                     'newAttributeValue'      : '+1 999 555 1212' ,
                     'changetype'             : 'add'  ,
@@ -290,7 +393,7 @@
             </call>
             
             <message>
-               'Security: Pwd Change: Checking For Existence of User-added Attribute'
+          'Security: Pwd Change: Checking For Existence of User-added Attribute'
             </message>
 
             <call function="'compareEntry'">
@@ -299,15 +402,26 @@
                 'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
                 'attrToBeCompared'    : 'pager:+1 999 555-1212',
-                'entryToBeCompared'   : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                'expectedRC'          : 16 }                
+                'entryToBeCompared'   : 'uid=mdog,%s' % basedn ,
+                'expectedRC'          : 16 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-     <!--- Test Case : User Delete With Old Pwd -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Delete With Old Pwd
+          #@TestIssue        none
+          #@TestPurpose      User Delete With Old Pwd
+          #@TestPreamble     none
+          #@TestStep         User Deleting Attr With Old Password RC 49
+          #@TestStep         Checking For Existence of User-deleted Attribute
+          #@TestPostamble    none
+          #@TestResult       Success if the 2 step are PASS
+        -->
+     
         <testcase name="getTestCaseName('Old Pwd - Delete')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -318,16 +432,16 @@
             <call function="'modifyAnAttribute'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mdog,%s' % basedn ,
                     'dsInstancePswd'         : 'pizza' ,
-                    'DNToModify'             : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'DNToModify'             : 'uid=mdog,%s' % basedn ,
                     'attributeName'          : 'roomnumber' ,
                     'changetype'             : 'delete' ,
                     'expectedRC'             : 49  }
             </call>
             
             <message>
-               'Security: Pwd Change: Checking For Existence of User-deleted Attribute'
+       'Security: Pwd Change: Checking For Existence of User-deleted Attribute'
             </message>
 
             <call function="'compareEntry'">
@@ -336,14 +450,24 @@
                 'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
                 'attrToBeCompared'    : 'roomnumber:4612',
-                'entryToBeCompared'   : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' }
+                'entryToBeCompared'   : 'uid=mdog,%s' % basedn , }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-     <!--- Test Case : User Delete With Old Pwd -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Old Pwd - Compare
+          #@TestIssue        none
+          #@TestPurpose      Old Pwd - Compare
+          #@TestPreamble     none
+          #@TestStep         Checking For Existence of User Attribute RC 49
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+     
         <testcase name="getTestCaseName('Old Pwd - Compare')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -354,18 +478,28 @@
             <call function="'compareEntry'">
               { 'dsInstanceHost'      : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'      : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'        : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'        : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'      : 'pizza' ,
                 'attrToBeCompared'    : 'l:Sunnyvale',
-                'entryToBeCompared'   : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                'expectedRC'          : 49 }                
+                'entryToBeCompared'   : 'uid=mdog,%s' % basedn ,
+                'expectedRC'          : 49 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Search With Assigned Pwd -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Search With Assigned Pwd
+          #@TestIssue        none
+          #@TestPurpose      User Search With Assigned Pwd
+          #@TestPreamble     none
+          #@TestStep         User Searching With Assigned Password RC 19
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Search With Assigned Pwd')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -376,19 +510,31 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'adminpizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base',
-                'expectedRC'       : 19 }                
+                'expectedRC'       : 19 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Change Password -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Change Password
+          #@TestIssue        none
+          #@TestPurpose      User Change Password
+          #@TestPreamble     none
+          #@TestStep         User Changing Password after reset
+          #@TestStep         User Searching With Assigned Password RC 49
+          #@TestStep         User Searching With New Password SearchObject RC 0
+          #@TestPostamble    none
+          #@TestResult       Success if the 3 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('User Change Password After Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -396,15 +542,13 @@
                'Security: Pwd Change: User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mdog,%s' % basedn ,
                     'dsInstancePswd'         : 'adminpizza' ,
-                    'DNToModify'             : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newpizza' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mdog,%s' % basedn ,
+                    'dsNewPassword'          : 'newpizza' }
             </call>
             
             <message>
@@ -414,12 +558,12 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'adminpizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base' ,
-                'expectedRC'       : 49 }                
+                'expectedRC'       : 49 }
             </call>
 
             <message>
@@ -429,7 +573,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'newpizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -441,7 +585,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Enable Maximum Reset Age -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Admin Enable Maximum Reset Age - Long Reset Time
+          #@TestIssue        none
+          #@TestPurpose      Admin Enable Maximum Reset Age - Long Reset Time
+          #@TestPreamble     none
+          #@TestStep         Admin Enabling Maximum Reset Age - Long Reset Time
+                             set max-password-reset-age to 30 m
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Enable Max Reset Age Long')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -463,46 +618,64 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Change User Pwd -->
-        <testcase name="getTestCaseName('Admin Reset User Pwd - Long Reset Time')">
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Admin Change User Pwd - Long Reset Time
+          #@TestIssue        none
+          #@TestPurpose      Admin Change User Pwd - Long Reset Time
+          #@TestPreamble     none
+          #@TestStep         Admin Changing User Pwd
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
+    <testcase name="getTestCaseName('Admin Reset User Pwd - Long Reset Time')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
                'Security: Pwd Change: Admin Changing User Pwd'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=mdog,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'adminlongpizza' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mdog,%s' % basedn ,
+                    'dsNewPassword'          : 'adminlongpizza' }
             </call>
             
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Change Password -->
-        <testcase name="getTestCaseName('User Change Password - Long Reset Time')">
+        
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Change Password - Long Reset Time
+          #@TestIssue        none
+          #@TestPurpose      User Changing Password - Long Reset Time
+          #@TestPreamble     none
+          #@TestStep         User Changing Password - Long Reset Time
+          #@TestStep         User Searching With Password RC 0
+          #@TestPostamble    none
+          #@TestResult       Success if the 2 steps are PASS
+        -->
+        
+    <testcase name="getTestCaseName('User Change Password - Long Reset Time')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
                'Security: Pwd Change: User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mdog,%s' % basedn ,
                     'dsInstancePswd'         : 'adminlongpizza' ,
-                    'DNToModify'             : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newlongpizza' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mdog,%s' % basedn ,
+                    'dsNewPassword'          : 'newlongpizza' }
             </call>
             
             <message>
@@ -512,7 +685,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'newlongpizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -523,7 +696,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Enable Maxmimum Reset Age -->
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Admin Enable Maxmimum Reset Age - Short Reset Time
+          #@TestIssue        none
+          #@TestPurpose      Admin Enable Maxmimum Reset Age - Short Reset Time
+          #@TestPreamble     none
+          #@TestStep         Admin Enable Maxmimum Reset Age Short Reset Time
+                             set max-password-reset-age to 8 s
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Enable Max Reset Age Short')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -545,35 +729,56 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Change User Pwd -->
-        <testcase name="getTestCaseName('Admin Reset User Pwd - Short Reset Time')">
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Admin Change User Pwd - Short Reset Time
+          #@TestIssue        none
+          #@TestPurpose      Admin Changing User Pwd -Short Reset Time
+          #@TestPreamble     none
+          #@TestStep         Admin Changing User Pwd
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
+    <testcase name="getTestCaseName('Admin Reset User Pwd - Short Reset Time')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
                'Security: Pwd Change: Admin Changing User Pwd'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=mdog,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'adminshortpizza' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mdog,%s' % basedn ,
+                    'dsNewPassword'          : 'adminshortpizza' }
             </call>
             
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Change Password -->
-        <testcase name="getTestCaseName('User Change Password - Short Reset Time')">
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         User Change Password -Short Reset Time
+          #@TestIssue        none
+          #@TestPurpose      User Change Password -Short Reset Time
+          #@TestPreamble     none
+          #@TestStep         User Change Password sleep 12000
+          #@TestStep         User Changing Password ldapPasswordModifyWithScript
+                              returns 49
+          #@TestStep         User Searching With Password SearchObject return 49
+          #@TestPostamble    none
+          #@TestResult       Success if the 3 steps are PASS
+        -->
+        
+    <testcase name="getTestCaseName('User Change Password - Short Reset Time')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Pwd Change: User Change Password - Short Reset Time - Sleeping'
+      'Security: Pwd Change: User Change Password - Short Reset Time - Sleeping'
             </message>
 
             <call function="'Sleep'">
@@ -584,15 +789,13 @@
                'Security: Pwd Change: User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mdog,%s' % basedn ,
                     'dsInstancePswd'         : 'adminpizza' ,
-                    'DNToModify'             : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newshortpizza' ,
-                    'changetype'             : 'replace' ,
+                    'dsAuthzID'              : 'dn:uid=mdog,%s' % basedn ,
+                    'dsNewPassword'          : 'newshortpizza' ,
                     'expectedRC'             : 49  }
             </call>
             
@@ -603,24 +806,37 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=mdog,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=mdog,%s' % basedn ,
                 'dsInstancePswd'   : 'newshortpizza' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base',
-                'expectedRC'       : 49 }                  
+                'expectedRC'       : 49 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Disable Force Password On Reset -->
-        <testcase name="getTestCaseName('Postamble - Disable Force Pwd On Reset')">
+        <!--- Test Case information
+          #@TestMarker       Force Password Change
+          #@TestName         Admin Disable Force Password On Reset
+          #@TestIssue        none
+          #@TestPurpose      Admin Disable Force Password On Reset
+          #@TestPreamble     none
+          #@TestStep         Step 1. Admin Disabling Max Pwd Age
+                             set max-password-reset-age to 0 s
+          #@TestStep         Step 2. Admin Disabling Force Password On Reset
+                             set force-change-on-reset to false
+          #@TestPostamble    none
+          #@TestResult       Success if the 2 steps are PASS
+        -->
+        
+    <testcase name="getTestCaseName('Postamble - Disable Force Pwd On Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Pwd Change: Postamble Step 1. Admin Disabling Max Pwd Age'
+           'Security: Pwd Change: Postamble Step 1. Admin Disabling Max Pwd Age'
             </message>
 
             <call function="'modifyPwdPolicy'">
@@ -634,7 +850,7 @@
             </call>
             
             <message>
-               'Security: Pwd Change: Postamble Step 2. Admin Disabling Force Password On Reset'
+'Security: Pwd Change: Postamble Step 2. Admin Disabling Force Pwd On Reset'
             </message>
 
             <call function="'modifyPwdPolicy'">
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml
index 185fa09..0f899f2 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml
@@ -33,18 +33,45 @@
 
       <sequence>
 
-        <!--- Test Case : User Search With Password -->
+        <!--- Test Suite information
+         #@TestSuiteName       Force PasswordChange All Users
+         #@TestSuitePurpose    Force PasswordChange All Users
+         #@TestSuiteGroup      Force PasswordChange All Users
+         #@TestScript          security_force_pwd_change_all_users.xml
+        -->
+        
+        <!--- Define default value for basedn -->
+     <script>
+     basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+     </script>
+     
+     
+        <!--- Test Case information
+          #@TestMarker       Force PasswordChange All Users
+          #@TestName         User Search With Password
+          #@TestIssue        none
+          #@TestPurpose      Set the Pwd Expiration Time to a past date
+          #@TestPreamble     none
+          #@TestStep         Step 1 - User Searching With Password
+          #@TestStep         Step 2 - Admin Enabling Exp Pwd No Warning
+                             set expire-passwords-without-warning to true
+          #@TestStep         Step 3 - Admin Setting Pwd Time Exp
+                             set require-change-by-time to 20061030183752.848Z
+          #@TestPostamble    none
+          #@TestResult       Success if the 3 steps are PASS
+        -->
+
         <testcase name="getTestCaseName('Preamble Setup')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Pwd Change: Preamble Step 1 - User Searching With Password'
+         'Security: Pwd Change: Preamble Step 1 - User Searching With Password'
             </message>
 
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=scarter,%s' % basedn ,
                 'dsInstancePswd'   : 'sprain' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -53,21 +80,21 @@
 
 
             <message>
-               'Security: Pwd Change: Preamble Step 2 - Admin Enabling Exp Pwd No Warning'
+     'Security: Pwd Change: Preamble Step 2 - Admin Enabling Exp Pwd No Warning'
             </message>
 
             <call function="'modifyPwdPolicy'">
-                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
-                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'propertyName'           : 'Default Password Policy' ,
-                    'attributeName'          : 'expire-passwords-without-warning' ,
-                    'attributeValue'         : 'true' }
+               { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
+                 'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
+                 'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
+                 'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
+                 'propertyName'           : 'Default Password Policy' ,
+                 'attributeName'          : 'expire-passwords-without-warning' ,
+                 'attributeValue'         : 'true' }
             </call>
             
             <message>
-               'Security: Pwd Change: Preamble Step 3 -Admin Setting Pwd Time Exp'
+           'Security: Pwd Change: Preamble Step 3 -Admin Setting Pwd Time Exp'
             </message>
 
             <call function="'modifyPwdPolicy'">
@@ -84,7 +111,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Search With Expired Password -->
+        <!--
+        - Test Case information
+          #@TestMarker       Force PasswordChange All Users
+          #@TestName         User Search With Expired Password
+          #@TestIssue        none
+          #@TestPurpose      User Search With Expired Password
+          #@TestPreamble     none
+          #@TestStep         User Search With Expired Password RC 49
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('User Search With Exp Password')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -95,19 +133,31 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=scarter,%s' % basedn ,
                 'dsInstancePswd'   : 'sprain' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base',
-                'expectedRC'       : 49 }                            
+                'expectedRC'       : 49 }
             </call>
 
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Disable Exp Pwd No Warning -->
+        <!--
+        - Test Case information
+          #@TestMarker       Force PasswordChange All Users
+          #@TestName         Admin Disable Exp Pwd No Warning
+          #@TestIssue        none
+          #@TestPurpose      Admin Disable Exp Pwd No Warning
+          #@TestPreamble     none
+          #@TestStep         Admin Disabling Exp Pwd No Warning
+                             set expire-passwords-without-warning to false
+          #@TestPostamble    none
+          #@TestResult       Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Disable Exp Pwd No Warning')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -116,20 +166,32 @@
             </message>
 
             <call function="'modifyPwdPolicy'">
-                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
-                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
-                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'propertyName'           : 'Default Password Policy' ,
-                    'attributeName'          : 'expire-passwords-without-warning' ,
-                    'attributeValue'         : 'false' }
+               { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
+                 'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
+                 'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
+                 'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
+                 'propertyName'           : 'Default Password Policy' ,
+                 'attributeName'          : 'expire-passwords-without-warning' ,
+                 'attributeValue'         : 'false' }
             </call>
             
             <call function="'testCase_Postamble'"/>
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Search With Expired Password 2-->
+       <!--
+        - Test Case information
+          #@TestMarker       Force PasswordChange All Users
+          #@TestName         User Search With Expired Password 2
+          #@TestIssue        none
+          #@TestPurpose      User Search With Expired Password 2
+          #@TestPreamble     none
+          #@TestStep         User Searching With Expired Password 2
+                             SearchObject grep will expire
+          #@TestPostamble    none
+          #@TestResult       Success if the steps is PASS
+        -->
+        
         <testcase name="getTestCaseName('User Search With Exp Password 2')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -140,7 +202,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=scarter,%s' % basedn ,
                 'dsInstancePswd'   : 'sprain' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -159,7 +221,20 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin Reset Pwd Time Exp -->
+        <!--
+        - Test Case information
+          #@TestMarker       Force PasswordChange All Users
+          #@TestName         Admin Reset Pwd Time Exp
+          #@TestIssue        none
+          #@TestPurpose      Admin Reset Pwd Time Exp 
+          #@TestPreamble     none
+          #@TestStep         Admin Resetting Pwd Time Exp
+                             remove require-change-by-time 20061030183752.848Z
+          #@TestStep         User Searching With Password SearchObject returns 0
+          #@TestPostamble    none
+          #@TestResult       Success if the 2 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Postamble Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -185,9 +260,9 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=scarter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=scarter,%s' % basedn ,
                 'dsInstancePswd'   : 'sprain' ,
-                'dsBaseDN'   : 'dc=example,dc=com' ,
+                'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base' }
             </call>
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_grace_login.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_grace_login.xml
index 459a6a2..ac640c6 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_grace_login.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_grace_login.xml
@@ -32,19 +32,48 @@
   <function name="grace_login">
 
       <sequence>
+        
+        <!--- Test Suite information
+            #@TestSuiteName       Grace Login
+            #@TestSuitePurpose    Test the Password Policy Grace Login
+            #@TestSuiteGroup      Grace Login
+            #@TestScript          security_grace_login.xml
+        -->
 
-        <testcase name="getTestCaseName('Preamble, Admin Changing Pwd Policy Settings')">
+        <!--- Define default value for basedn -->
+          <script>
+   basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+   basepwp ='cn=Default Password Policy,cn=Password Policies,cn=config'
+          </script>
+
+
+        <!--- Test Case information
+          #@TestMarker          Grace Login
+          #@TestName            Admin Changing Pwd Policy Settings
+          #@TestIssue           none
+          #@TestPurpose         Admin Changing Pwd Policy Settings
+          #@TestPreamble        none
+          #@TestStep            set ds-cfg-expire-passwords-without-warning true
+                                ds-cfg-min-password-age 1 seconds
+                                ds-cfg-max-password-age 3 seconds
+                                ds-cfg-password-expiration-warning-interval 1 s
+                                ds-cfg-grace-login-count 2
+          #@TestPostamble       none
+          #@TestResult          Success if modifyAnAttribute returns 0
+        -->
+        
+ <testcase name="getTestCaseName('Preamble, Admin Change Pwd Policy Settings')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             
-            <script>
-                listAttrs=[]
-                listAttrs.append("ds-cfg-expire-passwords-without-warning:true")
-                listAttrs.append("ds-cfg-min-password-age:1 seconds")
-                listAttrs.append("ds-cfg-max-password-age:3 seconds")
-                listAttrs.append("ds-cfg-password-expiration-warning-interval:1 seconds")
-                listAttrs.append("ds-cfg-grace-login-count:2")
-            </script>
+       <script>
+       listAttrs=[]
+       listAttrs.append("ds-cfg-expire-passwords-without-warning:true")
+       listAttrs.append("ds-cfg-min-password-age:1 seconds")
+       listAttrs.append("ds-cfg-max-password-age:3 seconds")
+       listAttrs.append("ds-cfg-password-expiration-warning-interval:1 seconds")
+       listAttrs.append("ds-cfg-grace-login-count:2")
+       </script>
             
             <message>
                'Security: Grace Login: Admin modifying password policy settings'
@@ -55,7 +84,7 @@
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'cn=Default Password Policy,cn=Password Policies,cn=config' ,
+                    'DNToModify'             : basepwp ,
                     'listAttributes'         : listAttrs ,
                     'changetype'             : 'replace' }
             </call>
@@ -66,17 +95,31 @@
           </sequence>
         </testcase>
 
-        <!-- Issue 2032 -->
-        <testcase name="getTestCaseName('Preamble, Admin Changing min password age beyond limit')">
+        <!--- Test Case information
+          #@TestMarker          Grace Login
+          #@TestName            Admin Changing min password age beyond limit
+          #@TestIssue           2032
+          #@TestPurpose         Testing issue 2032
+          #@TestPreamble        none
+          #@TestStep            Change Pwd Policy min password age beyond limit
+                                set ds-cfg-min-password-age 10 seconds
+                                ds-cfg-max-password-age 3 seconds
+                                ds-cfg-password-expiration-warning-interval 1 s
+          #@TestPostamble       none
+          #@TestResult          Success if modifyAnAttribute returns 53
+        -->
+        
+<testcase name="getTestCaseName
+('Preamble, Admin Change min pwd age beyond limit')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             
-            <script>
-                listAttrs=[]
-                listAttrs.append("ds-cfg-min-password-age:10 seconds")
-                listAttrs.append("ds-cfg-max-password-age:3 seconds")
-                listAttrs.append("ds-cfg-password-expiration-warning-interval:1 seconds")
-            </script>
+       <script>
+       listAttrs=[]
+       listAttrs.append("ds-cfg-min-password-age:10 seconds")
+       listAttrs.append("ds-cfg-max-password-age:3 seconds")
+       listAttrs.append("ds-cfg-password-expiration-warning-interval:1 seconds")
+       </script>
             
             <message>
                'Security: Grace Login: Admin modifying password policy settings'
@@ -87,7 +130,7 @@
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'cn=Default Password Policy,cn=Password Policies,cn=config' ,
+                    'DNToModify'             : basepwp ,
                     'listAttributes'         : listAttrs ,
                     'changetype'             : 'replace' ,
                     'expectedRC'             : 53 }
@@ -99,17 +142,30 @@
           </sequence>
         </testcase>
 
-        <!-- Issue 2032 -->
-        <testcase name="getTestCaseName('Preamble, Admin Changing min password age to limit')">
+        <!--- Test Case information
+          #@TestMarker          Grace Login
+          #@TestName            Admin Changing min password age to limit
+          #@TestIssue           2032
+          #@TestPurpose         Testing issue 2032
+          #@TestPreamble        none
+          #@TestStep            Change Pwd Policy min password age to limit
+                                set ds-cfg-min-password-age 2 seconds
+                                ds-cfg-max-password-age 3 seconds
+                                ds-cfg-password-expiration-warning-interval 1 s
+          #@TestPostamble       none
+          #@TestResult          Success if modifyAnAttribute returns 53
+        -->
+        
+<testcase name="getTestCaseName('Preamble, Admin Change min pwd age to limit')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             
-            <script>
-                listAttrs=[]
-                listAttrs.append("ds-cfg-min-password-age:2 seconds")
-                listAttrs.append("ds-cfg-max-password-age:3 seconds")
-                listAttrs.append("ds-cfg-password-expiration-warning-interval:1 seconds")
-            </script>
+       <script>
+       listAttrs=[]
+       listAttrs.append("ds-cfg-min-password-age:2 seconds")
+       listAttrs.append("ds-cfg-max-password-age:3 seconds")
+       listAttrs.append("ds-cfg-password-expiration-warning-interval:1 seconds")
+       </script>
             
             <message>
                'Security: Grace Login: Admin modifying password policy settings'
@@ -120,7 +176,7 @@
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'cn=Default Password Policy,cn=Password Policies,cn=config' ,
+                    'DNToModify'             : basepwp ,
                     'listAttributes'         : listAttrs ,
                     'changetype'             : 'replace' ,
                     'expectedRC'             : 53 }
@@ -132,17 +188,31 @@
           </sequence>
         </testcase>
 
-        <!-- Issue 2032 -->
-        <testcase name="getTestCaseName('Preamble, Admin Changing expire warning interval beyond limit')">
+        <!--- Test Case information
+          #@TestMarker       Grace Login
+          #@TestName         Admin Changing expire warning interval beyond limit
+          #@TestIssue        2032
+          #@TestPurpose      Testing issue 2032
+          #@TestPreamble     none
+          #@TestStep         Change Pwd Pol expire warning interval beyond limit
+                             set ds-cfg-min-password-age 1 seconds
+                             ds-cfg-max-password-age 3 seconds
+                             ds-cfg-password-expiration-warning-interval 10 s
+          #@TestPostamble    none
+          #@TestResult       Success if modifyAnAttribute returns 53
+        -->
+        
+<testcase name="getTestCaseName
+('Preamble, Admin Change expire warning interval beyond limit')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             
-            <script>
-                listAttrs=[]
-                listAttrs.append("ds-cfg-min-password-age:1 seconds")
-                listAttrs.append("ds-cfg-max-password-age:3 seconds")
-                listAttrs.append("ds-cfg-password-expiration-warning-interval:10 seconds")
-            </script>
+      <script>
+      listAttrs=[]
+      listAttrs.append("ds-cfg-min-password-age:1 seconds")
+      listAttrs.append("ds-cfg-max-password-age:3 seconds")
+      listAttrs.append("ds-cfg-password-expiration-warning-interval:10 seconds")
+      </script>
             
             <message>
                'Security: Grace Login: Admin modifying password policy settings'
@@ -153,7 +223,7 @@
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'cn=Default Password Policy,cn=Password Policies,cn=config' ,
+                    'DNToModify'             : basepwp ,
                     'listAttributes'         : listAttrs ,
                     'changetype'             : 'replace' ,
                     'expectedRC'             : 53 }
@@ -165,6 +235,21 @@
           </sequence>
         </testcase>
 
+        <!--- Test Case information
+          #@TestMarker          Grace Login
+          #@TestName            Search Bad Pwd 4x
+          #@TestIssue           none
+          #@TestPurpose         Search Bad Pwd 4x
+          #@TestPreamble        none
+          #@TestStep            Pause 2 seconds
+          #@TestStep            Search Bind 1 SearchObject returns 19
+          #@TestStep            Search Bind 2 SearchObject returns 19
+          #@TestStep            Search Bind 3 SearchObject returns 49
+          #@TestStep            Search Bind 4 SearchObject returns 49
+          #@TestPostamble       none
+          #@TestResult          Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Search Bad Pwd 4x')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -184,7 +269,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=btalbot,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=btalbot,%s' % basedn ,
                   'dsInstancePswd'   : 'trident',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -199,7 +284,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=btalbot,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=btalbot,%s' % basedn ,
                   'dsInstancePswd'   : 'trident',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -214,7 +299,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=btalbot,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=btalbot,%s' % basedn ,
                   'dsInstancePswd'   : 'trident',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -228,7 +313,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=btalbot,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=btalbot,%s' % basedn ,
                   'dsInstancePswd'   : 'trident',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -241,6 +326,22 @@
           </sequence>
         </testcase>
 
+        <!--- Test Case information
+          #@TestMarker          Grace Login
+          #@TestName            Reset Pwd
+          #@TestIssue           none
+          #@TestPurpose         Reset Pwd
+          #@TestPreamble        none
+          #@TestStep            Search Bind 1 SearchObject returns 19
+          #@TestStep            User resetting password
+          #@TestStep            Admin reset max password age set 
+                                max-password-age to 24 h
+          #@TestStep            Search Bind 2 SearchObject returns 0
+          #@TestStep            Search Bind 2 SearchObject returns 0
+          #@TestPostamble       none
+          #@TestResult          Success if the 5 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Reset Pwd')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -252,7 +353,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=kwinters,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=kwinters,%s' % basedn ,
                   'dsInstancePswd'   : 'forsook',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -267,13 +368,13 @@
             <call function="'modifyAnAttribute'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=kwinters,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=kwinters,%s' % basedn ,
                     'dsInstancePswd'         : 'forsook' ,
-                    'DNToModify'             : 'uid=kwinters,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'DNToModify'             : 'uid=kwinters,%s' % basedn ,
                     'attributeName'          : 'userpassword' ,
                     'newAttributeValue'      : 'newforsook' ,
                     'changetype'             : 'replace' }
-            </call>
+             </call>
     
             <message>
                'Security: Grace Login: Reset Pwd, Admin reset max password age'
@@ -296,7 +397,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=kwinters,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=kwinters,%s' % basedn ,
                   'dsInstancePswd'   : 'newforsook',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -310,7 +411,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=kwinters,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=kwinters,%s' % basedn ,
                   'dsInstancePswd'   : 'newforsook',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -322,17 +423,32 @@
           </sequence>
         </testcase>
 
-        <testcase name="getTestCaseName('Postamble, Admin Resetting Pwd Policy Settings')">
+        <!--- Test Case information
+          #@TestMarker          Grace Login
+          #@TestName            Admin Resetting Pwd Policy Settings
+          #@TestIssue           none
+          #@TestPurpose         Admin Resetting Pwd Policy Settings
+          #@TestPreamble        none
+          #@TestStep            set ds-cfg-expire-passwords-without-warning to 
+                                false ds-cfg-max-password-age 0 seconds
+                                ds-cfg-min-password-age 0 seconds
+                                ds-cfg-password-expiration-warning-interval 5 d
+                                ds-cfg-grace-login-count 0
+          #@TestPostamble       none
+          #@TestResult          Success if modifyAnAttribute returns 0
+        -->
+      
+<testcase name="getTestCaseName('Postamble, Admin Reset Pwd Policy Settings')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             
             <script>
-                listAttrs=[]
-                listAttrs.append("ds-cfg-expire-passwords-without-warning:false")
-                listAttrs.append("ds-cfg-max-password-age:0 seconds")
-                listAttrs.append("ds-cfg-min-password-age:0 seconds")
-                listAttrs.append("ds-cfg-password-expiration-warning-interval:5 d")
-                listAttrs.append("ds-cfg-grace-login-count:0")
+             listAttrs=[]
+             listAttrs.append("ds-cfg-expire-passwords-without-warning:false")
+             listAttrs.append("ds-cfg-max-password-age:0 seconds")
+             listAttrs.append("ds-cfg-min-password-age:0 seconds")
+             listAttrs.append("ds-cfg-password-expiration-warning-interval:5 d")
+             listAttrs.append("ds-cfg-grace-login-count:0")
             </script>
             
             <message>
@@ -344,7 +460,7 @@
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'cn=Default Password Policy,cn=Password Policies,cn=config' ,
+                    'DNToModify'             : basepwp ,
                     'listAttributes'         : listAttrs ,
                     'changetype'             : 'replace' }
             </call>
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_last_login.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_last_login.xml
index e8931c5..5c16e4e 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_last_login.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_last_login.xml
@@ -32,8 +32,31 @@
   <function name="last_login">
 
       <sequence>
-
-        <!--- Test Case : Check for ds-cfg-idle-lockout-interval -->
+        
+         <!--- Test Suite information
+            #@TestSuiteName       Last Login
+            #@TestSuitePurpose    Test Password Policy for Last Login
+            #@TestSuiteGroup      Last Login
+            #@TestScript          security_last_login.xml
+          -->
+ 
+         <!--- Define default value for basedn -->
+          <script>
+            basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+          </script>
+        
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Check for ds-cfg-idle-lockout-interval
+            #@TestIssue           none
+            #@TestPurpose         Check for ds-cfg-idle-lockout-interval
+            #@TestPreamble        none
+            #@TestStep            Checking existence of 
+                                  ds-cfg-idle-lockout-interval with value set 0
+            #@TestPostamble       none
+            #@TestResult          Success if compareEntry returns 0
+        -->
+        
         <testcase name="getTestCaseName('Preamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>          
@@ -55,7 +78,24 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin enable last login attribute only-->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin enable last login attribute only
+            #@TestIssue           none
+            #@TestPurpose         Admin enable last login attribute only
+            #@TestPreamble        none
+            #@TestStep            Admin Enable Last Login Attribute Only
+                                  modifyPwdPolicy set last-login-time-attribute 
+                                  to ds-pwp-last-login-time
+            #@TestStep            User Binding With Password returns 0
+            #@TestStep            Checking for Absence of Last Login Time
+                                  SearchObject attribute ds-pwp-last-login-time 
+                                  returns 0 checktestStringNotPresent 
+                                  ds-pwp-last-login-time
+            #@TestPostamble       none
+            #@TestResult          Success if the 3 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Enable Last Login Attr Only')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -80,7 +120,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -96,7 +136,7 @@
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                 'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsBaseDN'         : 'uid=jreuter,%s' % basedn ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'attributes'       : 'ds-pwp-last-login-time' }
             </call>
@@ -115,7 +155,25 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin enable last login format only -->
+        <!--- Test Case information
+          #@TestMarker          Last Login
+          #@TestName            Admin enable last login format only
+          #@TestIssue           none
+          #@TestPurpose         Admin enable last login format only
+          #@TestPreamble        none
+          #@TestStep            Admin Disable Last Login Attribute Only set
+                                last-login-time-attribute to reset
+          #@TestStep            Admin Enable Last Login Format Only set
+                                last-login-time-format to EEE, MMM dd, 
+                                yyyy HH:mm:ss
+          #@TestStep            User Binding With Password returns 0
+          #@TestStep            Checking for Absence of Last Login Time
+                                SearchObject attribute ds-pwp-last-login-time
+                                checktestStringNotPresent ds-pwp-last-login-time
+          #@TestPostamble       none
+          #@TestResult          Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Enable Last Login Format Only')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -154,7 +212,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -170,7 +228,7 @@
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                 'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsBaseDN'         : 'uid=jreuter,%s' % basedn ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'attributes'       : 'ds-pwp-last-login-time' }
             </call>
@@ -189,7 +247,23 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Admin enable both last login attribute and format-->
+        <!--- Test Case information
+          #@TestMarker        Last Login
+          #@TestName          Admin enable both last login attribute and format
+          #@TestIssue         none
+          #@TestPurpose       Admin enable both last login attribute and format
+          #@TestPreamble      none
+          #@TestStep          Admin Enable Last Login Attribute And Format
+                              set last-login-time-attribute to 
+                              ds-pwp-last-login-time
+          #@TestStep          User Binding With Password returns 0
+          #@TestStep          Checking for Absence of Last Login Time
+                              SearchObject ds-pwp-last-login-time returns 0
+                              checktestString ds-pwp-last-login-time
+          #@TestPostamble     none
+          #@TestResult        Success if the 3 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Admin Enable Last Login Attr And Format')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -214,7 +288,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -230,7 +304,7 @@
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                 'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'dsBaseDN'         : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsBaseDN'         : 'uid=jreuter,%s' % basedn ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'attributes'       : 'ds-pwp-last-login-time' }
             </call>
@@ -249,7 +323,24 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Long Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Long Idle Lockout Interval
+            #@TestIssue           none
+            #@TestPurpose         Long Idle Lockout Interval
+            #@TestPreamble        none
+            #@TestStep            Step 1. Check User Bind returns 0
+            #@TestStep            Step 2. Admin Changing Idle Lockout Interval
+                                  set idle-lockout-interval to 50 s
+            #@TestStep            Step 3. User Binding Before Idle Lockout
+                                  SearchObject returns 0
+            #@TestStep            Step 4. Sleep sleepForMilliSeconds 60000
+            #@TestStep            Step 5. User Binding After Idle Lockout
+                                  SearchObject returns 49
+            #@TestPostamble       none
+            #@TestResult          Success if the 5 steps are PASS
+        -->
+
         <testcase name="getTestCaseName('Long Idle Lockout')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -260,7 +351,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -288,7 +379,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -312,7 +403,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'destroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -325,7 +416,20 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin Reset Idle Lockout Interval 1
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval 1
+            #@TestPreamble        none
+            #@TestStep            Step 1. set idle-lockout-interval to 0 s
+            #@TestStep            Step 2. User Binding SearchObject returns 0
+            #@TestStep            Step 3. Sleep sleepForMilliSeconds 60000
+            #@TestStep            Step 4. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 4 tests are PASS
+        -->
+        
         <testcase name="getTestCaseName('Reset Idle Lockout')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -350,7 +454,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'destroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -373,7 +477,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'destroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -385,7 +489,26 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Password Change Override -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Password Change Override
+            #@TestIssue           none
+            #@TestPurpose         Password Change Override
+            #@TestPreamble        none
+            #@TestStep            Step 1. Check User Bind SearchObject returns 0
+            #@TestStep            Step 2. Admin Changing Idle Lockout Interval
+                                  set idle-lockout-interval to 50 s
+            #@TestStep            Step 3. User Binding Before Idle Lockout
+                                  SearchObject returns 0
+            #@TestStep            Step 4. Sleep sleepForMilliSeconds 30000
+            #@TestStep            Step 5. User Changing Password
+            #@TestStep            Step 6. Sleep sleepForMilliSeconds to 30000
+            #@TestStep            Step 7. User Binding After Idle Lockout
+                                  SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 7 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Idle Lockout - Pwd Change Override')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -396,7 +519,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -424,7 +547,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'destroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -445,15 +568,13 @@
                'Security: Last Login: Long Idle Lockout - Password Change Override Step 5. User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=jreuter,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newdestroy' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=jreuter,%s' % basedn ,
+                    'dsNewPassword'          : 'newdestroy' }
             </call>
             
             <message>
@@ -471,7 +592,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -482,8 +603,22 @@
 
           </sequence>
         </testcase>
+        
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin Reset Idle Lockout Interval 2
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval 2
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Resetting Idle Lockout Interval
+                                  set idle-lockout-interval to 0
+            #@TestStep            Step 2. User Binding SearchObject returns 0
+            #@TestStep            Step 3. Sleep sleepForMilliSeconds 60000
+            #@TestStep            Step 4. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 4 steps are PASS
+        -->
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
         <testcase name="getTestCaseName('Reset Idle Lockout 2')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -508,7 +643,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -530,7 +665,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -542,7 +677,27 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : User Bind Reset Last Login Time -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            User Bind Reset Last Login Time
+            #@TestIssue           none
+            #@TestPurpose         User Bind Reset Last Login Time
+            #@TestPreamble        none
+            #@TestStep            Step 1. Check User Bind SearchObject returns 0
+            #@TestStep            Step 2. Admin Changing Idle Lockout Interval
+                                  set idle-lockout-interval to 50 s
+            #@TestStep            Step 3. User Binding Before Idle Lockout
+                                  SearchObject returns 0
+            #@TestStep            Step 4. Sleep sleepForMilliSeconds 30000
+            #@TestStep            Step 5. User Bind To Reset Last Login Time
+                                  SearchObject returns 0
+            #@TestStep            Step 6. Sleep sleepForMilliSeconds 30000
+            #@TestStep            Step 7. User Binding After Idle Lockout
+                                  SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 7 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Idle Lockout - User Bind Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -553,7 +708,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -582,7 +737,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -605,7 +760,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -628,7 +783,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -640,7 +795,21 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin Reset Idle Lockout Interval 3
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval 3
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Resetting Idle Lockout Interval
+                                  set idle-lockout-interval to 0
+            #@TestStep            Step 2. User Binding SearchObject returns 0
+            #@TestStep            Step 3. Sleep sleepForMilliSeconds 60000
+            #@TestStep            Step 4. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Reset Idle Lockout 3')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -665,7 +834,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -687,7 +856,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -699,7 +868,22 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Long Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Long Idle Lockout Interval
+            #@TestIssue           none
+            #@TestPurpose         Long Idle Lockout Interval
+            #@TestPreamble        none
+            #@TestStep            Step 1. Disable Last Login set 
+                                  last-login-time-attribute to reset
+            #@TestStep            Step 2. Check User Bind SearchObject returns 0
+            #@TestStep            Step 3. Admin Changing Idle Lockout Interval
+                                  set idle-lockout-interval to 50 s
+            #@TestStep            Step 4. User Binding SearchObject returns 49
+            #@TestPostamble       none
+            #@TestResult          Success if the 4 steps are PASS
+        -->        
+        
         <testcase name="getTestCaseName('Long Idle Lockout - Disabled Last Login')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -724,7 +908,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -752,7 +936,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -765,7 +949,23 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+          #@TestMarker       Last Login
+          #@TestName         Admin Reset Idle Lockout Interval 4
+          #@TestIssue        none
+          #@TestPurpose      Admin Reset Idle Lockout Interval 4
+          #@TestPreamble     none
+          #@TestStep         Step 1. Enable Last Login Attribute set
+                             last-login-time-attribute to ds-pwp-last-login-time
+          #@TestStep         Step 2. Admin Resetting Idle Lockout Interval
+                             set idllockout-interval to 0 s
+          #@TestStep         Step 3. User Binding SearchObject returns 0
+          #@TestStep         Step 4. Sleep sleepForMilliSeconds 60000
+          #@TestStep         Step 5. User Binding SearchObject returns 0
+          #@TestPostamble    none
+          #@TestResult       Success if the 5 steps are PASS
+        -->
+
         <testcase name="getTestCaseName('Reset Idle Lockout 4')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -804,7 +1004,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -826,7 +1026,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -838,7 +1038,22 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Long Idle Lockout Interval -->
+        <!--- Test Case information
+          #@TestMarker          Last Login
+          #@TestName            Long Idle Lockout Interval Disabled Last Login 2
+          #@TestIssue           none
+          #@TestPurpose         Long Idle Lockout Interval Disabled Last Login 2
+          #@TestPreamble        none
+          #@TestStep            Step 1. Disable Last Login set
+                                last-login-time-format to reset
+          #@TestStep            Step 2. Check User Bind SearchObject returns 0
+          #@TestStep            Step 3. Admin Changing Idle Lockout Interval
+                                set idle-lockout-interval to 50 s
+          #@TestStep            Step 4. User Binding SearchObject returns 49
+          #@TestPostamble       none
+          #@TestResult          Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Idle Lockout - Disabled Last Login 2')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -863,7 +1078,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -891,7 +1106,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -904,7 +1119,24 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin Reset Idle Lockout Interval 5
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval 5
+            #@TestPreamble        none
+            #@TestStep            Step 1. Enable Last Login Attribute set
+                                  last-login-time-format to EEE, MMM dd, 
+                                  yyyy HH:mm:ss
+            #@TestStep            Step 2. Admin Resetting Idle Lockout Interval
+                                  set idle-lockout-interval to 0 s
+            #@TestStep            Step 3. User Binding SearchObject returns 0
+            #@TestStep            Step 4. Sleep sleepForMilliSeconds to 60000
+            #@TestStep            Step 5. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 5 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Reset Idle Lockout 5')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -943,7 +1175,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -966,7 +1198,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -978,7 +1210,24 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Long Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Long Idle Lockout Interval - Repeat
+            #@TestIssue           none
+            #@TestPurpose         Long Idle Lockout Interval - Repeat
+            #@TestPreamble        none
+            #@TestStep            Step 1. Check User Bind SearchObject returns 0
+            #@TestStep            Step 2. Admin Changing Idle Lockout Interval
+                                  set idle-lockout-interval to 50 s
+            #@TestStep            Step 3. User Binding Before Idle Lockout
+                                  SearchObject returns 0
+            #@TestStep            Step 4. Sleep sleepForMilliSeconds to 60000
+            #@TestStep            Step 5. User Binding After Idle Lockout
+                                  SearchObject returns 49
+            #@TestPostamble       none
+            #@TestResult          Success if the 5 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Idle Lockout - Repeat')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -989,7 +1238,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -1017,7 +1266,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -1041,7 +1290,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1054,7 +1303,21 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin Reset Idle Lockout Interval 6
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval 6
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Resetting Idle Lockout Interval
+                                  set idle-lockout-interval to 0 s
+            #@TestStep            Step 2. User Binding SearchObject returns 0
+            #@TestStep            Step 3. Sleep sleepForMilliSeconds to 60000
+            #@TestStep            Step 4. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Reset Idle Lockout 6')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -1079,7 +1342,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1103,7 +1366,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'newdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1115,7 +1378,26 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Long Idle Lockout Interval -->
+        <!--- Test Case information
+          #@TestMarker        Last Login
+          #@TestName          Long Idle Lockout Interval - Pwd Change Override 2
+          #@TestIssue         none
+          #@TestPurpose       Long Idle Lockout Interval - Pwd Change Override 2
+         SearchObject returns 0
+          #@TestPreamble      none
+          #@TestStep          Step 1. Check User Bind SearchObject returns 0
+          #@TestStep          Step 2. Admin Changing Idle Lockout Interval
+                              set idle-lockout-interval to 50 s
+          #@TestStep          Step 3. User Binding Before Idle Lockout
+                              SearchObject returns 0
+          #@TestStep          Step 4. Sleep sleepForMilliSeconds to 60000
+          #@TestStep          Step 5. User Changing Password
+          #@TestStep          Step 6. User Binding After Idle Lockout
+                              SearchObject returns 0
+          #@TestPostamble     none
+          #@TestResult        Success if the 6 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Idle Lockout - Pwd Change Override 2')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -1126,7 +1408,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -1155,7 +1437,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'newdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -1175,15 +1457,13 @@
                'Security: Last Login: Long Idle Lockout - Pwd Change Override 2 Step 5. User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=jreuter,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'anotherdestroy' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=jreuter,%s' % basedn ,
+                    'dsNewPassword'          : 'anotherdestroy' }
             </call>
             
             <message>
@@ -1193,7 +1473,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'anotherdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1205,7 +1485,21 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Admin Reset Idle Lockout Interval 7
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval 7
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Resetting Idle Lockout Interval
+                                  set idle-lockout-interval to 0 s
+            #@TestStep            Step 2. User Binding SearchObject returns 0
+            #@TestStep            Step 3. Sleep sleepForMilliSeconds 60000
+            #@TestStep            Step 4. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Reset Idle Lockout 7')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -1230,7 +1524,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'anotherdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1254,7 +1548,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'anotherdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1266,7 +1560,26 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Long Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Long Idle Lockout - Pwd Change Override 3
+            #@TestIssue           none
+            #@TestPurpose         Long Idle Lockout - Pwd Change Override 3
+            #@TestPreamble        none
+            #@TestStep            Step 1. Disable Last Login set
+                                  last-login-time-format to reset
+            #@TestStep            Step 2. Check User Bind SearchObject returns 0
+            #@TestStep            Step 3. Admin Changing Idle Lockout Interval
+                                  set idle-lockout-interval to 50 s
+            #@TestStep            Step 4. User Binding Before Idle Lockout
+                                  SearchObject returns 49
+            #@TestStep            Step 5. Admin Changing Password
+            #@TestStep            Step 6. User Binding After Admin Pwd Change
+                                  SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 6 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Idle Lockout - Pwd Change Override 3')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -1291,7 +1604,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'anotherdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -1320,7 +1633,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                 'dsInstancePswd'   : 'anotherdestroy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -1332,15 +1645,13 @@
                'Security: Last Login: Long Idle Lockout - Pwd Change Override 3 Step 5. Admin Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=jreuter,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'lastdestroy' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=jreuter,%s' % basedn ,
+                    'dsNewPassword'          : 'lastdestroy' }
             </call>
             
             <message>
@@ -1350,7 +1661,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'lastdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1362,7 +1673,23 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Reset Idle Lockout Interval -->
+        <!--- Test Case information
+            #@TestMarker          Last Login
+            #@TestName            Postamble Admin Reset Idle Lockout Interval
+            #@TestIssue           none
+            #@TestPurpose         Admin Reset Idle Lockout Interval
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Resetting Idle Lockout Interval
+                                  set idle-lockout-interval'  to 0 s 
+            #@TestStep            Step 2. Admin Disabling Last Login Time 
+                                  Attribute last-login-time-attribute to reset
+            #@TestStep            Step 3. User Binding SearchObject returns 0
+            #@TestStep            Step 4. Sleep sleepForMilliSeconds 60000
+            #@TestStep            Step 5. User Binding SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the 5 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Postamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -1401,7 +1728,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'lastdestroy',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -1425,7 +1752,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=jreuter,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=jreuter,%s' % basedn ,
                   'dsInstancePswd'   : 'lastdestroy' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml
index daf2599..fb70fd1 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_duration.xml
@@ -32,7 +32,41 @@
   <function name="lockout_duration">
 
       <sequence>
+        
+         <!--- Test Suite information
+           #@TestSuiteName       Lockout Duration
+           #@TestSuitePurpose    Test Lockout Duration in Password Policy
+           #@TestSuiteGroup      Lockout Duration
+           #@TestScript          security_lockout_duration.xml
+          -->
+ 
+	<!--- Define default value for basedn -->
+          <script>
+            basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+          </script>
 
+         
+        <!--- Test Case information
+           #@TestMarker         Lockout Duration
+           #@TestName           Preamble
+           #@TestIssue          none
+           #@TestPurpose        Preamble
+           #@TestPreamble       none
+           #@TestStep           Step 1. Checking existence of 
+                                ds-cfg-lockout-duration compareEntry returns 0
+           #@TestStep           Step 2. Admin Changing Lockout Count
+                                set lockout-failure-count to 3 
+           #@TestStep           Step 3. User Lockout With Bad Pwd 3x 
+                                SearchObject returns 49 (3x with bad, 
+                                1x with correct one)
+           #@TestStep           Step 4. Admin Resetting User Pwd
+           #@TestStep           Step 5. User Bind With New Password
+                                SearchObject returns 0
+           #@TestPostamble      none
+           #@TestResult         Success if the 5 steps are PASS
+        -->
+        
+        
         <testcase name="getTestCaseName('Preamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -75,7 +109,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=mward,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -88,15 +122,13 @@
                'Security: Lockout Duration: Preamble Step 4. Admin Resetting User Pwd'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=mward,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'adminnormal' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mward,%s' % basedn ,
+                    'dsNewPassword'          : 'adminnormal' }
             </call>
             
             <message>
@@ -106,7 +138,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=mward,%s' % basedn ,
                   'dsInstancePswd'   : 'adminnormal' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -118,7 +150,17 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Change Lockout Cnt -->
+       <!--- Test Case information
+           #@TestMarker         Lockout Duration
+           #@TestName           Admin Change Lockout Duration
+           #@TestIssue          none
+           #@TestPurpose        Admin making Lockout Duration Short
+           #@TestPreamble       none
+           #@TestStep           set lockout-duration to 5 s
+           #@TestPostamble      none
+           #@TestResult         Success if the 5 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Make Lockout Duration Short')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -141,7 +183,24 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Change Lockout Duration -->
+       <!--- Test Case information
+           #@TestMarker         Lockout Duration
+           #@TestName           Testing Lockout Duration Short
+           #@TestIssue          none
+           #@TestPurpose        Testing Lockout Duration Short
+           #@TestPreamble       none
+           #@TestStep           Step 1. User Lockout with Bad Pwd 3x 
+                                SearchObject returns 49 (3x with bad, 
+                                1x with correct one)
+                                Sleeping sleepForMilliSeconds 8000
+           #@TestStep           Step 2. User Changing Password returns 0
+           #@TestStep           Step 3. Admin Resetting User Pwd
+           #@TestStep           Step 4. User Bind With New Password
+                                SearchObject returns 0
+           #@TestPostamble      none
+           #@TestResult         Success if the 4 steps are PASS
+        -->        
+        
         <testcase name="getTestCaseName('Short Lockout Duration')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -157,7 +216,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=mward,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -178,15 +237,13 @@
                'Security: lockout Duration: Short Lockout Duration Step 2. User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=mward,%s' % basedn ,
                     'dsInstancePswd'         : 'adminnormal' ,
-                    'DNToModify'             : 'uid=mward,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newnormal' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mward,%s' % basedn ,
+                    'dsNewPassword'          : 'newnormal' }
             </call>
             
             <message>
@@ -196,7 +253,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=mward,%s' % basedn ,
                   'dsInstancePswd'   : 'newnormal' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -208,7 +265,17 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Change Lockout Cnt -->
+     <!--- Test Case information
+           #@TestMarker         Lockout Duration
+           #@TestName           Admin Change Lockout Duration
+           #@TestIssue          none
+           #@TestPurpose        Admin making Lockout Duration Long
+           #@TestPreamble       none
+           #@TestStep           set lockout-duration to 5 days
+           #@TestPostamble      none
+           #@TestResult         Success if the step is PASS
+        -->
+        
         <testcase name="getTestCaseName('Make Lockout Duration Long')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -231,7 +298,25 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Change Lockout Duration -->
+ 
+        <!--- Test Case information
+           #@TestMarker         Lockout Duration
+           #@TestName           Testing Lockout Duration Long
+           #@TestIssue          none
+           #@TestPurpose        Testing Lockout Duration Long
+           #@TestPreamble       none
+           #@TestStep           Step 1. User Initial Bind returns 0
+           #@TestStep           Step 2. User Lockout with Bad Pwd 3x 
+                                SearchObject returns 49 (3x with bad, 
+                                1x with correct one)
+                                Sleeping sleepForMilliSeconds 8000
+           #@TestStep           Step 3. User Changing Password returns 49
+           #@TestStep           Step 4. User Bind With New Password
+                                SearchObject returns 49
+           #@TestPostamble      none
+           #@TestResult         Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Long Lockout Duration')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -242,7 +327,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=bjablons,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=bjablons,%s' % basedn ,
                   'dsInstancePswd'   : 'strawberry' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -261,7 +346,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=bjablons,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=bjablons,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -282,15 +367,13 @@
                'Security: lockout Duration: Long Lockout Duration Step 3. User Changing Password'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
-                    'dsInstanceDn'           : 'uid=bjablons,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=bjablons,%s' % basedn ,
                     'dsInstancePswd'         : 'strawberry' ,
-                    'DNToModify'             : 'uid=bjablons,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newberry' ,
-                    'changetype'             : 'replace' ,
+                    'dsAuthzID'              : 'dn:uid=bjablons,%s' % basedn ,
+                    'dsNewPassword'          : 'newberry' ,
                     'expectedRC'             : 49 }
             </call>
             
@@ -301,7 +384,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=bjablons,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=bjablons,%s' % basedn ,
                   'dsInstancePswd'   : 'newberry' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -314,6 +397,25 @@
           </sequence>
         </testcase>
 
+
+        <!--- Test Case information
+           #@TestMarker         Lockout Duration
+           #@TestName           Postamble
+           #@TestIssue          none
+           #@TestPurpose        Postamble
+           #@TestPreamble       none
+           #@TestStep           Step 1. Admin resetting Lockout Duration to 0
+           #@TestStep           Step 2. User Lockout with Bad Pwd 3x 
+                                SearchObject returns 49 (3x with bad, 
+                                1x with correct one)
+                                Sleeping sleepForMilliSeconds 8000
+           #@TestStep           Step 3. User Changing Password returns 0
+           #@TestStep           Step 4. User Bind With New Password
+                                SearchObject returns 0
+           #@TestPostamble      none
+           #@TestResult         Success if the 4 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Postamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -343,7 +445,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=mward,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -356,15 +458,13 @@
                'Security: Lockout Duration: Postamble Step 3. Admin Resetting User Pwd'
             </message>
 
-            <call function="'modifyAnAttribute'">
+            <call function="'ldapPasswordModifyWithScript'">
                   { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                     'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                     'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                     'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
-                    'DNToModify'             : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'normal' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=mward,%s' % basedn ,
+                    'dsNewPassword'          : 'normal' }
             </call>
             
             <message>
@@ -374,7 +474,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=mward,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=mward,%s' % basedn ,
                   'dsInstancePswd'   : 'normal' ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_fail_cnt.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_fail_cnt.xml
index 82997d8..41ae4fc 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_fail_cnt.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_lockout_fail_cnt.xml
@@ -32,13 +32,40 @@
   <function name="lockout_fail_cnt">
 
       <sequence>
+        
+          <!--- Test Suite information
+            #@TestSuiteName       Lockout Failure Count
+            #@TestSuitePurpose    Test the password Policy Lockout Failure Count
+            #@TestSuiteGroup      Lockout Failure Count
+            #@TestScript          security_lockout_fail_cnt.xml
+          -->
+          
+   <!--- Define default value for basedn,basepwp, msg -->
+   <script>
+   basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+   basepwp = 'cn=Default Password Policy,cn=Password Policies,cn=config'
+   msg = 'Security: Lockout Fail Cnt:'
+   </script>
 
-        <!--- Test Case : Preamble 1 - Check Default-->
+        <!--- Test Case information
+          #@TestMarker          Lockout Failure Count
+          #@TestName            Test Preamble
+          #@TestIssue           none
+          #@TestPurpose         Check Default value ds-cfg-lockout-failure-count
+          #@TestPreamble        none
+          #@TestStep            Step 1. Check for existence of
+                                ds-cfg-lockout-failure-count and value is 0
+          #@TestStep            Step 2. Default Bind With Bad Pwd 3x RC 49
+                                then User search with good password returns 0
+          #@TestPostamble       none
+          #@TestResult          Success if the 2 steps are PASS
+        -->
+          
         <testcase name="getTestCaseName('Preamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Lockout Fail Cnt: Preamble Step 1. Check for existence of ds-cfg-lockout-failure-count'
+'%s Preamble Step 1. Check for existence of ds-cfg-lockout-failure-count' % msg
             </message>
 
             <call function="'compareEntry'">
@@ -47,11 +74,11 @@
                 'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
                 'attrToBeCompared'    : 'ds-cfg-lockout-failure-count:0',
-                'entryToBeCompared'   : 'cn=Default Password Policy,cn=Password Policies,cn=config' }
+                'entryToBeCompared'   : basepwp }
             </call>
 
             <message>
-               'Security: Lockout Fail Cnt: Preamble Step 2. Default Bind With Bad Pwd 3x'
+'%s Preamble Step 2. Default Bind With Bad Pwd 3x' % msg
             </message>
 
             <script>
@@ -62,7 +89,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=bhall,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=bhall,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -74,7 +101,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=bhall,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=bhall,%s' % basedn ,
                   'dsInstancePswd'   : 'oranges',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -85,7 +112,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Amin Change Lockout Cnt -->
+        <!--- Test Case information
+          #@TestMarker          Lockout Failure Count
+          #@TestName            Admin Change Lockout Count
+          #@TestIssue           none
+          #@TestPurpose         Admin Change Lockout Count
+          #@TestPreamble        none
+          #@TestStep            Admin Changing Lockout Count set
+                                lockout-failure-count to 3
+          #@TestPostamble       none
+          #@TestResult          Success if modifyPwdPolicy returns 0.
+        -->
+
         <testcase name="getTestCaseName('Admin Change Lockout Cnt')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -108,12 +146,22 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Lockout With Bad Pwd 3x -->
+        <!--- Test Case information
+          #@TestMarker          Lockout Failure Count
+          #@TestName            Lockout With Bad Pwd 3x
+          #@TestIssue           none
+          #@TestPurpose         Lockout With Bad Pwd 3x
+          #@TestPreamble        none
+          #@TestStep            Lockout With Bad Pwd 3x SearchObject RC 49 3x
+          #@TestPostamble       none
+          #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Lockout With Bad Pwd 3x')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Lockout Fail Cnt: Lockout With Bad Pwd 3x'
+               '%s Lockout With Bad Pwd 3x' % msg
             </message>
 
             <script>
@@ -124,7 +172,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=bhall,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=bhall,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -138,12 +186,26 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Postamble Reset -->
+        <!--- Test Case information
+          #@TestMarker        Lockout Failure Count
+          #@TestName          Postamble Reset
+          #@TestIssue         none
+          #@TestPurpose       Reseting the Password policy and verify it
+          #@TestPreamble      none
+          #@TestStep          Step 1. Admin Resetting Lockout Fail Count
+                              set lockout-failure-count to 0
+          #@TestStep          Step 2. Check Bind With Previous User Lockout RC 0
+          #@TestStep          Step 3. Check Bind With Bad Pwd 3x RC 49 3x
+                              then User search with good password returns 0
+          #@TestPostamble     none
+          #@TestResult        Success if the 3 steps are PASS
+        -->
+        
         <testcase name="getTestCaseName('Postamble Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Lockout Fail Cnt: Postamble Reset: Step 1. Admin Resetting Lockout Fail Count'
+'%s Postamble Reset: Step 1. Admin Resetting Lockout Fail Count' % msg
             </message>
 
             <call function="'modifyPwdPolicy'">
@@ -157,14 +219,14 @@
             </call>
             
             <message>
-               'Security: Lockout Fail Cnt: Postamble Step 2. Check Bind With Previous User Lockout'
+'%s Postamble Step 2. Check Bind With Previous User Lockout' % msg
             </message>
 
             <!--- Check Lockouted User -->
            <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=bhall,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=bhall,%s' % basedn ,
                 'dsInstancePswd'   : 'oranges' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -172,7 +234,7 @@
             </call>
 
             <message>
-               'Security: Lockout Fail Cnt: Postamble Step 3. Check Bind With Bad Pwd 3x'
+      '%s Postamble Step 3. Check Bind With Bad Pwd 3x' % msg
             </message>
 
             <script>
@@ -183,7 +245,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -195,7 +257,7 @@
             <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=gfarmer,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=gfarmer,%s' % basedn ,
                   'dsInstancePswd'   : 'ruling',
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_min_pwd_age.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_min_pwd_age.xml
index e2b5b42..07a7cc9 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_min_pwd_age.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_min_pwd_age.xml
@@ -32,8 +32,30 @@
   <function name="min_pwd_age">
 
       <sequence>
+        
+         <!--- Test Suite information
+            #@TestSuiteName       Minimum Password Age
+            #@TestSuitePurpose    Test the Password Policy Minimum Password Age
+            #@TestSuiteGroup      Minimum Password Age
+            #@TestScript          security_min_pwd_age.xml
+          -->
 
-        <!--- Test Case : Preamble Check -->
+        <!--- Define default value for basedn -->
+          <script>
+            basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+          </script>
+
+          <!--- Test Case information
+            #@TestMarker          Minimum Password Age
+            #@TestName            Test Preamble
+            #@TestIssue           none
+            #@TestPurpose         Checking existence of ds-cfg-min-password-age
+            #@TestPreamble        none
+            #@TestStep            Checking existence of ds-cfg-min-password-age
+            #@TestPostamble       none
+            #@TestResult          Success if compareEntry returns 0.
+          -->
+          
         <testcase name="getTestCaseName('Preamble Check')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -55,7 +77,22 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Test -->
+                  <!--- Test Case information
+            #@TestMarker          Minimum Password Age
+            #@TestName            Test Minimum Password Age
+            #@TestIssue           none
+            #@TestPurpose         Test Minimum Password Age
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Enabling Minimum Pwd Age
+                                  set min-password-age to 24 h
+            #@TestStep            Step 2. User Changing Password
+                                  ldapPasswordModifyWithScript returns 53
+            #@TestStep            Step 3. User Searching With Password
+                                  SearchObject returns 49
+            #@TestPostamble       none
+            #@TestResult          Success if the 3 steps are PASS
+          -->
+          
         <testcase name="getTestCaseName('Test')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -78,15 +115,13 @@
                'Security: Min Pwd Age: Test: Step 2. User Changing Password'
             </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 Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                     'dsInstancePswd'         : 'gosling' ,
-                    'DNToModify'             : 'uid=dmiller,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newgosling' ,
-                    'changetype'             : 'replace' ,
+                    'dsAuthzID'              : 'dn:uid=dmiller,%s' % basedn ,
+                    'dsNewPassword'          : 'newgosling' ,
                     'expectedRC'             : 53  }
             </call>
             
@@ -98,7 +133,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                 'dsInstancePswd'   : 'newgosling' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -110,7 +145,23 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Postamble Reset -->
+        
+          <!--- Test Case information
+            #@TestMarker          Minimum Password Age
+            #@TestName            Postamble Reset
+            #@TestIssue           none
+            #@TestPurpose         Reseting the password Policy
+            #@TestPreamble        none
+            #@TestStep            Step 1. Admin Disabling Minimum Pwd Age
+                                  set min-password-age to 0 s
+            #@TestStep            Step 2. User Changing Password RC 0
+            #@TestStep            Step 3. User Searching With Password RC 0
+            #@TestStep            Step 4. User Changing Password RC 0
+            #@TestStep            Step 5. User Searching With Password RC 0
+            #@TestPostamble       none
+            #@TestResult          Success if  returns 0.
+          -->
+          
         <testcase name="getTestCaseName('Postamble Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -132,15 +183,13 @@
                'Security: Min Pwd Age: Postamble Reset: Step 2. User Changing Password'
             </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 Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                     'dsInstancePswd'         : 'gosling' ,
-                    'DNToModify'             : 'uid=dmiller,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'newgosling' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=dmiller,%s' % basedn ,
+                    'dsNewPassword'          : 'newgosling' }
             </call>
             
             <!--- User Search With Password -->
@@ -151,7 +200,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                 'dsInstancePswd'   : 'newgosling' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -163,15 +212,13 @@
                'Security: Min Pwd Age: Postamble Reset: Step 4. User Changing Password'
             </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 Policy Tests,dc=example,dc=com' ,
+                    'dsInstanceDn'           : 'uid=dmiller,%s' % basedn ,
                     'dsInstancePswd'         : 'newgosling' ,
-                    'DNToModify'             : 'uid=dmiller,ou=People,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
-                    'attributeName'          : 'userpassword' ,
-                    'newAttributeValue'      : 'gosling' ,
-                    'changetype'             : 'replace'  }
+                    'dsAuthzID'              : 'dn:uid=dmiller,%s' % basedn ,
+                    'dsNewPassword'          : 'gosling' }
             </call>
             
             <!--- User Search With Password -->
@@ -182,7 +229,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=dmiller,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=dmiller,%s' % basedn ,
                 'dsInstancePswd'   : 'gosling' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_mult_pwd_policies.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_mult_pwd_policies.xml
index 006282f..ea67cd9 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_mult_pwd_policies.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_mult_pwd_policies.xml
@@ -33,12 +33,39 @@
 
       <sequence>
 
-        <!--- Test Case : Preamble 1 - Add New Passwords Policy-->
+         <!--- Test Suite information
+            #@TestSuiteName       Multiple Password Policies
+            #@TestSuitePurpose    Test Multiple Password Policies
+            #@TestSuiteGroup      Multiple Password Policies
+            #@TestScript          security_mult_pwd_policies.xml
+          -->
+          
+   <!--- Define default value for basedn, msg1, msg2 -->
+   <script>
+   basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+   msg1 = 'default-password-storage-scheme:Salted SHA-1'
+   msg2 = 'password-attribute:userPassword'
+   </script>
+
+          
+        <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Add New Password Policy
+            #@TestIssue           none
+            #@TestPurpose         Preamble - Add Sales Password Policy
+            #@TestPreamble        none
+            #@TestStep            with dsconfig create-password-policy Sales 
+                                  Password Policy and set 
+                                  default-password-storage-schemeSalted SHA-1
+            #@TestPostamble       none
+            #@TestResult          Success if dsconfig returns 0
+        -->
+        
         <testcase name="getTestCaseName('Preamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Mult Pwd Policies: Preamble - Add Sales Password Policy'
+             'Security: Mult Pwd Policies: Preamble - Add Sales Password Policy'
             </message>
 
             <call function="'dsconfig'">
@@ -46,38 +73,50 @@
               'dsInstancePort'       : DIRECTORY_INSTANCE_PORT ,
               'dsInstanceDn'         : DIRECTORY_INSTANCE_DN ,
               'dsInstancePswd'       : DIRECTORY_INSTANCE_PSWD ,
-              'subcommand'           : 'create-password-policy' ,    
+              'subcommand'           : 'create-password-policy' ,
               'objectType'           : 'policy-name' ,
               'objectName'           : 'Sales Password Policy',
-              'optionsString'        : '--set "default-password-storage-scheme:Salted SHA-1" --set password-attribute:userPassword',
-              'expectedRC'           : 0 } 
-            </call>          
+              'optionsString'        : '--set "%s" --set %s' % (msg1,msg2),
+              'expectedRC'           : 0 }
+            </call>
             
             <call function="'testCase_Postamble'"/>
             
           </sequence>
         </testcase>
 
-        <!--- Test Case : Add Entry With New Password Policy -->
+        <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Adding New Entry With Sales Password Policy
+            #@TestIssue           none
+            #@TestPurpose         Adding New Entry With Sales Password Policy
+            #@TestPreamble        none
+            #@TestStep            addEntry add_sales_person.ldif
+                                  SearchObject with uid=sguy returns 0
+                                  SearchObject with uid=sgal eturns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
         <testcase name="getTestCaseName('Add New Entry')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Mult Pwd Policies: Adding New Entry With Sales Password Policy'
+      'Security: Mult Pwd Policies: Adding New Entry With Sales Password Policy'
             </message>
 
             <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/security/pwd_policy/add_sales_person.ldif' % logsRemoteDataDir }
+         { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+           'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+           'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+           'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+           'entryToBeAdded'   : '%s/security/pwd_policy/add_sales_person.ldif' \
+                                % logsRemoteDataDir }
             </call>
 
              <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=sguy,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=sguy,%s' % basedn ,
                 'dsInstancePswd'   : 'superguy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -87,7 +126,7 @@
              <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=sgal,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=sgal,%s' % basedn ,
                 'dsInstancePswd'   : 'supergal' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -99,7 +138,19 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Modify Sales Pwd Policy -->
+        <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Modify Sales Pwd Policy
+            #@TestIssue           none
+            #@TestPurpose         Admin Changing Sales Lockout Count
+            #@TestPreamble        none
+            #@TestStep            Admin Changing Sales Lockout Count
+                                  modifyPwdPolicy for Sales Password Policy
+                                  set lockout-failure-count to 3
+            #@TestPostamble       none
+            #@TestResult          Success if modifyPwdPolicy returns 0
+        -->
+        
         <testcase name="getTestCaseName('Modify Sales Pwd Policy')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -123,12 +174,24 @@
         </testcase>
 
             
-        <!--- Test Case : Test Sales Password Policy -->
+         <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Test Sales Password Policy
+            #@TestIssue           none
+            #@TestPurpose         Test Sales Password Policy
+            #@TestPreamble        none
+            #@TestStep            Testing Sales Pwd Policy with Lockout Count
+                                  search with bad pwd 3x good pwd 1x
+                                  SearchObject returns 49 4x
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Test Sales Pwd Policy')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Mult Pwd Policies: Testing Sales Pwd Policy with Lockout Count'
+      'Security: Mult Pwd Policies: Testing Sales Pwd Policy with Lockout Count'
             </message>
 
             <script>
@@ -139,7 +202,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=sguy,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=sguy,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -152,12 +215,25 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Test Default Password Policy -->
+        <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Testing Default Pwd Policy with Lockout Count
+            #@TestIssue           none
+            #@TestPurpose         Testing Default Pwd Policy with Lockout Count
+            #@TestPreamble        none
+            #@TestStep            Testing Default Pwd Policy with Lockout Count
+                                  search with bad pwd 3x good pwd 1x
+                                  SearchObject returns 49 3x
+                                  SearchObject returns 0 1x
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Test Default Pwd Policy')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Mult Pwd Policies: Testing Default Pwd Policy with Lockout Count'
+    'Security: Mult Pwd Policies: Testing Default Pwd Policy with Lockout Count'
             </message>
 
             <script>
@@ -168,7 +244,7 @@
               <call function="'SearchObject'">
                 { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                  'dsInstanceDn'     : 'uid=tclow,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                  'dsInstanceDn'     : 'uid=tclow,%s' % basedn ,
                   'dsInstancePswd'   : '%s' % pwds ,
                   'dsBaseDN'         : 'dc=example,dc=com' ,
                   'dsFilter'         : 'objectclass=*'  ,
@@ -180,7 +256,7 @@
             <call function="'SearchObject'">
     { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
       'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-      'dsInstanceDn'     : 'uid=tclow,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+      'dsInstanceDn'     : 'uid=tclow,%s' % basedn ,
       'dsInstancePswd'   : 'cardreader' ,
       'dsBaseDN'         : 'dc=example,dc=com' ,
       'dsFilter'         : 'objectclass=*'  ,
@@ -192,7 +268,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Delete Sales Pwd Policy -->
+        <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Delete Sales Pwd Policy
+            #@TestIssue           none
+            #@TestPurpose         Admin Deleting Sales Lockout Count
+            #@TestPreamble        none
+            #@TestStep            Admin Deleting Sales Lockout Count
+                                  dsconfig delete Sales Password Policy
+            #@TestPostamble       none
+            #@TestResult          Success if dsconfig returns 0
+        -->
+        
         <testcase name="getTestCaseName('Delete Sales Pwd Policy')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -216,18 +303,28 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Test Sales Password Policy 2-->
+        <!--- Test Case information
+            #@TestMarker          Multiple Password Policies
+            #@TestName            Test Sales Pwd Policy after Remove
+            #@TestIssue           none
+            #@TestPurpose         Test Sales Pwd Policy after Remove
+            #@TestPreamble        none
+            #@TestStep            Testing Sales Pwd Policy after removing it
+            #@TestPostamble       none
+            #@TestResult          Success if SearchObject returns 80 (Other)
+        -->
+        
         <testcase name="getTestCaseName('Test Sales Pwd Policy 2')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Mult Pwd Policies: Testing Sales Pwd Policy with Lockout Count'
+      'Security: Mult Pwd Policies: Testing Sales Pwd Policy with Lockout Count'
             </message>
 
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=sgal,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=sgal,%s' % basedn ,
                 'dsInstancePswd'   : 'supergal' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_preencoded_pwds.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_preencoded_pwds.xml
index 216c3e2..385e341 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_preencoded_pwds.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_preencoded_pwds.xml
@@ -33,12 +33,39 @@
 
       <sequence>
 
-        <!--- Test Case : Preamble 1 - Check Default-->
+         <!--- Test Suite information
+           #@TestSuiteName       Preencoded Passwords
+           #@TestSuitePurpose    Test Preencoded Passwords in Password Policy
+           #@TestSuiteGroup      Preencoded Passwords
+           #@TestScript          security_preencoded_pwds.xml
+          -->
+                 
+     <!--- Define default value for basedn -->
+     <script>
+     basedn = 'ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com'
+     basepwp = 'cn=Default Password Policy,cn=Password Policies,cn=config'
+     msg1 = 'Security: Preencoded Pwds: Preamble'
+     </script>
+     
+     
+        <!--- Test Case information
+            #@TestMarker          Preencoded Passwords
+            #@TestName            Preamble Check Default
+            #@TestIssue           none
+            #@TestPurpose         Preamble Check Default
+            #@TestPreamble        none
+            #@TestStep            Check for existence of 
+                                  ds-cfg-allow-pre-encoded-passwords
+                                  and value is set to false
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Preamble')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Preencoded Pwds: Preamble - Check for existence of ds-cfg-allow-pre-encoded-passwords'
+'%s - Check for existence of ds-cfg-allow-pre-encoded-passwords' % msg1
             </message>
 
             <call function="'compareEntry'">
@@ -46,8 +73,8 @@
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                 'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                 'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'attrToBeCompared'   : 'ds-cfg-allow-pre-encoded-passwords:false',
-                'entryToBeCompared'   : 'cn=Default Password Policy,cn=Password Policies,cn=config' }
+                'attrToBeCompared' : 'ds-cfg-allow-pre-encoded-passwords:false',
+                'entryToBeCompared': basepwp }
             </call>
 
             <call function="'testCase_Postamble'"/>
@@ -55,29 +82,41 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Add Entry With Pre-encoded Password -->
+        <!--- Test Case information
+            #@TestMarker          Preencoded Passwords
+            #@TestName            Add Entry With Pre-encoded Password
+            #@TestIssue           none
+            #@TestPurpose         Adding New Entry With a Pre-encoded Password
+            #@TestPreamble        none
+            #@TestStep            addEntry add_entry_preencoded_pwd.ldif RC 53
+                                  SearchObject returns 49
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Default - Add New Entry')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Preencoded Pwds: Adding New Entry With a Pre-encoded Password'
+      'Security: Preencoded Pwds: Adding New Entry With a Pre-encoded Password'
             </message>
 
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/security/pwd_policy/add_entry_preencoded_pwd.ldif' % logsRemoteDataDir ,
-                'expectedRC'       : 53 }
-            </call>
+   <call function="'addEntry'">
+ { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+   'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+   'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+   'entryToBeAdded'   : '%s/security/pwd_policy/add_entry_preencoded_pwd.ldif' \
+                        % logsRemoteDataDir ,
+   'expectedRC'       : 53 }
+   </call>
 
              <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=pguy,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=pguy,%s' % basedn ,
                 'dsInstancePswd'   : 'superguy' ,
-                'dsBaseDN'   : 'dc=example,dc=com' ,
+                'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
                 'extraParams'      : '-s base' ,
                 'expectedRC'       : 49 }
@@ -88,7 +127,17 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Enable Pre-encoded Passwords -->
+        <!--- Test Case information
+            #@TestMarker          Preencoded Passwords
+            #@TestName            Enable Pre-encoded Passwords in pwd policy
+            #@TestIssue           none
+            #@TestPurpose         Admin Enabling Preencoded Pwds
+            #@TestPreamble        none
+            #@TestStep            set allow-pre-encoded-passwords to true
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Enable Preencoded Pwds')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -111,27 +160,38 @@
           </sequence>
         </testcase>
 
-            
-        <!--- Test Case : Test Enabled Pre-encoded Passwords -->
+         <!--- Test Case information
+            #@TestMarker          Preencoded Passwords
+            #@TestName            Test Enabled Pre-encoded Passwords
+            #@TestIssue           none
+            #@TestPurpose         Test Enabled Pre-encoded Passwords
+            #@TestPreamble        none
+            #@TestStep            addEntry add_entry_preencoded_pwd.ldif RC 0
+                                  SearchObject returns 0
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->           
+
         <testcase name="getTestCaseName('Enabled - Add New Entry')">
           <sequence>
             <call function="'testCase_Preamble'"/>
             <message>
-               'Security: Preencoded Pwds: Add New Entry With Pre-encoded Password'
+           'Security: Preencoded Pwds: Add New Entry With Pre-encoded Password'
             </message>
 
-            <call function="'addEntry'">
-              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
-                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
-                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
-                'entryToBeAdded'   : '%s/security/pwd_policy/add_entry_preencoded_pwd.ldif' % logsRemoteDataDir }
-            </call>
+   <call function="'addEntry'">
+ { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+   'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+   'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
+   'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
+   'entryToBeAdded'   : '%s/security/pwd_policy/add_entry_preencoded_pwd.ldif' \
+                        % logsRemoteDataDir }
+   </call>
 
              <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=pguy,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=pguy,%s' % basedn ,
                 'dsInstancePswd'   : 'superguy' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
@@ -143,7 +203,18 @@
           </sequence>
         </testcase>
 
-        <!--- Test Case : Disable Pre-encoded Passwordds -->
+         <!--- Test Case information
+            #@TestMarker          Preencoded Passwords
+            #@TestName            Disable Pre-encoded Passwords
+            #@TestIssue           none
+            #@TestPurpose         Admin Disabling Pre-encoded Passwords
+            #@TestPreamble        none
+            #@TestStep            Disable Pre-encoded Passwordds 0
+                                  SearchObject returns 49
+            #@TestPostamble       none
+            #@TestResult          Success if the test is PASS
+        -->
+        
         <testcase name="getTestCaseName('Disable Preencoded Pwds')">
           <sequence>
             <call function="'testCase_Preamble'"/>
@@ -164,7 +235,7 @@
             <call function="'SearchObject'">
               { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                 'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
-                'dsInstanceDn'     : 'uid=pgal,ou=people,ou=password tests,o=Pwd Policy Tests,dc=example,dc=com' ,
+                'dsInstanceDn'     : 'uid=pgal,%s' % basedn ,
                 'dsInstancePswd'   : 'supergal' ,
                 'dsBaseDN'         : 'dc=example,dc=com' ,
                 'dsFilter'         : 'objectclass=*'  ,
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml
index 76c8ce2..7b3966f 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_pwd_policy.xml
@@ -39,7 +39,7 @@
   
           <script>
             if not CurrentTestPath.has_key('group'):
-              CurrentTestPath['group']='security'                                          
+              CurrentTestPath['group']='security'
             CurrentTestPath['suite']=STAXCurrentBlock
           </script>
           
@@ -60,19 +60,23 @@
                                       
 
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_setup_pwd_policy.xml' % (TESTS_DIR)"/>
+          file="'%s/testcases/security/pwd_policy/security_setup_pwd_policy.xml'
+          % (TESTS_DIR)"/>
           <call function="'setup_pwd_policy'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_user_pwd_policy.xml' % (TESTS_DIR)"/>
+          file="'%s/testcases/security/pwd_policy/security_user_pwd_policy.xml'
+          % (TESTS_DIR)"/>
           <call function="'user_pwd_policy'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_force_pwd_change.xml' % (TESTS_DIR)"/>
+          file="'%s/testcases/security/pwd_policy/security_force_pwd_change.xml'
+          % (TESTS_DIR)"/>
           <call function="'force_pwd_change'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml' % (TESTS_DIR)"/>
+file="'%s/testcases/security/pwd_policy/security_force_pwd_change_all_users.xml'
+% (TESTS_DIR)"/>
           <call function="'force_pwd_change_all_users'" />
           <!--
           <import machine="STAF_LOCAL_HOSTNAME"
@@ -84,35 +88,43 @@
           <call function="'disable_max_pwd_age'" />
           -->
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_min_pwd_age.xml' % (TESTS_DIR)"/>
+            file="'%s/testcases/security/pwd_policy/security_min_pwd_age.xml'
+            % (TESTS_DIR)"/>
           <call function="'min_pwd_age'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_lockout_fail_cnt.xml' % (TESTS_DIR)"/>
+          file="'%s/testcases/security/pwd_policy/security_lockout_fail_cnt.xml'
+          % (TESTS_DIR)"/>
           <call function="'lockout_fail_cnt'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_grace_login.xml' % (TESTS_DIR)"/>
+            file="'%s/testcases/security/pwd_policy/security_grace_login.xml'
+            % (TESTS_DIR)"/>
           <call function="'grace_login'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_mult_pwd_policies.xml' % (TESTS_DIR)"/>
+         file="'%s/testcases/security/pwd_policy/security_mult_pwd_policies.xml'
+         % (TESTS_DIR)"/>
           <call function="'mult_pwd_policies'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_preencoded_pwds.xml' % (TESTS_DIR)"/>
+          file="'%s/testcases/security/pwd_policy/security_preencoded_pwds.xml'
+          % (TESTS_DIR)"/>
           <call function="'preencoded_pwds'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_lockout_duration.xml' % (TESTS_DIR)"/>
+          file="'%s/testcases/security/pwd_policy/security_lockout_duration.xml'
+          % (TESTS_DIR)"/>
           <call function="'lockout_duration'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_last_login.xml' % (TESTS_DIR)"/>
+            file="'%s/testcases/security/pwd_policy/security_last_login.xml'
+            % (TESTS_DIR)"/>
           <call function="'last_login'" />
   
           <import machine="STAF_LOCAL_HOSTNAME"
-            file="'%s/testcases/security/pwd_policy/security_teardown_pwd_policy.xml' % (TESTS_DIR)"/>
+       file="'%s/testcases/security/pwd_policy/security_teardown_pwd_policy.xml'
+       % (TESTS_DIR)"/>
           <call function="'teardown_pwd_policy'" />
   
 
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_setup_pwd_policy.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_setup_pwd_policy.xml
index 224b0e4..e8ce255 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_setup_pwd_policy.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_setup_pwd_policy.xml
@@ -41,7 +41,6 @@
             #@TestScript          security_setup_pwd_policy.xml
           -->
           
-             
            <!--- Test Case information
             #@TestMarker          setup Password Policy
             #@TestName            setup: Add Initials Entries
@@ -62,11 +61,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_policy/pwd_policy_startup.ldif' % logsRemoteDataDir }
+        { 'dsInstanceHost'  : DIRECTORY_INSTANCE_HOST ,
+          'dsInstancePort'  : DIRECTORY_INSTANCE_PORT ,
+          'dsInstanceDn'    : DIRECTORY_INSTANCE_DN ,
+          'dsInstancePswd'  : DIRECTORY_INSTANCE_PSWD ,
+          'entryToBeAdded'  : '%s/security/pwd_policy/pwd_policy_startup.ldif'\
+                              % logsRemoteDataDir }
             </call>
 
             <call function="'testCase_Postamble'"/>
diff --git a/opends/tests/functional-tests/testcases/security/pwd_policy/security_teardown_pwd_policy.xml b/opends/tests/functional-tests/testcases/security/pwd_policy/security_teardown_pwd_policy.xml
index 43e503a..1e83071 100755
--- a/opends/tests/functional-tests/testcases/security/pwd_policy/security_teardown_pwd_policy.xml
+++ b/opends/tests/functional-tests/testcases/security/pwd_policy/security_teardown_pwd_policy.xml
@@ -33,8 +33,24 @@
 
       <sequence>
 
-        <!--- Test Case : Password Policy Teardown -->
-        <!--- Delete Branch -->
+        <!--- Test Suite information
+           #@TestSuiteName       Teardown
+           #@TestSuitePurpose    Test Teardown in Password Policy
+           #@TestSuiteGroup      Teardown
+           #@TestScript          security_lockout_duration.xml
+          -->
+          
+        <!--- Test Case information
+           #@TestMarker         Teardown
+           #@TestName           Delete Branch
+           #@TestIssue          none
+           #@TestPurpose        Delete Branch
+           #@TestPreamble       none
+           #@TestStep           DeleteEntry -x o=Pwd Policy Tests
+           #@TestPostamble      none
+           #@TestResult         Success if the step is PASS
+        -->
+
         <testcase name="getTestCaseName('Postamble Reset')">
           <sequence>
             <call function="'testCase_Preamble'"/>

--
Gitblit v1.10.0