| 209 |
$options = array(); |
$options = array(); |
| 210 |
$hide_descriptions = !system_admin_compact_mode(); |
$hide_descriptions = !system_admin_compact_mode(); |
| 211 |
foreach ($form_state['storage']['permissions'] as $module => $permissions) { |
foreach ($form_state['storage']['permissions'] as $module => $permissions) { |
| 212 |
foreach ($permissions as $perm => $description) { |
foreach ($permissions as $permission => $permission_data) { |
| 213 |
if (is_int($perm)) { |
$form['permissions'][$module][$permission]['name'] = array( |
|
$perm = $description; |
|
|
$description = NULL; |
|
|
} |
|
|
$form['permissions'][$module][$perm]['name'] = array( |
|
| 214 |
'#type' => 'item', |
'#type' => 'item', |
| 215 |
'#markup' => t($perm), |
'#markup' => t($permission_data['title']), |
| 216 |
'#description' => $hide_descriptions ? $description : NULL, |
'#description' => $hide_descriptions ? $permission_data['description'] : NULL, |
| 217 |
); |
); |
| 218 |
$form['permissions'][$module][$perm]['enable'] = array( |
$form['permissions'][$module][$permission]['enable'] = array( |
| 219 |
'#type' => 'checkbox', |
'#type' => 'checkbox', |
| 220 |
'#parents' => array('permissions', $perm), |
'#parents' => array('permissions', $permission), |
| 221 |
'#default_value' => (isset($simpletest_automator->permissions) && in_array($perm, $simpletest_automator->permissions)), |
'#default_value' => (isset($simpletest_automator->permissions) && in_array($permission, $simpletest_automator->permissions)), |
| 222 |
); |
); |
| 223 |
} |
} |
| 224 |
} |
} |
| 328 |
$form_state['storage']['simpletest_automator']['modules'][] = 'simpletest_automator_proctor'; |
$form_state['storage']['simpletest_automator']['modules'][] = 'simpletest_automator_proctor'; |
| 329 |
$form_state['storage']['step'] = 2; |
$form_state['storage']['step'] = 2; |
| 330 |
|
|
| 331 |
global $db_prefix; |
global $db_prefix, $conf; |
| 332 |
|
|
| 333 |
|
// Store necessary current values before switching to prefixed database. |
| 334 |
$db_prefix_original = $db_prefix; |
$db_prefix_original = $db_prefix; |
| 335 |
|
$file_directory_path_original = file_directory_path(); |
| 336 |
$clean_url_original = variable_get('clean_url', 0); |
$clean_url_original = variable_get('clean_url', 0); |
| 337 |
|
|
| 338 |
// Generate temporary prefixed database to ensure that tests have a clean starting point. |
// Generate temporary prefixed database to ensure that tests have a clean starting point. |
| 339 |
$db_prefix = $form_state['storage']['simpletest_automator']['db_prefix'] = 'st_automator' . mt_rand(1000, 1000000); |
$db_prefix = Database::getConnection()->prefixTables('{st_automator' . mt_rand(1000, 1000000) . '}'); |
| 340 |
include_once './includes/install.inc'; |
|
| 341 |
|
include_once DRUPAL_ROOT . '/includes/install.inc'; |
| 342 |
drupal_install_system(); |
drupal_install_system(); |
| 343 |
|
|
| 344 |
|
db_query('INSERT INTO {registry} SELECT * FROM ' . $db_prefix_original . 'registry'); |
| 345 |
|
db_query('INSERT INTO {registry_file} SELECT * FROM ' . $db_prefix_original . 'registry_file'); |
| 346 |
|
|
| 347 |
// Add the specified modules to the list of modules in the default profile. |
// Add the specified modules to the list of modules in the default profile. |
| 348 |
$args = func_get_args(); |
$args = func_get_args(); |
| 349 |
$modules = array_unique(array_merge(drupal_verify_profile('default', 'en'), $form_state['storage']['simpletest_automator']['modules'])); |
$modules = array_unique(array_merge(drupal_get_profile_modules('default', 'en'), $form_state['storage']['simpletest_automator']['modules']));; |
| 350 |
drupal_install_modules($modules); |
drupal_install_modules($modules, TRUE); |
| 351 |
|
|
| 352 |
|
// Because the schema is static cached, we need to flush it between each |
| 353 |
|
// run. If we don't, then it will contain stale data for the previous run's |
| 354 |
|
// database prefix and all calls to it will fail. |
| 355 |
|
drupal_get_schema(NULL, TRUE); |
| 356 |
|
|
| 357 |
// Run default profile tasks. |
// Run default profile tasks. |
| 358 |
$task = 'profile'; |
$task = 'profile'; |
| 359 |
default_profile_tasks($task, ''); |
default_profile_tasks($task, ''); |
| 360 |
module_list(TRUE, FALSE); |
|
| 361 |
|
// Rebuild caches. |
| 362 |
|
actions_synchronize(); |
| 363 |
|
_drupal_flush_css_js(); |
| 364 |
|
cache_clear_all('variables', 'cache'); |
| 365 |
|
$conf = variable_init(); |
| 366 |
|
|
| 367 |
// Restore necessary variables. |
// Restore necessary variables. |
| 368 |
variable_set('install_profile', 'default'); |
variable_set('install_profile', 'default'); |
| 369 |
variable_set('install_task', 'profile-finished'); |
variable_set('install_task', 'profile-finished'); |
| 370 |
variable_set('clean_url', $clean_url_original); |
variable_set('clean_url', $clean_url_original); |
| 371 |
|
variable_set('site_mail', 'simpletest@example.com'); |
| 372 |
|
|
| 373 |
// Use temporary files directory with the same prefix as database. |
// Use temporary files directory with the same prefix as database. |
| 374 |
variable_set('file_directory_path', file_directory_path() . '/' . $db_prefix); |
variable_set('file_directory_path', $file_directory_path_original . '/' . $db_prefix); |
| 375 |
file_check_directory(file_directory_path(), TRUE); // Create the files directory. |
$directory = file_directory_path(); |
| 376 |
|
// Create the files directory. |
| 377 |
|
file_check_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); |
| 378 |
|
|
| 379 |
foreach (module_implements('perm', FALSE, TRUE) as $module) { |
foreach (module_implements('perm', FALSE, TRUE) as $module) { |
| 380 |
$form_state['storage']['permissions'][$module] = module_invoke($module, 'perm'); |
$form_state['storage']['permissions'][$module] = module_invoke($module, 'perm'); |
| 529 |
), |
), |
| 530 |
); |
); |
| 531 |
} |
} |
| 532 |
|
unset($form['#theme']); |
| 533 |
return theme('table', $headers, $rows, array('id' => 'simpletest-automator-actions')) . drupal_render($form); |
return theme('table', $headers, $rows, array('id' => 'simpletest-automator-actions')) . drupal_render($form); |
| 534 |
} |
} |
| 535 |
|
|
| 767 |
* @return |
* @return |
| 768 |
* An HTML string for the message. |
* An HTML string for the message. |
| 769 |
*/ |
*/ |
| 770 |
function theme_simpletest_automator_admin_moduless_incompatible($message) { |
function theme_simpletest_automator_admin_modules_incompatible($message) { |
| 771 |
return '<div class="incompatible">'. $message .'</div>'; |
return '<div class="incompatible">'. $message .'</div>'; |
| 772 |
} |
} |
| 773 |
|
|
| 778 |
drupal_add_css(drupal_get_path('module', 'user') . '/user.css'); |
drupal_add_css(drupal_get_path('module', 'user') . '/user.css'); |
| 779 |
$submit = $form['submit']; |
$submit = $form['submit']; |
| 780 |
$permissions = $form['permissions']; |
$permissions = $form['permissions']; |
| 781 |
unset($form['submit'], $form['permissions']); |
unset($form['submit'], $form['permissions'], $form['#theme']); |
| 782 |
$output = drupal_render($form); |
$output = drupal_render($form); |
| 783 |
$roles = user_roles(); |
$roles = user_roles(); |
| 784 |
foreach (element_children($permissions) as $module) { |
foreach (element_children($permissions) as $module) { |