c64da6dc23f18663f06142808c710cb4e13cdb71
[yaffs-website] / web / core / modules / system / tests / modules / error_test / src / Controller / ErrorTestController.php
1 <?php
2
3 namespace Drupal\error_test\Controller;
4
5 use Drupal\Core\Controller\ControllerBase;
6 use Drupal\Core\Database\Connection;
7 use Symfony\Component\DependencyInjection\ContainerInterface;
8
9 /**
10  * Controller routines for error_test routes.
11  */
12 class ErrorTestController extends ControllerBase {
13
14   /**
15    * The database connection.
16    *
17    * @var \Drupal\Core\Database\Connection
18    */
19   protected $database;
20
21   /**
22    * Constructs a \Drupal\error_test\Controller\ErrorTestController object.
23    *
24    * @param \Drupal\Core\Database\Connection $database
25    *   The database connection.
26    */
27   public function __construct(Connection $database) {
28     $this->database = $database;
29   }
30
31   /**
32    * {@inheritdoc}
33    */
34   public static function create(ContainerInterface $container) {
35     return new static(
36       $container->get('database')
37     );
38   }
39
40   /**
41    * Generate warnings to test the error handler.
42    */
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);
52     return [];
53   }
54
55   /**
56    * Generate fatals to test the error handler.
57    */
58   public function generateFatals() {
59     $function = function (array $test) {
60     };
61
62     $function("test-string");
63     return [];
64   }
65
66   /**
67    * Trigger an exception to test the exception handler.
68    */
69   public function triggerException() {
70     define('SIMPLETEST_COLLECT_ERRORS', FALSE);
71     throw new \Exception("Drupal & awesome");
72   }
73
74   /**
75    * Trigger an exception to test the PDO exception handler.
76    */
77   public function triggerPDOException() {
78     define('SIMPLETEST_COLLECT_ERRORS', FALSE);
79     $this->database->query('SELECT * FROM bananas_are_awesome');
80   }
81
82   /**
83    * Trigger an exception during rendering.
84    */
85   public function triggerRendererException() {
86     return [
87       '#type' => 'page',
88       '#post_render' => [
89         function () {
90           throw new \Exception('This is an exception that occurs during rendering');
91         },
92       ],
93     ];
94   }
95
96 }