php__osinetextension/features/extensions/MyAwesomeExtension.php

66 lines
1.6 KiB
PHP

<?php
/**
* @file
* MyAwesomeExtension.php
*
* @author: marand
*
* @copyright (c) 2014 Ouest Systèmes Informatiques (OSInet).
*
* @license General Public License version 2 or later
*/
use Behat\Behat\Context\BehatContext;
use Behat\Behat\Context\ClassGuesser\ClassGuesserInterface;
use Behat\Behat\Context\ContextInterface;
use Behat\Behat\Context\Initializer\InitializerInterface;
use Behat\Behat\Extension\Extension;
use Behat\Mink\Mink;
use Symfony\Component\Config\Definition\Builder\ArrayNodeDefinition;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Loader\XmlFileLoader;
class MyAwesomeExtension extends Extension {
public function load(array $config, ContainerBuilder $container) {
print_r($config);
$loader = new XmlFileLoader($container, new FileLocator(__DIR__));
$loader->load('services.xml');
}
}
class YourCustomContext extends BehatContext {
/**
* @beforeSuite
*/
public static function bS() {
echo __METHOD__ . "\n";
}
}
class MinkAwareInitializer implements InitializerInterface {
private $mink;
public function __construct(Mink $mink) {
$this->mink = $mink;
}
public function supports(ContextInterface $context) {
// in real life you should use interface for that
return method_exists($context, 'setMink');
}
public function initialize(ContextInterface $context) {
$context->setMink($this->mink);
}
}
class MinkContextClassGuesser implements ClassGuesserInterface {
public function guess() {
return "YourCustomContext";
}
}
#return new MyAwesomeExtension();