Index: autoassignrole.admin.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/autoassignrole/autoassignrole.admin.inc,v retrieving revision 1.6 diff -u -p -r1.6 autoassignrole.admin.inc --- autoassignrole.admin.inc 28 Oct 2010 17:03:29 -0000 1.6 +++ autoassignrole.admin.inc 28 Oct 2010 17:40:08 -0000 @@ -123,5 +123,13 @@ function autoassignrole_user_settings() '#options' => array(0 => t('Radio Buttons'), 1 => t('Selection Box'), 2 => t('Check Boxes')), ); + $form['autoassignrole_user_required'] = array( + '#type' => 'radios', + '#title' => t('Required'), + '#default_value' => variable_get('autoassignrole_user_required', 0), + '#description' => t('Should the end user be required to choose a role?'), + '#options' => array(0 => t('No'), 1 => t('Yes')), + ); + return system_settings_form($form); } Index: autoassignrole.test =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/autoassignrole/autoassignrole.test,v retrieving revision 1.7 diff -u -p -r1.7 autoassignrole.test --- autoassignrole.test 28 Oct 2010 17:03:29 -0000 1.7 +++ autoassignrole.test 28 Oct 2010 17:40:08 -0000 @@ -349,4 +349,50 @@ class AutoassignroleAdminSettingsTestCas 'autoassignrole_user_selection has been set to check box' ); } + +/** + * Test admin setting functionality for autoassignrole_user_selection. + * @see http://drupal.org/node/944978 + */ + function testAdminUserSelectionRequired() { + // Create a new user who can access the administration settings + $this->drupalLogin($this->admin_user); + + // Check that the user can see the admin settings page. + $this->drupalGet('admin/config/autoassignrole/user'); + $this->assertField( + 'autoassignrole_user_required', + 'The autoassignrole_user_required field is accessible.' + ); + + // Set autoassignrole_user_required to no. + $edit['autoassignrole_user_required'] = 0; + $this->drupalPost( + 'admin/config/autoassignrole/user', + $edit, + t('Save configuration') + ); + + // Verify autoassignrole_user_required has set to no. + $this->assertEqual( + variable_get('autoassignrole_user_required', -1), + 0, + 'autoassignrole_user_required has been set to radio' + ); + + // Set autoassignrole_user_required to yes. + $edit['autoassignrole_user_required'] = 1; + $this->drupalPost( + 'admin/config/autoassignrole/user', + $edit, + t('Save configuration') + ); + + // Verify autoassignrole_user_required has been set to yes. + $this->assertEqual( + variable_get('autoassignrole_user_required', -1), + 1, + 'autoassignrole_user_required has been set to select box' + ); + } }