File: //usr/local/wp/vendor/behat/behat/src/Behat/Behat/ApplicationFactory.php
<?php
/*
* This file is part of the Behat.
* (c) Konstantin Kudryashov <ever.zet@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Behat\Behat;
use Behat\Behat\Context\ServiceContainer\ContextExtension;
use Behat\Behat\Definition\ServiceContainer\DefinitionExtension;
use Behat\Behat\EventDispatcher\ServiceContainer\EventDispatcherExtension;
use Behat\Behat\Gherkin\ServiceContainer\GherkinExtension;
use Behat\Behat\Hook\ServiceContainer\HookExtension;
use Behat\Behat\Output\ServiceContainer\Formatter\JUnitFormatterFactory;
use Behat\Behat\Output\ServiceContainer\Formatter\PrettyFormatterFactory;
use Behat\Behat\Output\ServiceContainer\Formatter\ProgressFormatterFactory;
use Behat\Behat\HelperContainer\ServiceContainer\HelperContainerExtension;
use Behat\Behat\Snippet\ServiceContainer\SnippetExtension;
use Behat\Behat\Tester\ServiceContainer\TesterExtension;
use Behat\Behat\Transformation\ServiceContainer\TransformationExtension;
use Behat\Behat\Translator\ServiceContainer\GherkinTranslationsExtension;
use Behat\Testwork\ApplicationFactory as BaseFactory;
use Behat\Testwork\Argument\ServiceContainer\ArgumentExtension;
use Behat\Testwork\Autoloader\ServiceContainer\AutoloaderExtension;
use Behat\Testwork\Call\ServiceContainer\CallExtension;
use Behat\Testwork\Cli\ServiceContainer\CliExtension;
use Behat\Testwork\Environment\ServiceContainer\EnvironmentExtension;
use Behat\Testwork\Exception\ServiceContainer\ExceptionExtension;
use Behat\Testwork\Filesystem\ServiceContainer\FilesystemExtension;
use Behat\Testwork\Ordering\ServiceContainer\OrderingExtension;
use Behat\Testwork\Output\ServiceContainer\Formatter\FormatterFactory;
use Behat\Testwork\Output\ServiceContainer\OutputExtension;
use Behat\Testwork\ServiceContainer\ServiceProcessor;
use Behat\Testwork\Specification\ServiceContainer\SpecificationExtension;
use Behat\Testwork\Suite\ServiceContainer\SuiteExtension;
use Behat\Testwork\Translator\ServiceContainer\TranslatorExtension;
/**
* Defines the way behat is created.
*
* @author Konstantin Kudryashov <ever.zet@gmail.com>
*/
final class ApplicationFactory extends BaseFactory
{
const VERSION = '3.7.0';
/**
* {@inheritdoc}
*/
protected function getName()
{
return 'behat';
}
/**
* {@inheritdoc}
*/
protected function getVersion()
{
return self::VERSION;
}
/**
* {@inheritdoc}
*/
protected function getDefaultExtensions()
{
$processor = new ServiceProcessor();
return array(
new ArgumentExtension(),
new AutoloaderExtension(array('' => '%paths.base%/features/bootstrap')),
new SuiteExtension($processor),
new OutputExtension('pretty', $this->getDefaultFormatterFactories($processor), $processor),
new ExceptionExtension($processor),
new GherkinExtension($processor),
new CallExtension($processor),
new TranslatorExtension(),
new GherkinTranslationsExtension(),
new TesterExtension($processor),
new CliExtension($processor),
new EnvironmentExtension($processor),
new SpecificationExtension($processor),
new FilesystemExtension(),
new ContextExtension($processor),
new SnippetExtension($processor),
new DefinitionExtension($processor),
new EventDispatcherExtension($processor),
new HookExtension(),
new TransformationExtension($processor),
new OrderingExtension($processor),
new HelperContainerExtension($processor)
);
}
/**
* {@inheritdoc}
*/
protected function getEnvironmentVariableName()
{
return 'BEHAT_PARAMS';
}
/**
* {@inheritdoc}
*/
protected function getConfigPath()
{
$cwd = rtrim(getcwd(), DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR;
$configDir = $cwd . 'config' . DIRECTORY_SEPARATOR;
$paths = array(
$cwd . 'behat.yaml',
$cwd . 'behat.yml',
$cwd . 'behat.yaml.dist',
$cwd . 'behat.yml.dist',
$configDir . 'behat.yaml',
$configDir . 'behat.yml',
$configDir . 'behat.yaml.dist',
$configDir . 'behat.yml.dist',
);
foreach ($paths as $path) {
if (is_file($path)) {
return $path;
}
}
return null;
}
/**
* Returns default formatter factories.
*
* @param ServiceProcessor $processor
*
* @return FormatterFactory[]
*/
private function getDefaultFormatterFactories(ServiceProcessor $processor)
{
return array(
new PrettyFormatterFactory($processor),
new ProgressFormatterFactory($processor),
new JUnitFormatterFactory(),
);
}
}