? drupaldown ? upgrade ? modules/syndication Index: modules/simpletest/drupal_web_test_case.php =================================================================== RCS file: /cvs/drupal/drupal/modules/simpletest/drupal_web_test_case.php,v retrieving revision 1.53 diff -u -p -r1.53 drupal_web_test_case.php --- modules/simpletest/drupal_web_test_case.php 1 Nov 2008 21:21:35 -0000 1.53 +++ modules/simpletest/drupal_web_test_case.php 4 Nov 2008 03:18:20 -0000 @@ -558,6 +558,31 @@ class DrupalWebTestCase { } /** + * Set permissions for a specified user role. + * + * @param $role + * User role to set permissions for. + * @param $permissions + * Key-value array of permissions to set. + */ + function drupalSetPermission($role, $permissions) { + // Get role id (rid) for specified role. + $rid = db_query("SELECT rid FROM {role} WHERE name = :role", array(':role' => $role))->fetchField(); + if ($rid === FALSE) { + $this->fail(t(' [permission] Role "' . $role . '" not found.')); + } + + // Create edit array from permission. + $edit = array(); + foreach ($permissions as $name => $value) { + $edit[$rid . '[' . $name . ']'] = $value; + } + + $this->drupalPost('admin/user/permissions', $edit, t('Save permissions')); + $this->assertText(t('The changes have been saved.'), t(' [permission] Saved changes.')); + } + + /** * Internal helper function; Create a role with specified permissions. * * @param $permissions