Projet

Général

Profil

Paste
Télécharger (12,5 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ldap / ldap_user / tests / ldap_user.test.manual.txt @ 91af538d

1

    
2
/**********************************************
3
 * this is a summary of how to test ldap_user manually.
4
 * it attempts to cover all facets of the automated simpletests
5
 **********************************************/
6

    
7
---------------------------------------
8
--- setup 
9
Remove remnants of existing ldap_user install: 
10
- Disable and uninstall ldap_user module.
11
- Clear any variables that may not have been uninstalled:
12
   DELETE FROM variable where name like 'ldap_user%'
13
- Delete the user(2) you use for testing.
14
- Clear watchdog logs.
15

    
16
# drush 5 commands for 1.
17
drush -y pm-disable ldap_authorization_drupal_role  
18
drush -y pm-uninstall ldap_authorization_drupal_role
19
drush -y pm-disable ldap_authorization_og 
20
drush -y pm-uninstall ldap_authorization_og
21
drush -y pm-disable ldap_authorization
22
drush -y pm-uninstall ldap_authorization
23
drush -y pm-disable ldap_sso
24
drush -y pm-uninstall ldap_sso
25
drush -y pm-disable ldap_authentication
26
drush -y pm-uninstall ldap_authentication
27
drush -y pm-disable ldap_user
28
drush -y pm-uninstall ldap_user
29
drush -y sql-query "DELETE FROM variable where name like 'ldap_user%'"
30
drush -y watchdog-delete all
31

    
32

    
33
2. Enable LDAP User module and create Drupal user test fields
34
- Enable ldap_user module and check watchdog logs
35
- Prepare user settings/entity for testing
36
  -- add field_lname, field_fname, field_dept, and field_display_name text fields to Drupal user
37
  
38
# drush 5 commands for 2.
39
drush -y pm-enable ldap_user
40
drush watchdog-show
41
drush field-create user field_user_dept,text,text_textfield --entity_type=user
42
drush field-create user field_user_lname,text,text_textfield --entity_type=user
43
drush field-create user field_user_fname,text,text_textfield --entity_type=user
44
drush field-create user field_user_display_name,text,text_textfield --entity_type=user  
45
---------------------------------------
46

    
47
================================================================
48
Tests for LDAP Entry ==> Drupal User Provisioning (simpletest: ldap_user/tests/ldap_user.test LdapUserIntegrationTests::testProvisionToDrupal)
49
================================================================
50
6.A. Setup: Configure LDAP User for Provisioning Drupal Account from LDAP Entry (admin/config/people/ldap/user)
51
    -- analogous simpletest configuration is in ldap_test/ldap_user.conf.inc in $conf['provisionToDrupalWithMappings']
52
    A. LDAP Servers Providing Provisioning Data: Select enabled server
53
    B. Drupal Account Provisioning Events: [x] Create or Synch to Drupal user anytime a Drupal user account is created or updated.
54
    C. Existing Drupal User Account Conflict: [x] Associate Drupal account with LDAP Entry
55
    D. Application of Drupal Account settings to LDAP Authenticated Users: [x] Account Creating Settings ... do not affect...
56
    E. Basic Provisioning to LDAP Settings: for server, select "none"
57
    F. Rest Webservice: leave disabled
58
    G. Server mappings section. Provisioning from LDAP to Drupal mappings. (Source LDAP Tokens will vary from ldap to ldap)
59
       i. [givenname] -- to drupal user -> Field: First Name [x] on drupal user creation [x] on synch...
60
       ii. [sn:0] -- to drupal user -> Field: Last Name [x] on drupal user creation [x] on synch...
61
       iii. [givenname] [sn] -- to drupal user -> Field: Display Name [x] on drupal user creation [ ] on synch...
62
       iv. Physics -- to drupal user -> Field: Department [x] on drupal user creation [ ] on synch...
63
   
64
6.B. Event: Drupal user create provision/synching.
65
    A. Create new user via admin/people/create [drush user-create jdoe --mail=test@test.com --password="sdfw3452352se"]
66
    B. field_lname, field_fname, field_dept, and field_display_name should be visible and populated
67
    C. goto admin/config/people/ldap/user/test enter the username and hit the test button.  this will show the user object and entity
68
       [drush user-information jdoe --full]
69
       if the devel module is enabled. In "user object (before provisioning or synching)"
70
       i.     user object->ldap_user_puid_sid should be the id of the server
71
       ii.    user object->ldap_user_puid should be the value of the puid attribute
72
       iii.   user object->ldap_user_puid_property  should be the name of the puid attribute
73
       iv.    user object->ldap_user_current_dn should be the dn of the ldap entry
74
       v.     user object->mail and init should be correct, matching email
75
       vii.   user authmap should be empty.  this record is only generated when account created via ldap authentication
76
       [drush -y sql-query "SELECT * FROM authmap WHERE authname = 'jdoe'"]
77
    D. Now edit the the First Name, Last Name,  Display Name, and Department for that user /user/[uid]/edit. and Save.
78
    E. Results after save should be Dept and Display Name were changed; First name and Last Name reverted to LDAP provided first and last name.
79
 
80
6.C. Event: user logon/authenticate.  Test create drupal account.
81
    enable ldap authentication, mixed mode
82
    A.1. Change "Drupal Account Provisioning Events" to only "...on successful authentication" (admin/config/people/ldap/user)
83
    A.2. Authenticate with a user not in drupal (be sure user is deleted before test)
84
    B. view the user from the user list (admin/people/people) and make sure
85
         field_lname, field_fname, field_dept, and field_display_name should be visible and populated
86
         or use [drush user-information jdoe --full]
87
    C. goto admin/config/people/ldap/user/test/<username> and hit the test button.  this will show the user object and entity
88
       if the devel module is enabled
89
       i.     user object->ldap_user_puid_sid should be the id of the server
90
       ii.    user object->ldap_user_puid should be the value of the puid attribute
91
       iii.   user object->ldap_user_puid_property  should be the name of the puid attribute
92
       iv.    user object->ldap_user_current_dn should be the dn of the ldap entry
93
       v.     user object->mail and init should be correct, matching email
94
       vii.   user authmap should have an entry where module=ldap_authentication and authname=username
95
       [drush -y sql-query "SELECT * FROM authmap WHERE authname = 'jdoe'"]
96
    D. Now edit the the First Name, Last Name,  Display Name, and Department for that user /user/[uid]/edit. and Save.
97
    E. Results after save should be Dept and Display Name were changed; First name and Last Name reverted to LDAP provided first and last name.
98
    F. Change First Name, Last Name,  Display Name, and Department in database manually.
99
    E. Log user in again.
100
    F. Results after save should be Dept and Display Name were changed; First name and Last Name reverted to LDAP provided first and last name.
101
       
102
 ==============================================
103
 Tests for provisioning from Drupal User => LDAP Entry
104
 ==============================================
105
       
106
7. General tests for ldap entry provisioning
107
    A. Setup (as admin) in ldap user settings (admin/config/people/ldap/user)
108
      - select "None" in "LDAP Servers Providing Provisioning Data"
109
      - enable an ldap server in BASIC PROVISIONING TO LDAP SETTINGS
110
      - check all "LDAP Entry Provisioning Events"
111
      - disable REST webservice
112
      - in mappings table (alter to fit your LDAP)
113
        -- Source Drupal User Attribute or token                        |  Target LDAP Token   | on creation | on update     
114
        -- "cn=[property.name],ou=people,dc=ldap,dc=mycompany,dc=com"            [dn]                 [x]          [x] 
115
        -- 'Property: Username                                                   [cn]                 [x]          [x] 
116
        -- mydrupalsite.com[property.uid]                                        [guid]               [x]          [x]
117
        -- [field.field_fname] [field.field_lname]                            [displayname]           [x]          [x]
118
        -- [field.field_lname]                                                    [sn]                [x]          [ ]
119
        -- [field.field_fname]                                                 [givenname]            [x]          [ ]
120
           
121
    B.  Create and approve new user, populating first and last name.
122
        -- confirm that ldap entry exists with proper attributes from mapping
123
        -- confirm that drupal user has no ldap authmap (unless was there before)
124
        -- confirm there is no ldap_user_puid_sid, ldap_user_puid, ldap_user_puid_property, ldap_user_current_dn; these are for prov in other direction
125
        -- confirm that user->ldap_user_prov_entries has a value of the form: <sid>|<dn> to indicate ldap account was provisioned based on this drupal user.
126
        
127
    C.  Change lastname, first name, and display name and save user
128
        -- confirm that appropriate attributes were changed in ldap entry
129
        
130
    D.  Delete user in drupal.
131
        -- confirm that ldap entry for user is removed.
132
        
133
7.1 "provisionToLdapEmailVerification":
134
Test ldap entry provisioning workflow: User requests account -> email verification of account -> user gets one time logon via email and sets password
135
  A. Setup (as admin):
136
    -- at admin/config/people/accounts: select "Visitors" and check "Require e-mail verification"
137
    -- configure to ldap provisioning admin/config/people/ldap/user
138
      -- [x] Create LDAP entry when a Drupal Account has a status of approved... in "LDAP Entry Provisioning Options"
139
      -- [x] Update LDAP entry when Drupal Account that has a corresponding LDAP entry is updated...in "LDAP Entry Provisioning Options"
140
         drush vset --yes user_email_verification 1
141
         drush vset --yes user_register 1
142
      -- map required fields and make sure password is one of the fields
143
  B. Test
144
     -- as anonymous user: create user at user/register.
145
     -- as admin confirm that account was created, no ldap entry was created, and user has status of 1 (active)
146
     -- as user, go to link in email.
147
     -- as admin confirm that ldap entry is still not created
148
     -- as user, click on first time logon button
149
     -- desired result: ldap entry should be created, but ldap entry password will be none or random.
150
     -- as user, set password and whatever initial user profile or fields you want
151
     -- desired result: check that ldap entry has correct password and altered fields are correctly synched to ldap
152
               
153
  
154

    
155
7.2 Test ldap entry provisioning workflow: Admin creates account that has a status of 1, but user requests new password to get started.
156
 
157
8. Test admin/people/create form and LDAP Options.
158
  8.1 Test validation of existing ldap user admin/people/create form
159
    A. Setup.  Enable and configure Drupal to LDAP provisioning of users.
160
        On MANUAL DRUPAL ACCOUNT CREATION AND UPDATES, select "Show option on user create form".
161
    B. Attempt to create user at admin/people/create with a username that conflicts with existing ldap entry.
162
       Check "create corresponding ldap entry" on form.
163
    C. Success: On form submit, error should indicate ldap user exists.
164
    
165
  8.2 Test manual selection of ldap associate in admin/people/create form
166
    A. Setup.  On admin/config/people/ldap/user, set Existing Drupal User Account Conflict to "Don't associate"
167
       On MANUAL DRUPAL ACCOUNT CREATION AND UPDATES, select "Show option on user create form".
168
    B. at admin/people/create select "Make this an ldap associated account".
169
    C. Success: in ldap user,
170
       fields: ldap_user_puid_sid, ldap_user_current_dn, ldap_user_puid, ldap_user_puid_property should be populated if in use
171
       other synch and provision fields should not be synched
172
       in the database in the authmaps table, a record should exist with module=ldap_user and authname=<username tested>
173
    
174
  8.3 Test manual selection of ldap associate AND "Create corresponding LDAP Entry" in admin/people/create form
175
    A. Setup.  On admin/config/people/ldap/user, set Existing Drupal User Account Conflict to "Don't associate"
176
       On MANUAL DRUPAL ACCOUNT CREATION AND UPDATES, select "Show option on user create form".
177
       Configure provisioning to ldap on admin/config/people/ldap/user
178
    B. Manually create user that is not in ldap already.
179
       Select: "Make this an ldap associated account"
180
       Check: "create corresponding ldap entry"
181
       submit
182
    C. Success:
183
         ldap entry exists,
184
         drupal user exists,
185
         fields: ldap_user_puid_sid, ldap_user_current_dn, ldap_user_puid, ldap_user_puid_property should be populated if in use
186
         in the database in the authmaps table, a record should exist with module=ldap_user and authname=<username tested>
187
  8.4 Test manual selection of "Create corresponding LDAP Entry" and Do not make this an LDAP Associated account in admin/people/create form
188
     -- is this even allowable?  What's the use case for this?