Index: CHANGELOG.txt
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/autoassignrole/CHANGELOG.txt,v
retrieving revision 1.7
diff -u -p -r1.7 CHANGELOG.txt
--- CHANGELOG.txt	28 Oct 2010 17:03:28 -0000	1.7
+++ CHANGELOG.txt	28 Oct 2010 17:42:02 -0000
@@ -10,3 +10,4 @@ autoassignrole 7.0, xxxx-xx-xx (developm
 - [#944922] Administrator sets roles that will be visible to the end user.
 - [#944944] Administrator toggles letting user select multiple roles.
 - [#944974] Administrator sets the selection method of roles for an end user.
+- [#944978] Administrator toggles if user selection of roles is required.
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:42:02 -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:42:02 -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'
+    );
+  }
 }
