drupal/modules/simpletest/tests/system_test.module

228 lines
6.1 KiB
Plaintext

<?php
// $Id$
/**
* Implement hook_menu().
*/
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/redirect/%'] = array(
'title' => 'Redirect',
'page callback' => 'system_test_redirect',
'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/destination'] = array(
'title' => 'Redirect',
'page callback' => 'system_test_destination',
'page arguments' => array(2),
'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,
);
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_set_header() {
drupal_set_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_destination() {
return 'The destination: ' . drupal_get_destination();
}
/**
* Implement hook_modules_installed().
*/
function system_test_modules_installed($modules) {
if (in_array('aggregator', $modules)) {
drupal_set_message(t('hook_modules_installed fired for aggregator'));
}
}
/**
* Implement hook_modules_enabled().
*/
function system_test_modules_enabled($modules) {
if (in_array('aggregator', $modules)) {
drupal_set_message(t('hook_modules_enabled fired for aggregator'));
}
}
/**
* Implement hook_modules_disabled().
*/
function system_test_modules_disabled($modules) {
if (in_array('aggregator', $modules)) {
drupal_set_message(t('hook_modules_disabled fired for aggregator'));
}
}
/**
* Implement hook_modules_uninstalled().
*/
function system_test_modules_uninstalled($modules) {
if (in_array('aggregator', $modules)) {
drupal_set_message(t('hook_modules_uninstalled fired for aggregator'));
}
}
/**
* Implement hook_boot().
*/
function system_test_boot() {
watchdog('system_test', 'hook_boot');
}
/**
* Implement hook_init().
*/
function system_test_init() {
// Used by FrontPageTestCase to get the results of drupal_is_front_page().
if (variable_get('front_page_output', 0) && drupal_is_front_page()) {
drupal_set_message(t('On front page.'));
}
}
/**
* Implement hook_exit().
*/
function system_test_exit() {
watchdog('system_test', 'hook_exit');
}
/**
* Implement hook_system_info_alter().
*/
function system_test_system_info_alter(&$info, $file) {
// We need a static otherwise the last test will fail to alter common_test.
static $test;
if (($dependencies = variable_get('dependencies', array())) || $test) {
if ($file->name == 'module_test') {
$info['hidden'] = FALSE;
$info['dependencies'][] = array_shift($dependencies);
variable_set('dependencies', $dependencies);
$test = TRUE;
}
if ($file->name == 'common_test') {
$info['hidden'] = FALSE;
$info['version'] = '7.x-2.4-beta3';
}
}
}
/**
* Try to acquire a named lock and report the outcome.
*/
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()';
}
}
/**
* Try to acquire a specific lock, and then exit.
*/
function system_test_lock_exit() {
if (lock_acquire('system_test_lock_exit', 900)) {
echo 'TRUE: Lock successfully acquired in system_test_lock_exit()';
// The shut-down function should release the lock.
exit();
}
else {
return 'FALSE: Lock not acquired in system_test_lock_exit()';
}
}