From 72f5e7540be90f40936ba403a48f1af977a8136f Mon Sep 17 00:00:00 2001
From: mkeyes <mkeyes@localhost>
Date: Tue, 22 May 2007 15:39:24 +0000
Subject: [PATCH] Functional test cases for Issue 1622, Grant Anonymous Access to Appropriate Operation Attributes.

---
 opendj-sdk/opends/tests/functional-tests/testcases/aci/global_acis.xml |  464 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 446 insertions(+), 18 deletions(-)

diff --git a/opendj-sdk/opends/tests/functional-tests/testcases/aci/global_acis.xml b/opendj-sdk/opends/tests/functional-tests/testcases/aci/global_acis.xml
index d725c06..ca17d83 100755
--- a/opendj-sdk/opends/tests/functional-tests/testcases/aci/global_acis.xml
+++ b/opendj-sdk/opends/tests/functional-tests/testcases/aci/global_acis.xml
@@ -128,19 +128,17 @@
                 Place test-specific test information here.
                 The tag, TestMarker, must be the same as the tag, TestSuiteName.
                 #@TestMarker                ACI Global Tests
-                #@TestName                  Global ACI Search
-                #@TestIssue                 1479
-                #@TestPurpose               Search operational attribute against default global acis
+                #@TestName                  Global ACI Search - One operational attribute for one entry
+                #@TestIssue                 1622
+                #@TestPurpose               Search one operational attribute for one entry against default global acis
                 #@TestPreamble              none
-                #@TestStep                  Client searches operational attribute of an entry.
+                #@TestStep                  Client searches one operational attribute of an entry.
                 #@TestPostamble             none
                 #@TestResult                Success if OpenDS returns 0
                                             and entry for step 1.
                                             The attributes, creatorsname and dn, should be returned.
             -->
-            <!-- The following will be uncommented when Issue 1479 is fixed. -->
-            <!--
-            <testcase name="'ACI: Global: Search Operational Attribute'">
+            <testcase name="'ACI: Global: Search Operational Attribute of an entry'">
               <sequence>
                 <call function="'testCase_Preamble'"/>
                           
@@ -180,29 +178,42 @@
     
               </sequence>
             </testcase>
-            -->
             
             <!---
                 Place test-specific test information here.
                 The tag, TestMarker, must be the same as the tag, TestSuiteName.
                 #@TestMarker                ACI Global Tests
-                #@TestName                  Global ACI Search
-                #@TestIssue                 1479
-                #@TestPurpose               Search all operational attributes against default global acis
-                #@TestPreamble              none
+                #@TestName                  Global ACI Search - All operational attributes for one entry
+                #@TestIssue                 1622
+                #@TestPurpose               Search all operational attributes for one entry against default global acis
+                #@TestPreamble              Admin modify entry so there are modifyTimestamp and modifiersName attributes
                 #@TestStep                  Client searches all operational attributes of an entry.
                 #@TestPostamble             none
                 #@TestResult                Success if OpenDS returns 0
                                             and entry for step 1.
-                                            The attribute, dn, should be returned.
+                                            Six attributes and the dn should be returned.
             -->
-            <!-- The following will be uncommented when Issue 1479 is fixed. -->
-            <!--
-            <testcase name="'ACI: Global: Search All Operational Attributes'">
+            <testcase name="'ACI: Global: Search All Operational Attributes of an entry'">
               <sequence>
                 <call function="'testCase_Preamble'"/>
                           
                 <message>
+                   'ACI: Global: Search, admin modifying entry'
+                </message>
+    
+                <call function="'modifyEntry'">
+                  { 'dsInstanceHost'      : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'      : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'        : DIRECTORY_INSTANCE_DN ,
+                    'dsInstancePswd'      : DIRECTORY_INSTANCE_PSWD ,
+                    'entryToBeModified'   : '%s/aci/global_acis/mod_modifier_entry1.ldif' % (STAGED_DATA_DIR) }
+                </call>
+    
+                <if expr="RC != 0">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <message>
                    'ACI: Global: Search, user searching all operational attributes of an entry'
                 </message>
     
@@ -222,10 +233,55 @@
     
                 <call function="'searchStringForSubstring'">
                     { 'returnString'       : returnString ,
-                      'testString'         : 'creatorsName' }
+                      'testString'         : 'creatorsName:' }
                 </call>
                 
