From 3b265eab7f3ec8ba8653925b4693891e1c70f43e Mon Sep 17 00:00:00 2001
From: Gary Williams <gary.williams@forgerock.com>
Date: Fri, 09 Mar 2012 18:00:26 +0000
Subject: [PATCH] Add Password Policy Last Login functional tests
---
opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login.xml | 168 +++
opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login_tests.xml | 2384 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 2,552 insertions(+), 0 deletions(-)
diff --git a/opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login.xml b/opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login.xml
new file mode 100644
index 0000000..3c38789
--- /dev/null
+++ b/opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License"). You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/CDDLv1_0.txt
+ ! or http://forgerock.org/license/CDDLv1.0.html.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/CDDLv1_0.txt. If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ ! Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ ! Copyright 2012 ForgeRock AS.
+ ! -->
+<stax>
+ <defaultcall function="main_pwp_last_login"/>
+ <function name="main_pwp_last_login" scope="local">
+ <sequence>
+ <block name="'main_pwp_last_login'">
+ <try>
+ <sequence>
+ <script>
+ CurrentTestPath['group'] = 'password_policy'
+ CurrentTestPath['suite'] = 'last_login'
+
+ _group=CurrentTestPath['group']
+ _groupdir='%s/testcases/%s' % (TESTS_DIR,_group)
+ _label = 'PWP Last Login'
+ </script>
+
+ <!--- Test Suite information
+ #@TestSuiteName Password policy last_login test suite
+ #@TestSuitePurpose Verify password policy last_login operations
+ #@TestSuiteID last_login
+ #@TestSuiteGroup password_policy
+ #@TestGroup password_policy
+ #@TestScript password_policy.xml
+ #@TestHTMLLink http://www.forgerock.org/
+ -->
+ <call function="'testSuite_Preamble'"/>
+
+ <try>
+ <sequence>
+
+ <call function="'common_setup'">
+ {
+ 'quickStart' : False ,
+ 'startServer' : True ,
+ 'loadData' : True ,
+ 'ldifFile' : '%s/password_policy/pwp_startup.ldif' % remote.data ,
+ 'stopServer' : False ,
+ 'friendlyName' : _label
+ }
+ </call>
+
+ <!-- List of Import of Test Functions -->
+ <script>
+ importList=[]
+ importList.append('last_login/pwp_last_login_tests')
+ </script>
+
+ <!-- Import the files for this test suite -->
+ <iterate var="_import" in="importList">
+ <import machine="STAF_LOCAL_HOSTNAME"
+ file="'%s/%s.xml' % (_groupdir,_import)"/>
+ </iterate>
+
+ <!-- Specific to last_login password policy tests -->
+ <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 = 'Password Policy: Last Login:'
+
+ #Configurable Idle Lockout Interval Times
+ shortIntervalTime = '25s'
+ longIntervalTime = '25s'
+ shortSleepTime = 15000
+ longSleepTime = 30000
+ </script>
+
+ <!-- List of Test Cases -->
+ <script>
+ testsList=[]
+ testsList.append('pwp_last_login_001')
+ testsList.append('pwp_last_login_002')
+ testsList.append('pwp_last_login_003')
+ testsList.append('pwp_last_login_004')
+ testsList.append('pwp_last_login_005')
+ testsList.append('pwp_last_login_006')
+ testsList.append('pwp_last_login_007')
+ testsList.append('pwp_last_login_008')
+ testsList.append('pwp_last_login_009')
+ testsList.append('pwp_last_login_010')
+ testsList.append('pwp_last_login_011')
+ testsList.append('pwp_last_login_012')
+ testsList.append('pwp_last_login_013')
+ testsList.append('pwp_last_login_014')
+ testsList.append('pwp_last_login_015')
+ testsList.append('pwp_last_login_016')
+ testsList.append('pwp_last_login_017')
+ testsList.append('pwp_last_login_018')
+ testsList.append('pwp_last_login_019')
+ testsList.append('pwp_last_login_020')
+ </script>
+
+ <!-- Execute the Tests -->
+ <iterate var="__test" in="testsList">
+ <sequence>
+ <call function="'%s' % (__test)" />
+ </sequence>
+ </iterate>
+
+ </sequence>
+ <catch exception="'STAFException.TestSuite.SetupException'">
+ <sequence>
+ <message log="1" level="'fatal'">
+ 'Setup of test suite failed.'
+ </message>
+ <rethrow/>
+ </sequence>
+ </catch>
+
+ <finally>
+ <message>'Test Cases Completed.'</message>
+ </finally>
+
+ </try>
+
+ </sequence>
+
+ <finally>
+ <sequence>
+ <!-- Test Suite Cleanup -->
+ <message>'Finally: Password Policy Cleanup.'</message>
+ <try>
+ <call function="'common_cleanup'">
+ { 'friendlyName' :_label }
+ </call>
+ <catch exception="'STAFException'">
+ <sequence>
+ <message log="1" level="'fatal'">'Cleanup of test suite failed.'</message>
+ </sequence>
+ </catch>
+ <finally>
+ <call function="'testSuite_Postamble'"/>
+ </finally>
+ </try>
+ </sequence>
+ </finally>
+
+ </try>
+ </block>
+ </sequence>
+ </function>
+</stax>
diff --git a/opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login_tests.xml b/opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login_tests.xml
new file mode 100644
index 0000000..a0a7813
--- /dev/null
+++ b/opends/tests/staf-tests/functional-tests/testcases/password_policy/last_login/pwp_last_login_tests.xml
@@ -0,0 +1,2384 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE stax SYSTEM "../../../../shared/stax.dtd">
+<!--
+ ! CDDL HEADER START
+ !
+ ! The contents of this file are subject to the terms of the
+ ! Common Development and Distribution License, Version 1.0 only
+ ! (the "License"). You may not use this file except in compliance
+ ! with the License.
+ !
+ ! You can obtain a copy of the license at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ ! or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ ! See the License for the specific language governing permissions
+ ! and limitations under the License.
+ !
+ ! When distributing Covered Code, include this CDDL HEADER in each
+ ! file and include the License file at
+ ! trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
+ ! add the following below this CDDL HEADER, with the fields enclosed
+ ! by brackets "[]" replaced with your own identifying information:
+ ! Portions Copyright [yyyy] [name of copyright owner]
+ !
+ ! CDDL HEADER END
+ !
+ ! Copyright 2006-2008 Sun Microsystems, Inc.
+ ! Portions Copyright 2012 ForgeRock AS
+ ! -->
+<stax>
+
+ <!--- 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
+ -->
+ <function name="pwp_last_login_001" scope="local">
+ <testcase name="getTestCaseName('PWP Get Idle Lockout Interval')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Get Idle Lockout Interval Property.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--property "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'get-password-policy-prop',
+ 'optionsString' : dsconfigOptions,
+ 'expectedString' : 'idle-lockout-interval : 0 s'
+
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Get Idle Lockout Interval Attribute.' % msg1 }
+ </call>
+
+ <call function="'compareEntry'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'attrToBeCompared' : 'ds-cfg-idle-lockout-interval:0 seconds',
+ 'entryToBeCompared' : basepwp }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Enable Last Login Time Attribute
+ #@TestIssue none
+ #@TestPurpose Enable Last Login Time Attribute
+ #@TestPreamble none
+ #@TestStep Enable Last Login Time Attribute
+ 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
+ -->
+ <function name="pwp_last_login_002" scope="local">
+ <testcase name="getTestCaseName('PWP Set Last Login Time Attribute')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Last Login Attribute Only.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "last-login-time-attribute:ds-pwp-last-login-time"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding With Password.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Checking for Absence of Last Login Time.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsBaseDN' : 'uid=jreuter,%s' % basedn ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'attributes' : 'ds-pwp-last-login-time' }
+ </call>
+
+ <script>
+ returnString = STAXResult[0][1]
+ </script>
+
+ <call function="'checktestStringNotPresent'">
+ { 'returnString' : returnString ,
+ 'testString' : 'ds-pwp-last-login-time' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Enable Last Login Time Format
+ #@TestIssue none
+ #@TestPurpose Verify that last-login-time-format can be enabled
+ #@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
+ -->
+ <function name="pwp_last_login_003" scope="local">
+ <testcase name="getTestCaseName('PWP Enable Last Login Time Format')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Last Login Time Attribute.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "last-login-time-attribute"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Enable Last Login Time Format Only.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "last-login-time-format:EEE, MMM dd, yyyy HH:mm:ss"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding With Password.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Checking for Absence of Last Login Time.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsBaseDN' : 'uid=jreuter,%s' % basedn ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'attributes' : 'ds-pwp-last-login-time' }
+ </call>
+
+ <script>
+ returnString = STAXResult[0][1]
+ </script>
+
+ <call function="'checktestStringNotPresent'">
+ { 'returnString' : returnString ,
+ 'testString' : 'ds-pwp-last-login-time' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Enable Last Login Time Attribute And Format
+ #@TestIssue none
+ #@TestPurpose Verify that admin can enable both last login attribute and format
+ #@TestPreamble none
+ #@TestStep Admin Enable Last Login Attribute And Format
+ #@TestStep set last-login-time-attribute to ds-pwp-last-login-time
+ #@TestStep User Binding With Password returns 0
+ #@TestStep Check manage-account get-last-login-time
+ #@TestStep Checking for Absence of Last Login Time
+ #@TestStep SearchObject ds-pwp-last-login-time returns 0
+ #@TestStep checktestString ds-pwp-last-login-time
+ #@TestPostamble none
+ #@TestResult Success if the 3 steps are PASS
+ -->
+ <function name="pwp_last_login_004" scope="local">
+ <testcase name="getTestCaseName('PWP Enable Last Login Time Attribute And Format')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Last Login Time Attribute Only.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "last-login-time-attribute:ds-pwp-last-login-time"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Get Last Login Time Attribute.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--property "last-login-time-attribute"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'get-password-policy-prop',
+ 'optionsString' : dsconfigOptions,
+ 'expectedString' : 'last-login-time-attribute : ds-pwp-last-login-time'
+
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding With Password.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check manage-account get-last-login-time.' % msg1 }
+ </call>
+
+ <call function="'manageAccountWithScript'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'subcommand' : 'get-last-login-time' ,
+ 'targetDn' : 'uid=jreuter,%s' % basedn }
+ </call>
+
+ <script>
+ returnString = STAXResult[0][1]
+ </script>
+
+ <call function="'checktestString'">
+ { 'returnString' : returnString ,
+ 'expectedString' : 'Last Login Time: 2' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Checking for Absence of Last Login Time.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsBaseDN' : 'uid=jreuter,%s' % basedn ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'attributes' : 'ds-pwp-last-login-time' }
+ </call>
+
+ <script>
+ returnString = STAXResult[0][1]
+ </script>
+
+ <call function="'checktestString'">
+ { 'returnString' : returnString ,
+ 'expectedString' : 'ds-pwp-last-login-time' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Long Idle Lockout Interval - Long Idle Lockout
+ #@TestIssue none
+ #@TestPurpose Long Idle Lockout Interval - Long Idle Lockout
+ #@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 longSleepTime
+ #@TestStep Step 5. User Binding After Idle Lockout
+ SearchObject returns 49
+ #@TestPostamble none
+ #@TestResult Success if the 5 steps are PASS
+ -->
+ <function name="pwp_last_login_005" scope="local">
+ <testcase name="getTestCaseName('PWP Long Idle Lockout')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Idle Lockout Interval to %s.' % (msg1,longIntervalTime) }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % longIntervalTime )
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding Before Idle Lockout Interval.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Idle Lockout Interval.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base',
+ 'expectedRC' : 49 }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Reset Idle Lockout Interval 1
+ #@TestIssue none
+ #@TestPurpose 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 longSleepTime
+ #@TestStep Step 4. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 4 tests are PASS
+ -->
+ <function name="pwp_last_login_006" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval.' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding after Idle Lockout Interval Reset .' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Idle Lockout Interval.' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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. Check get-seconds-until-idle-lockout
+ #@TestStep Step 5. Sleep sleepForMilliSeconds shortSleepTime
+ #@TestStep Step 6. User Changing Password
+ #@TestStep Step 7. Sleep sleepForMilliSeconds to shortSleepTime
+ #@TestStep Step 8. User Binding After Idle Lockout
+ SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 8 steps are PASS
+ -->
+ <function name="pwp_last_login_007" scope="local">
+ <testcase name="getTestCaseName('PWP Password Change Override')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Idle Lockout Interval to %s.' % (msg1,shortIntervalTime) }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % shortIntervalTime)
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding Before Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'destroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check get-seconds-until-idle-lockout' % msg1 }
+ </call>
+
+ <call function="'manageAccountWithScript'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'subcommand' : 'get-seconds-until-idle-lockout' ,
+ 'targetDn' : 'uid=jreuter,%s' % basedn }
+ </call>
+
+ <script>
+ returnString = STAXResult[0][1]
+ </script>
+
+ <call function="'checktestString'">
+ { 'returnString' : returnString ,
+ 'expectedString' : 'Seconds Until Idle Account Lockout: ' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,shortSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : shortSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Changing Password' % msg1 }
+ </call>
+
+ <call function="'ldapPasswordModifyWithScript'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsAuthzID' : 'dn:uid=jreuter,%s' % basedn ,
+ 'dsNewPassword' : 'newdestroy' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,shortSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : shortSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 4. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 4 steps are PASS
+ -->
+ <function name="pwp_last_login_008" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout 2')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 shortSleepTime
+ #@TestStep Step 5. User Bind To Reset Last Login Time
+ SearchObject returns 0
+ #@TestStep Step 6. Sleep sleepForMilliSeconds shortSleepTime
+ #@TestStep Step 7. User Binding After Idle Lockout
+ SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 7 steps are PASS
+ -->
+ <function name="pwp_last_login_009" scope="local">
+ <testcase name="getTestCaseName('PWP User Bind Reset')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding Before Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,shortSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : shortSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Bind To Reset Last Login Time' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,shortSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : shortSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 4. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 4 steps are PASS
+ -->
+ <function name="pwp_last_login_010" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout 3')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Long Disable Last Login
+ #@TestIssue none
+ #@TestPurpose Long Disable Last Login
+ #@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
+ -->
+ <function name="pwp_last_login_011" scope="local">
+ <testcase name="getTestCaseName('PWP Disable Last Login')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Last Login Time Attribute' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "last-login-time-attribute"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Idle Lockout Interval to %s.' % (msg1,longIntervalTime) }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % longIntervalTime)
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' ,
+ 'expectedRC' : 49 }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 5. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 5 steps are PASS
+ -->
+ <function name="pwp_last_login_012" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout 4')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Last Login Time Attribute' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "last-login-time-attribute:ds-pwp-last-login-time"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Long Idle Lockout Interval Disable Last Login 2
+ #@TestIssue none
+ #@TestPurpose Long Idle Lockout Interval Disable 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
+ -->
+ <function name="pwp_last_login_013" scope="local">
+ <testcase name="getTestCaseName('PWP Disable Last Login 2')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Last Login Time Format' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "last-login-time-format"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Idle Lock Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % longIntervalTime)
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' ,
+ 'expectedRC' : 49 }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 5. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 5 steps are PASS
+ -->
+ <function name="pwp_last_login_014" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout 5')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Enable Last Login Time Format' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "last-login-time-format:EEE, MMM dd, yyyy HH:mm:ss"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <message>
+ 'Security: Last Login: Reset Idle Lockout Step 3. User Binding'
+ </message>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 5. User Binding After Idle Lockout
+ SearchObject returns 49
+ #@TestPostamble none
+ #@TestResult Success if the 5 steps are PASS
+ -->
+ <function name="pwp_last_login_015" scope="local">
+ <testcase name="getTestCaseName('PWP Repeat')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Idle Lockout Interval to %s.' % (msg1,longIntervalTime) }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % longIntervalTime)
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding Before Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' ,
+ 'expectedRC' : 49 }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 4. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 4 steps are PASS
+ -->
+ <function name="pwp_last_login_016" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout 6')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- Test Case information
+ #@TestMarker Last Login
+ #@TestName Long Idle Lockout Interval - Password Change Override 2
+ #@TestIssue none
+ #@TestPurpose Long Idle Lockout Interval - Password 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 longSleepTime
+ #@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
+ -->
+ <function name="pwp_last_login_017" scope="local">
+ <testcase name="getTestCaseName('PWP Password Change Override 2')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Set Idle Lockout Interval to %s.' % (msg1,longIntervalTime) }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % longIntervalTime)
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding Before Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'newdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Changing Password' % msg1 }
+ </call>
+
+ <call function="'ldapPasswordModifyWithScript'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsAuthzID' : 'dn:uid=jreuter,%s' % basedn ,
+ 'dsNewPassword' : 'anotherdestroy' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'anotherdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 4. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 4 steps are PASS
+ -->
+ <function name="pwp_last_login_018" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Idle Lockout 7')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'anotherdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'anotherdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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
+ -->
+ <function name="pwp_last_login_019" scope="local">
+ <testcase name="getTestCaseName('PWP Pwd Change Override 3')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Last Login Time Format' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "last-login-time-format"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Check User Bind' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'anotherdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Idle Lockout Interval' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--set "idle-lockout-interval:%s"' % longIntervalTime)
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding Before Idle Lockout' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'anotherdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' ,
+ 'expectedRC' : 49 }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Admin Resetting Users Password' % msg1 }
+ </call>
+
+ <call function="'ldapPasswordModifyWithScript'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN ,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD ,
+ 'dsAuthzID' : 'dn:uid=jreuter,%s' % basedn ,
+ 'dsNewPassword' : 'lastdestroy' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding After Password Change' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'lastdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+ <!--- 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 longSleepTime
+ #@TestStep Step 5. User Binding SearchObject returns 0
+ #@TestPostamble none
+ #@TestResult Success if the 5 steps are PASS
+ -->
+ <function name="pwp_last_login_020" scope="local">
+ <testcase name="getTestCaseName('PWP Reset Last Login Properties')">
+ <sequence>
+ <try>
+ <sequence>
+
+ <call function="'testCase_Preamble'"/>
+
+ <message>
+ 'Test Name = %s' % STAXCurrentTestcase
+ </message>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Reset Last Login Properties' % msg1 }
+ </call>
+
+ <script>
+ options=[]
+ options.append('--policy-name "Default Password Policy"')
+ options.append('--reset "idle-lockout-interval"')
+ options.append('--reset "last-login-time-attribute"')
+ dsconfigOptions=' '.join(options)
+ </script>
+
+ <call function="'dsconfig'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST,
+ 'dsInstanceAdminPort' : DIRECTORY_INSTANCE_ADMIN_PORT,
+ 'dsInstanceDn' : DIRECTORY_INSTANCE_DN,
+ 'dsInstancePswd' : DIRECTORY_INSTANCE_PSWD,
+ 'subcommand' : 'set-password-policy-prop',
+ 'optionsString' : dsconfigOptions
+ }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'lastdestroy',
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s Sleep (%s).' % (msg1,longSleepTime) }
+ </call>
+
+ <call function="'Sleep'">
+ { 'sleepForMilliSeconds' : longSleepTime }
+ </call>
+
+ <call function="'testStep'">
+ { 'stepMessage' : '%s User Binding' % msg1 }
+ </call>
+
+ <call function="'SearchObject'">
+ { 'dsInstanceHost' : DIRECTORY_INSTANCE_HOST ,
+ 'dsInstancePort' : DIRECTORY_INSTANCE_PORT ,
+ 'dsInstanceDn' : 'uid=jreuter,%s' % basedn ,
+ 'dsInstancePswd' : 'lastdestroy' ,
+ 'dsBaseDN' : 'dc=example,dc=com' ,
+ 'dsFilter' : 'objectclass=*' ,
+ 'extraParams' : '-s base' }
+ </call>
+
+ </sequence>
+
+ <catch exception="'STAXException'" typevar="eType" var="eInfo">
+ <message log="1" level="'fatal'">
+ '%s: Test failed. eInfo(%s)' % (eType,eInfo)
+ </message>
+ </catch>
+ <finally>
+ <sequence>
+ <call function="'testCase_Postamble'"/>
+ </sequence>
+ </finally>
+ </try>
+ </sequence>
+ </testcase>
+ </function>
+
+</stax>
--
Gitblit v1.10.0