|
8 | 8 | use Kahlan\Plugin\Quit; |
9 | 9 | use Kahlan\QuitException; |
10 | 10 | use Zend\Console\Console; |
| 11 | +use Zend\Db\Adapter\Adapter; |
11 | 12 | use Zend\EventManager\EventManagerInterface; |
| 13 | +use Zend\Http\PhpEnvironment\Request; |
12 | 14 | use Zend\Log\Logger; |
| 15 | +use Zend\Log\Writer\Db as DbWriter; |
13 | 16 | use Zend\Mvc\MvcEvent; |
14 | 17 | use Zend\View\Renderer\PhpRenderer; |
15 | 18 | use Zend\View\Resolver; |
16 | | -use Zend\Log\Writer\Db as DbWriter; |
17 | | -use ReflectionProperty; |
18 | | -use Zend\Stdlib\SplPriorityQueue; |
19 | | -use Zend\Http\PhpEnvironment\Request; |
20 | | -use Zend\ServiceManager\ServiceLocatorInterface; |
21 | 19 |
|
22 | 20 | describe('Mvc', function () { |
23 | 21 |
|
|
369 | 367 |
|
370 | 368 | it('call error_get_last() and return error', function () { |
371 | 369 |
|
372 | | - skipIf(PHP_MAJOR_VERSION < 7); |
373 | | - |
374 | 370 | allow('error_get_last')->toBeCalled()->andReturn([ |
375 | 371 | 'type' => 8, |
376 | 372 | 'message' => 'Undefined variable: a', |
|
379 | 375 | ]); |
380 | 376 | expect('error_get_last')->toBeCalled(); |
381 | 377 |
|
382 | | - try { |
383 | | - $this->listener->execOnShutdown(); |
384 | | - } catch (\Throwable $t) { |
385 | | - expect($t)->toBeAnInstanceOf(\Throwable::class); |
386 | | - } |
| 378 | + $dbAdapter = new Adapter([ |
| 379 | + 'username' => 'root', |
| 380 | + 'password' => '', |
| 381 | + 'driver' => 'Pdo', |
| 382 | + 'dsn' => 'mysql:dbname=errorheromodule;host=127.0.0.1', |
| 383 | + 'driver_options' => [ |
| 384 | + \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'', |
| 385 | + ], |
| 386 | + ]); |
| 387 | + |
| 388 | + $writer = new DbWriter( |
| 389 | + [ |
| 390 | + 'db' => $dbAdapter, |
| 391 | + 'table' => 'log', |
| 392 | + 'column' => [ |
| 393 | + 'timestamp' => 'date', |
| 394 | + 'priority' => 'type', |
| 395 | + 'message' => 'event', |
| 396 | + 'extra' => [ |
| 397 | + 'url' => 'url', |
| 398 | + 'file' => 'file', |
| 399 | + 'line' => 'line', |
| 400 | + 'error_type' => 'error_type', |
| 401 | + 'trace' => 'trace', |
| 402 | + 'request_data' => 'request_data', |
| 403 | + ], |
| 404 | + ], |
| 405 | + ] |
| 406 | + ); |
| 407 | + |
| 408 | + $logger = new Logger(); |
| 409 | + $logger->addWriter($writer); |
| 410 | + $logWritersConfig = [ |
| 411 | + |
| 412 | + [ |
| 413 | + 'name' => 'db', |
| 414 | + 'options' => [ |
| 415 | + 'db' => 'Zend\Db\Adapter\Adapter', |
| 416 | + 'table' => 'log', |
| 417 | + 'column' => [ |
| 418 | + 'timestamp' => 'date', |
| 419 | + 'priority' => 'type', |
| 420 | + 'message' => 'event', |
| 421 | + 'extra' => [ |
| 422 | + 'url' => 'url', |
| 423 | + 'file' => 'file', |
| 424 | + 'line' => 'line', |
| 425 | + 'error_type' => 'error_type', |
| 426 | + 'trace' => 'trace', |
| 427 | + 'request_data' => 'request_data', |
| 428 | + ], |
| 429 | + ], |
| 430 | + ], |
| 431 | + ], |
| 432 | + |
| 433 | + ]; |
| 434 | + |
| 435 | + $logging = new Logging( |
| 436 | + $logger, |
| 437 | + 'http://serverUrl', |
| 438 | + Double::instance(['extends' => Request::class, 'methods' => '__construct']), |
| 439 | + '/', |
| 440 | + $this->config, |
| 441 | + $logWritersConfig, |
| 442 | + null, |
| 443 | + null |
| 444 | + ); |
| 445 | + |
| 446 | + $errorHeroModuleLocalConfig = [ |
| 447 | + 'enable' => true, |
| 448 | + 'display-settings' => [ |
| 449 | + 'exclude-php-errors' => [ |
| 450 | + E_USER_DEPRECATED |
| 451 | + ], |
| 452 | + 'display_errors' => 1, |
| 453 | + 'template' => [ |
| 454 | + 'layout' => 'layout/layout', |
| 455 | + 'view' => 'error-hero-module/error-default' |
| 456 | + ], |
| 457 | + 'console' => [ |
| 458 | + 'message' => 'We have encountered a problem and we can not fulfill your request. An error report has been generated and send to the support team and someone will attend to this problem urgently. Please try again later. Thank you for your patience.', |
| 459 | + ], |
| 460 | + |
| 461 | + ], |
| 462 | + 'logging-settings' => [ |
| 463 | + 'same-error-log-time-range' => 86400, |
| 464 | + ], |
| 465 | + 'email-notification-settings' => [ |
| 466 | + 'enable' => false, |
| 467 | + 'mail-message' => 'YourMailMessageService', |
| 468 | + 'mail-transport' => 'YourMailTransportService', |
| 469 | + 'email-from' => 'Sender Name <[email protected]>', |
| 470 | + 'email-to-send' => [ |
| 471 | + |
| 472 | + |
| 473 | + ], |
| 474 | + ], |
| 475 | + ]; |
| 476 | + |
| 477 | + $listener = new Mvc( |
| 478 | + $errorHeroModuleLocalConfig, |
| 479 | + $logging, |
| 480 | + $this->renderer |
| 481 | + ); |
| 482 | + $listener->execOnShutdown(); |
| 483 | + |
387 | 484 | }); |
388 | 485 |
|
389 | 486 |
|
|
0 commit comments