summaryrefslogtreecommitdiff
path: root/modules/simpletest/tests/error_test.module
blob: 1e08304368325636fcc132fede7dbf5caf9e6f89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
// $Id$

/**
 * Implements hook_menu().
 */
function error_test_menu() {
  $items['error-test/generate-warnings'] = array(
    'title' => 'Generate warnings',
    'page callback' => 'error_test_generate_warnings',
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  $items['error-test/generate-warnings-with-report'] = array(
    'title' => 'Generate warnings with Simpletest reporting',
    'page callback' => 'error_test_generate_warnings',
    'page arguments' => array(TRUE),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  $items['error-test/trigger-exception'] = array(
    'title' => 'Trigger an exception',
    'page callback' => 'error_test_trigger_exception',
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );
  $items['error-test/trigger-pdo-exception'] = array(
    'title' => 'Trigger a PDO exception',
    'page callback' => 'error_test_trigger_pdo_exception',
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );

  return $items;
}

/**
 * Menu callback; generate warnings to test the error handler.
 */
function error_test_generate_warnings($collect_errors = FALSE) {
  // Tell Drupal error reporter to send errors to Simpletest or not.
  define('SIMPLETEST_COLLECT_ERRORS', $collect_errors);
  // This will generate a notice.
  $monkey_love = $bananas;
  // This will generate a warning.
  $awesomely_big = 1/0;
  // This will generate a user error.
  trigger_error("Drupal is awesome", E_USER_WARNING);
  return "";
}

/**
 * Menu callback; trigger an exception to test the exception handler.
 */
function error_test_trigger_exception() {
  define('SIMPLETEST_COLLECT_ERRORS', FALSE);
  throw new Exception("Drupal is awesome");
}

/**
 * Menu callback; trigger an exception to test the exception handler.
 */
function error_test_trigger_pdo_exception() {
  define('SIMPLETEST_COLLECT_ERRORS', FALSE);
  db_query('SELECT * FROM bananas_are_awesome');
}