-                <if expr="returnCode != '0'">
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'createTimestamp:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'entryDN:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'modifiersName:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'modifyTimestamp' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'subschemaSubentry:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
                     <tcstatus result="'fail'"/>
                 </if>
     
@@ -238,7 +294,379 @@
     
               </sequence>
             </testcase>
+            
+            <!---
+                Place test-specific test information here.
+                The tag, TestMarker, must be the same as the tag, TestSuiteName.
+                #@TestMarker                ACI Global Tests
+                #@TestName                  Global ACI Search - One operational attribute for cn=schema
+                #@TestIssue                 1622
+                #@TestPurpose               Search one operational attribute for cn=schema against default global acis
+                #@TestPreamble              none
+                #@TestStep                  Client searches one operational attribute of cn=schema.
+                #@TestPostamble             none
+                #@TestResult                Success if OpenDS returns 0
+                                            and entry for step 1.
+                                            The attributes, matchingrules and dn, should be returned.
             -->
+            <testcase name="'ACI: Global: Search Operational Attribute, cn=schema'">
+              <sequence>
+                <call function="'testCase_Preamble'"/>
+                          
+                <message>
+                   'ACI: Global: Search, user searching operational attribute of cn=schema'
+                </message>
+    
+                <call function="'SearchObject'">
+                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
+                    'dsInstancePswd'   : 'ACIRules' ,
+                    'dsBaseDN'         : 'cn=schema' ,
+                    'dsFilter'         : 'objectclass=*'  ,
+                    'attributes'       : 'matchingRules' ,
+                    'extraParams'      : '-T -s base' }
+                </call>
+    
+                <script> 
+                 returnString = STAXResult[0][1]
+                </script> 
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'matchingRules:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'checktestString'">
+                    { 'returnString'       : returnString ,
+                      'expectedString'     : 'dn: cn=schema' }
+                </call>
+                
+                <call function="'testCase_Postamble'"/>
+    
+              </sequence>
+            </testcase>
+            
+            <!---
+                Place test-specific test information here.
+                The tag, TestMarker, must be the same as the tag, TestSuiteName.
+                #@TestMarker                ACI Global Tests
+                #@TestName                  Global ACI Search - All operational attributes for cn=schema
+                #@TestIssue                 1622
+                #@TestPurpose               Search all operational attributes for cn=schema against default global acis
+                #@TestPreamble              none
+                #@TestStep                  Client searches all operational attributes of cn=schema.
+                #@TestPostamble             none
+                #@TestResult                Success if OpenDS returns 0
+                                            and entry for step 1.
+                                            Six attributes and the dn should be returned.
+            -->
+            <testcase name="'ACI: Global: Search All Operational Attributes, cn=schema'">
+              <sequence>
+                <call function="'testCase_Preamble'"/>
+                          
+                <message>
+                   'ACI: Global: Search, user searching operational attribute of cn=schema'
+                </message>
+    
+                <call function="'SearchObject'">
+                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
+                    'dsInstancePswd'   : 'ACIRules' ,
+                    'dsBaseDN'         : 'cn=schema' ,
+                    'dsFilter'         : 'objectclass=*'  ,
+                    'attributes'       : '+' ,
+                    'extraParams'      : '-T -s base' }
+                </call>
+    
+                <script> 
+                 returnString = STAXResult[0][1]
+                </script> 
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'attributeTypes:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'dITStructureRules:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'ldapSyntaxes:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'matchingRules:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'nameForms:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'objectClasses:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'checktestString'">
+                    { 'returnString'       : returnString ,
+                      'expectedString'     : 'dn: cn=schema' }
+                </call>
+                
+                <call function="'testCase_Postamble'"/>
+    
+              </sequence>
+            </testcase>
+            
+            <!---
+                Place test-specific test information here.
+                The tag, TestMarker, must be the same as the tag, TestSuiteName.
+                #@TestMarker                ACI Global Tests
+                #@TestName                  Global ACI Search - One operational attribute for root dse
+                #@TestIssue                 1622
+                #@TestPurpose               Search one operational attribute for root dse against default global acis
+                #@TestPreamble              none
+                #@TestStep                  Client searches one operational attribute of root dse.
+                #@TestPostamble             none
+                #@TestResult                Success if OpenDS returns 0
+                                            and entry for step 1.
+                                            The attributes, vendorname and dn, should be returned.
+            -->
+            <testcase name="'ACI: Global: Search Operational Attribute, root dse'">
+              <sequence>
+                <call function="'testCase_Preamble'"/>
+                          
+                <message>
+                   'ACI: Global: Search, user searching operational attribute of root dse'
+                </message>
+    
+                <call function="'SearchObject'">
+                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
+                    'dsInstancePswd'   : 'ACIRules' ,
+                    'dsBaseDN'         : ' ' ,
+                    'dsFilter'         : 'objectclass=*'  ,
+                    'attributes'       : 'vendorName' ,
+                    'extraParams'      : '-T -s base' }
+                </call>
+    
+                <script> 
+                 returnString = STAXResult[0][1]
+                </script> 
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'vendorName:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'checktestString'">
+                    { 'returnString'       : returnString ,
+                      'expectedString'     : 'dn: ' }
+                </call>
+                
+                <call function="'testCase_Postamble'"/>
+    
+              </sequence>
+            </testcase>
+            
+            <!---
+                Place test-specific test information here.
+                The tag, TestMarker, must be the same as the tag, TestSuiteName.
+                #@TestMarker                ACI Global Tests
+                #@TestName                  Global ACI Search - All operational attributes for root dse
+                #@TestIssue                 1622
+                #@TestPurpose               Search all operational attributes for root dse against default global acis
+                #@TestPreamble              none
+                #@TestStep                  Client searches all operational attributes of root dse.
+                #@TestPostamble             none
+                #@TestResult                Success if OpenDS returns 0
+                                            and entry for step 1.
+                                            Eight attributes and the dn should be returned.
+            -->
+            <testcase name="'ACI: Global: Search All Operational Attribute, root dse'">
+              <sequence>
+                <call function="'testCase_Preamble'"/>
+                          
+                <message>
+                   'ACI: Global: Search, user searching operational attribute of root dse'
+                </message>
+    
+                <call function="'SearchObject'">
+                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
+                    'dsInstancePswd'   : 'ACIRules' ,
+                    'dsBaseDN'         : ' ' ,
+                    'dsFilter'         : 'objectclass=*'  ,
+                    'attributes'       : '+' ,
+                    'extraParams'      : '-T -s base' }
+                </call>
+    
+                <script> 
+                 returnString = STAXResult[0][1]
+                </script> 
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'namingContexts:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'supportedAuthPasswordSchemes:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'supportedControl:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'supportedExtension:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'supportedFeatures:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'supportedSASLMechanisms:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'vendorName:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'searchStringForSubstring'">
+                    { 'returnString'       : returnString ,
+                      'testString'         : 'vendorVersion:' }
+                </call>
+                
+                <if expr="returnCode != '1'">
+                    <tcstatus result="'fail'"/>
+                </if>
+    
+                <call function="'checktestString'">
+                    { 'returnString'       : returnString ,
+                      'expectedString'     : 'dn: ' }
+                </call>
+                
+                <call function="'testCase_Postamble'"/>
+    
+              </sequence>
+            </testcase>
+            
+            <!---
+                Place test-specific test information here.
+                The tag, TestMarker, must be the same as the tag, TestSuiteName.
+                #@TestMarker                ACI Global Tests
+                #@TestName                  Global ACI Search - All operational attributes for cn=config
+                #@TestIssue                 1622
+                #@TestPurpose               Search all operational attributes for cn=config against default global acis
+                #@TestPreamble              none
+                #@TestStep                  Client searches all operational attributes for cn=config.
+                #@TestPostamble             none
+                #@TestResult                Success if OpenDS returns 50.
+            -->
+            <testcase name="'ACI: Global: Search Operational Attribute, cn=config'">
+              <sequence>
+                <call function="'testCase_Preamble'"/>
+                          
+                <message>
+                   'ACI: Global: Search, user searching operational attribute of an entry'
+                </message>
+    
+                <call function="'SearchObject'">
+                  { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
+                    'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
+                    'dsInstanceDn'     : 'uid=auser,ou=people,o=ACI Tests,dc=example,dc=com' ,
+                    'dsInstancePswd'   : 'ACIRules' ,
+                    'dsBaseDN'         : 'cn=config' ,
+                    'dsFilter'         : 'objectclass=*'  ,
+                    'attributes'       : '+'}
+                </call>
+    
+                <call function="'checktestRC'">
+                    { 'returncode' : RC ,
+                      'result'     : STAXResult ,
+                      'expected'   : 50 }
+                </call>
+                
+                <call function="'testCase_Postamble'"/>
+    
+              </sequence>
+            </testcase>
             
             <!---
                 Place test-specific test information here.

--
Gitblit v1.10.0