/var/www/vhosts/nabawater/vendor/codeception/base/src/Codeception/Module
Edit: /var/www/vhosts/nabawater/vendor/codeception/base/src/Codeception/Module/ZF2.php (7279B)
'tests/application.config.php',
];
/**
* @var \Zend\Mvc\ApplicationInterface
*/
public $application;
/**
* @var \Zend\Db\Adapter\AdapterInterface
*/
public $db;
/**
* @var \Codeception\Lib\Connector\ZF2
*/
public $client;
protected $applicationConfig;
protected $queries = 0;
protected $time = 0;
/**
* @var array Used to collect domains while recursively traversing route tree
*/
private $domainCollector = [];
public function _initialize()
{
$initAutoloaderFile = Configuration::projectDir() . 'init_autoloader.php';
if (file_exists($initAutoloaderFile)) {
require $initAutoloaderFile;
}
$this->applicationConfig = require Configuration::projectDir() . $this->config['config'];
if (isset($this->applicationConfig['module_listener_options']['config_cache_enabled'])) {
$this->applicationConfig['module_listener_options']['config_cache_enabled'] = false;
}
Console::overrideIsConsole(false);
//grabServiceFromContainer may need client in beforeClass hooks of modules or helpers
$this->client = new ZF2Connector();
$this->client->setApplicationConfig($this->applicationConfig);
}
public function _before(TestInterface $test)
{
$this->client = new ZF2Connector();
$this->client->setApplicationConfig($this->applicationConfig);
$_SERVER['REQUEST_URI'] = '';
}
public function _after(TestInterface $test)
{
$_SESSION = [];
$_GET = [];
$_POST = [];
$_COOKIE = [];
if (class_exists('Zend\EventManager\StaticEventManager')) {
// reset singleton (ZF2)
StaticEventManager::resetInstance();
}
$this->queries = 0;
$this->time = 0;
parent::_after($test);
}
public function _afterSuite()
{
unset($this->client);
}
public function _getEntityManager()
{
if (!$this->client) {
$this->client = new ZF2Connector();
$this->client->setApplicationConfig($this->applicationConfig);
}
return $this->grabServiceFromContainer('Doctrine\ORM\EntityManager');
}
/**
* Grabs a service from ZF2 container.
* Recommended to use for unit testing.
*
* ``` php
* grabServiceFromContainer('Doctrine\ORM\EntityManager');
* ?>
* ```
*
* @param $service
* @return mixed
* @part services
*/
public function grabServiceFromContainer($service)
{
return $this->client->grabServiceFromContainer($service);
}
/**
* Adds service to ZF2 container
* @param string $name
* @param object $service
* @part services
*/
public function addServiceToContainer($name, $service)
{
$this->client->addServiceToContainer($name, $service);
}
/**
* Opens web page using route name and parameters.
*
* ``` php
* amOnRoute('posts.create');
* $I->amOnRoute('posts.show', array('id' => 34));
* ?>
* ```
*
* @param $routeName
* @param array $params
*/
public function amOnRoute($routeName, array $params = [])
{
$router = $this->client->grabServiceFromContainer('router');
$url = $router->assemble($params, ['name' => $routeName]);
$this->amOnPage($url);
}
/**
* Checks that current url matches route.
*
* ``` php
* seeCurrentRouteIs('posts.index');
* $I->seeCurrentRouteIs('posts.show', ['id' => 8]));
* ?>
* ```
*
* @param $routeName
* @param array $params
*/
public function seeCurrentRouteIs($routeName, array $params = [])
{
$router = $this->client->grabServiceFromContainer('router');
$url = $router->assemble($params, ['name' => $routeName]);
$this->seeCurrentUrlEquals($url);
}
protected function getInternalDomains()
{
/**
* @var Zend\Mvc\Router\Http\TreeRouteStack
*/
$router = $this->client->grabServiceFromContainer('router');
$this->domainCollector = [];
$this->addInternalDomainsFromRoutes($router->getRoutes());
return array_unique($this->domainCollector);
}
private function addInternalDomainsFromRoutes($routes)
{
foreach ($routes as $name => $route) {
if ($route instanceof \Zend\Mvc\Router\Http\Hostname || $route instanceof \Zend\Router\Http\Hostname) {
$this->addInternalDomain($route);
} elseif ($route instanceof \Zend\Mvc\Router\Http\Part || $route instanceof \Zend\Router\Http\Part) {
$parentRoute = ReflectionHelper::readPrivateProperty($route, 'route');
if ($parentRoute instanceof \Zend\Mvc\Router\Http\Hostname || $parentRoute instanceof \Zend\Mvc\Router\Http\Hostname) {
$this->addInternalDomain($parentRoute);
}
// this is necessary to instantiate child routes
try {
$route->assemble([], []);
} catch (\Exception $e) {
}
$this->addInternalDomainsFromRoutes($route->getRoutes());
}
}
}
private function addInternalDomain($route)
{
$regex = ReflectionHelper::readPrivateProperty($route, 'regex');
$this->domainCollector []= '/^' . $regex . '$/';
}
public function _parts()
{
return ['services'];
}
}