9
9
use Codeception \Lib \Interfaces \PartedModule ;
10
10
use Symfony \Component \Finder \Finder ;
11
11
use Symfony \Component \DependencyInjection \ContainerInterface ;
12
+ use Symfony \Component \VarDumper \Cloner \Data ;
12
13
13
14
/**
14
15
* This module uses Symfony Crawler and HttpKernel to emulate requests and test response.
@@ -202,6 +203,9 @@ public function _getEntityManager()
202
203
if ($ this ->_getContainer ()->has ('doctrine.orm.default_entity_manager ' )) {
203
204
$ this ->persistService ('doctrine.orm.default_entity_manager ' , true );
204
205
}
206
+ if ($ this ->_getContainer ()->has ('doctrine.dbal.backend_connection ' )) {
207
+ $ this ->persistService ('doctrine.dbal.backend_connection ' , true );
208
+ }
205
209
}
206
210
return $ this ->permanentServices [$ this ->config ['em_service ' ]];
207
211
}
@@ -471,10 +475,16 @@ protected function debugResponse($url)
471
475
if ($ profile = $ this ->getProfile ()) {
472
476
if ($ profile ->hasCollector ('security ' )) {
473
477
if ($ profile ->getCollector ('security ' )->isAuthenticated ()) {
478
+ $ roles = $ profile ->getCollector ('security ' )->getRoles ();
479
+
480
+ if ($ roles instanceof Data) {
481
+ $ roles = $ this ->extractRawRoles ($ roles );
482
+ }
483
+
474
484
$ this ->debugSection (
475
485
'User ' ,
476
486
$ profile ->getCollector ('security ' )->getUser ()
477
- . ' [ ' . implode (', ' , $ profile -> getCollector ( ' security ' )-> getRoles () ) . '] '
487
+ . ' [ ' . implode (', ' , $ roles ) . '] '
478
488
);
479
489
} else {
480
490
$ this ->debugSection ('User ' , 'Anonymous ' );
@@ -492,6 +502,17 @@ protected function debugResponse($url)
492
502
}
493
503
}
494
504
505
+ /**
506
+ * @param Data $data
507
+ * @return array
508
+ */
509
+ private function extractRawRoles (Data $ data )
510
+ {
511
+ $ raw = $ data ->getRawData ();
512
+
513
+ return isset ($ raw [1 ]) ? $ raw [1 ] : [];
514
+ }
515
+
495
516
/**
496
517
* Returns a list of recognized domain names.
497
518
*
0 commit comments