3 namespace Drupal\error_test\Controller;
5 use Drupal\Core\Controller\ControllerBase;
6 use Drupal\Core\Database\Connection;
7 use Symfony\Component\DependencyInjection\ContainerInterface;
10 * Controller routines for error_test routes.
12 class ErrorTestController extends ControllerBase {
15 * The database connection.
17 * @var \Drupal\Core\Database\Connection;
22 * Constructs a \Drupal\error_test\Controller\ErrorTestController object.
24 * @param \Drupal\Core\Database\Connection $database
25 * The database connection.
27 public function __construct(Connection $database) {
28 $this->database = $database;
34 public static function create(ContainerInterface $container) {
36 $container->get('database')
41 * Generate warnings to test the error handler.
43 public function generateWarnings($collect_errors = FALSE) {
44 // Tell Drupal error reporter to send errors to Simpletest or not.
45 define('SIMPLETEST_COLLECT_ERRORS', $collect_errors);
46 // This will generate a notice.
47 $monkey_love = $bananas;
48 // This will generate a warning.
49 $awesomely_big = 1 / 0;
50 // This will generate a user error. Use & to check for double escaping.
51 trigger_error("Drupal & awesome", E_USER_WARNING);
56 * Generate fatals to test the error handler.
58 public function generateFatals() {
59 $function = function(array $test) {
62 $function("test-string");
67 * Trigger an exception to test the exception handler.
69 public function triggerException() {
70 define('SIMPLETEST_COLLECT_ERRORS', FALSE);
71 throw new \Exception("Drupal & awesome");
75 * Trigger an exception to test the PDO exception handler.
77 public function triggerPDOException() {
78 define('SIMPLETEST_COLLECT_ERRORS', FALSE);
79 $this->database->query('SELECT * FROM bananas_are_awesome');
83 * Trigger an exception during rendering.
85 public function triggerRendererException() {
90 throw new \Exception('This is an exception that occurs during rendering');