<?php
function system_test_menu() {
$items['system-test/sleep/%'] = array(
'page callback' => 'system_test_sleep',
'page arguments' => array(
2,
),
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/auth'] = array(
'page callback' => 'system_test_basic_auth_page',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/authorize-init/%'] = array(
'page callback' => 'system_test_authorize_init_page',
'page arguments' => array(
2,
),
'access arguments' => array(
'administer software updates',
),
'type' => MENU_CALLBACK,
);
$items['system-test/redirect/%'] = array(
'title' => 'Redirect',
'page callback' => 'system_test_redirect',
'page arguments' => array(
2,
),
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/multiple-redirects/%'] = array(
'title' => 'Redirect',
'page callback' => 'system_test_multiple_redirects',
'page arguments' => array(
2,
),
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/set-header'] = array(
'page callback' => 'system_test_set_header',
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/redirect-noscheme'] = array(
'page callback' => 'system_test_redirect_noscheme',
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/redirect-noparse'] = array(
'page callback' => 'system_test_redirect_noparse',
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/redirect-invalid-scheme'] = array(
'page callback' => 'system_test_redirect_invalid_scheme',
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/variable-get'] = array(
'title' => 'Variable Get',
'page callback' => 'variable_get',
'page arguments' => array(
'simpletest_bootstrap_variable_test',
NULL,
),
'access arguments' => array(
'access content',
),
'type' => MENU_CALLBACK,
);
$items['system-test/lock-acquire'] = array(
'title' => 'Lock acquire',
'page callback' => 'system_test_lock_acquire',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/lock-exit'] = array(
'title' => 'Lock acquire then exit',
'page callback' => 'system_test_lock_exit',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/main-content-handling'] = array(
'title' => 'Test main content handling',
'page callback' => 'system_test_main_content_fallback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/main-content-fallback'] = array(
'title' => 'Test main content fallback',
'page callback' => 'system_test_main_content_fallback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/main-content-duplication'] = array(
'title' => 'Test main content duplication',
'page callback' => 'system_test_main_content_fallback',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
$items['system-test/shutdown-functions'] = array(
'title' => 'Test main content duplication',
'page callback' => 'system_test_page_shutdown_functions',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
function system_test_sleep($seconds) {
sleep($seconds);
}
function system_test_basic_auth_page() {
$output = t('$_SERVER[\'PHP_AUTH_USER\'] is @username.', array(
'@username' => $_SERVER['PHP_AUTH_USER'],
));
$output .= t('$_SERVER[\'PHP_AUTH_PW\'] is @password.', array(
'@password' => $_SERVER['PHP_AUTH_PW'],
));
return $output;
}
function system_test_redirect($code) {
$code = (int) $code;
if ($code != 200) {
header("locaTION: " . url('system-test/redirect/200', array(
'absolute' => TRUE,
)), TRUE, $code);
exit;
}
return '';
}
function system_test_multiple_redirects($count) {
$count = (int) $count;
if ($count > 0) {
header("location: " . url('system-test/multiple-redirects/' . --$count, array(
'absolute' => TRUE,
)), TRUE, 301);
exit;
}
return '';
}
function system_test_set_header() {
drupal_add_http_header($_GET['name'], $_GET['value']);
return t('The following header was set: %name: %value', array(
'%name' => $_GET['name'],
'%value' => $_GET['value'],
));
}
function system_test_redirect_noscheme() {
header("Location: localhost/path", TRUE, 301);
exit;
}
function system_test_redirect_noparse() {
header("Location: http:///path", TRUE, 301);
exit;
}
function system_test_redirect_invalid_scheme() {
header("Location: ftp://localhost/path", TRUE, 301);
exit;
}
function system_test_modules_installed($modules) {
if (state()
->get('system_test.verbose_module_hooks')) {
foreach ($modules as $module) {
drupal_set_message(t('hook_modules_installed fired for @module', array(
'@module' => $module,
)));
}
}
}
function system_test_modules_enabled($modules) {
if (state()
->get('system_test.verbose_module_hooks')) {
foreach ($modules as $module) {
drupal_set_message(t('hook_modules_enabled fired for @module', array(
'@module' => $module,
)));
}
}
}
function system_test_modules_disabled($modules) {
if (state()
->get('system_test.verbose_module_hooks')) {
foreach ($modules as $module) {
drupal_set_message(t('hook_modules_disabled fired for @module', array(
'@module' => $module,
)));
}
}
}
function system_test_modules_uninstalled($modules) {
if (state()
->get('system_test.verbose_module_hooks')) {
foreach ($modules as $module) {
drupal_set_message(t('hook_modules_uninstalled fired for @module', array(
'@module' => $module,
)));
}
}
}
function system_test_boot() {
watchdog('system_test', 'hook_boot');
}
function system_test_init() {
$frontpage = state()
->get('system_test.front_page_output') ?: 0;
if ($frontpage && drupal_is_front_page()) {
drupal_set_message(t('On front page.'));
}
}
function system_test_exit() {
watchdog('system_test', 'hook_exit');
}
function system_test_system_info_alter(&$info, $file, $type) {
static $test;
if (($dependencies = state()
->get('system_test.dependencies')) || $test) {
if ($file->name == 'module_test') {
$info['hidden'] = FALSE;
$info['dependencies'][] = array_shift($dependencies);
state()
->set('system_test.dependencies', $dependencies);
$test = TRUE;
}
if ($file->name == 'common_test') {
$info['hidden'] = FALSE;
$info['version'] = '8.x-2.4-beta3';
}
}
if ($file->name == 'system_dependencies_test') {
$info['hidden'] = FALSE;
}
if (in_array($file->name, array(
'system_incompatible_module_version_dependencies_test',
'system_incompatible_core_version_dependencies_test',
'system_incompatible_module_version_test',
'system_incompatible_core_version_test',
))) {
$info['hidden'] = FALSE;
}
if ($file->name == 'requirements1_test' || $file->name == 'requirements2_test') {
$info['hidden'] = FALSE;
}
}
function system_test_lock_acquire() {
if (lock()
->acquire('system_test_lock_acquire')) {
lock()
->release('system_test_lock_acquire');
return 'TRUE: Lock successfully acquired in system_test_lock_acquire()';
}
else {
return 'FALSE: Lock not acquired in system_test_lock_acquire()';
}
}
function system_test_lock_exit() {
if (lock()
->acquire('system_test_lock_exit', 900)) {
echo 'TRUE: Lock successfully acquired in system_test_lock_exit()';
exit;
}
else {
return 'FALSE: Lock not acquired in system_test_lock_exit()';
}
}
function system_test_page_build(&$page) {
$menu_item = menu_get_item();
$main_content_display =& drupal_static('system_main_content_added', FALSE);
if ($menu_item['path'] == 'system-test/main-content-handling') {
$page['footer'] = drupal_set_page_content();
$page['footer']['main']['#markup'] = '<div id="system-test-content">' . $page['footer']['main']['#markup'] . '</div>';
}
elseif ($menu_item['path'] == 'system-test/main-content-fallback') {
drupal_set_page_content();
$main_content_display = FALSE;
}
elseif ($menu_item['path'] == 'system-test/main-content-duplication') {
drupal_set_page_content();
}
}
function system_test_main_content_fallback() {
return t('Content to test main content fallback');
}
function system_test_page_shutdown_functions($arg1, $arg2) {
drupal_register_shutdown_function('_system_test_first_shutdown_function', $arg1, $arg2);
}
function _system_test_first_shutdown_function($arg1, $arg2) {
print t('First shutdown function, arg1 : @arg1, arg2: @arg2', array(
'@arg1' => $arg1,
'@arg2' => $arg2,
));
drupal_register_shutdown_function('_system_test_second_shutdown_function', $arg1, $arg2);
}
function _system_test_second_shutdown_function($arg1, $arg2) {
print t('Second shutdown function, arg1 : @arg1, arg2: @arg2', array(
'@arg1' => $arg1,
'@arg2' => $arg2,
));
throw new Exception('Drupal is <blink>awesome</blink>.');
}
function system_test_filetransfer_info() {
return array(
'system_test' => array(
'title' => t('System Test FileTransfer'),
'class' => 'Drupal\\system_test\\MockFileTransfer',
'weight' => -10,
),
);
}
function system_test_authorize_init_page($page_title) {
$authorize_url = $GLOBALS['base_url'] . '/core/authorize.php';
system_authorized_init('system_test_authorize_run', drupal_get_path('module', 'system_test') . '/system_test.module', array(), $page_title);
drupal_goto($authorize_url);
}